TEX 文書に図を入れる場合、 TikZ を利用して作図するのが最近の定番であるが、 以前は EPS のデータを作って \includegraphics{} で取り込むことが良く行われていた。 図の中に数式などを含めるために、 psfrag というマクロ・パッケージを利用して、 PostScript データ内の文字列を TEX の式に置き換えるという手段があった。
ところが psfrag は、 今ではほとんど使われなくなった dvips ドライバーにしか対応しておらず、 最近の TEX 環境で良く使われるドライバー (例えば dvipdfmx 等) には対応していない。 そのため、psfrag を利用した TEX 文書の組版し直しが難しくなって困っていた。
fragmaster というソフトウェアを使えば良いという話を読んで、 試したところ、無事成功したので、使用法をメモしておく。
| 古い LATEX 文書 |
...
\usepackage{psfrag}
\usepackage{bm}% 太字 \bm{} のため
...
\begin{figure}[htbp]
\centering
\psfrag{G}{$\Gamma$}
\psfrag{ab}{$\bm{a}\times\bm{b}$}
\includegraphics[width=10cm]{figure/graph1.eps}
\caption{グラフ1}
\end{figure}
|
この LATEX 文書は、
figure/graph1.eps という EPS ファイルに収められた図のうち、
G, ab という文字列を
,
に置き換えて取り込んでいる。
graph1_fm.eps, graph1_fm というファイルを用意する。 fragmaster が読むファイルの名前には _fm をつける、 ということらしい。
graph1_fm.eps は、元々の graph1.eps で良い。
$ cd figure $ mv graph1.eps graph1_fm.eps |
graph1_fm には、文字列の置き換えルールを記述する。 元の .tex ファイルの中の \psfrag 命令をコピーし、 さらに \includegraphics{} のオプションや、 使用するパッケージの指定などを書き込む。
| graph1_fm |
% fmclassopt: 12pt
% fmopt: width=10cm
%head
% \usepackage{bm}
%end head
\psfrag{G}{$\Gamma$}
\psgrag{ab}{$\bm{a}\times\bm{b}$}
|
fragmaster コマンドを実行して、 graph1.eps, graph1.pdf を生成する。 MacTeX 2015 を使っている場合、 /usr/local/texlive/2015/bin/x86_64-darwin/fragmaster というPerlスクリプトがインストールされているはずである。
$ fragmaster $ ls graph1.* graph1.eps graph1.pdf |
| 新しい LATEX 文書 |
...
%\usepackage{psfrag}
\usepackage{bm}% 太字 \bm{} のため
...
\begin{figure}[htbp]
\centering
\includegraphics[width=10cm]{figure/graph1.eps}% graph1.pdf でも良い
\caption{グラフ1}
\end{figure}
|
桂田 祐史