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} |
桂田 祐史