gnuplot で出力するグラフの凡例やタイトルに TeX のフォントを使いたい。
ギリシャ文字を使う方法については、
gnuplot tips の
label のページに説明があるので知っている方も多いと思う。
しかし、上記ページで紹介されている方法では、ギリシャ文字は Symbol フォントで表示される。例えば論文などの場合、本文中では Computer Modern フォント(cmmi10など)で記述している文字をグラフのラベルや凡例においてのみ Symbol フォントにするのはやっぱり気持ち悪い。
と言うわけで、gnuplot で出力する eps に Computer Modern フォントを埋め込む方法を調べてみた。
1. pfa ファイルを用意する。
先ず、使いたいフォントを pfa 形式で用意する。僕は
ttf 形式の Computer Modern フォントをインストールしていたので、
ttf2pt1 を使って ttf から pfa を作成した。
例えば cmmi10.ttf を pfa 形式に変換する場合、コマンドプロンプトから次のように入力する。
> ttf2pt1 -a -e -W 0 cmmi10.ttf cmmi10
これで cmmi10.pfa が作成される。
TeX がインストールされている環境であれば c:\usr\local\share\texmf\fonts\type1\bluesky などに pfb 形式の Computer Modern フォントがあるので、これを pfb2pfa などを用いて pfa へ変換してもよいと思う。
作成した pfa ファイルは特定のディレクトリ、例えば c:\home\USERNAME\pfa などに置く。
2. gnuplot の fontpath を設定する。
gnuplot に pfa ファイルを置いた場所(例えば'c:\home\USERNAME\pfa')を教える。これには gnuplot の対話モードにおいて
gnuplot> set fontpath 'c:\home\USERNAME\pfa'
とする。
3. fontfile を指定する。
使いたいフォントの入っているフォントファイルを set terminal postscript enhanced のオプションにおいて指定する。例えば cmmi10 を使いたければ、次のように入力する。
gnuplot> set terminal postscript enhanced fontfile 'cmmi10.pfa'
すると、次のような出力が得られる。
Terminal type set to 'postscript'
Font file 'cmmi10.pfa' contains the font 'Cmmi10'. Location:
c:\home\takechi\pfa\cmmi10.pfa
Options are 'landscape enhanced defaultplex \
leveldefault color colortext \
dashed dashlength 1.0 linewidth 1.0 butt \
palfuncparam 2000,0.003 \
"Helvetica" 14 fontfile "cmmi10.pfa" fontfile "cmsy10.pfa" '
ここで、「 'cmmi10.pfa' contains the font 'Cmmi10'. 」という部分はフォントファイルに含まれているフォントのフォント名を教えてくれている。この 'Cmmi10' というのがフォント名である。
4. フォント名を指定して label や title を記述する。
例えば次のようにする。
gnuplot> set output 'sin_xi.eps'
gnuplot> set xlabel '{/Cmmi10 \273}'
gnuplot> set ylabel '{/Cmmi10 \264}'
gnuplot> plot sin(x) title 'sin {/Cmmi10 \273}'
"/Cmmi10" というのがフォント名の指定で、"\273"や"\264"というのは8進数の文字コードで、それぞれξとηに対応する。Computer Modern フォントにおける文字コードと文字の対応表は、下記の参考資料 "ps_fontfile_doc.tex" などにある。
なお、フォント名は大文字と小文字を厳密に区別するようなので注意が必要。
このコマンドの結果、次のようなグラフが得られる。

ξやηが Computer Modern フォントで上手く表示できている。
複数のフォントを使いたい場合は、
gnuplot> set terminal postscript enhanced fontfile 'cmmi10.pfa' fontfile 'cmsy10.pfa'
というように fontfile オプションを複数指定すればよい。
色々と面倒な作業がたくさんあるが、一応、綺麗に Computer Modern フォントを gnuplot のグラフに埋め込むことができた。
TeX なら $\xi$ と書くだけですむのだから、gnuplot でも同じ感覚でもっと簡単にできたらいいのだけれど……。
参考資料:
・
50.54.3 Postscript fontfile・Gnuplot の付属ドキュメント …\gnuplot\docs\postscript-terminal\ps_fontfile_doc.tex
(
web 上の pdf ファイル)