つぶつぶなるままに

物理とかプログラミングとか

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

gnuplot で TeX のフォントを使う方法(windows)

gnuplot で出力するグラフの凡例やタイトルに TeX のフォントを使いたい。

ギリシャ文字を使う方法については、gnuplot tipslabel のページに説明があるので知っている方も多いと思う。

しかし、上記ページで紹介されている方法では、ギリシャ文字は 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" などにある。
なお、フォント名は大文字と小文字を厳密に区別するようなので注意が必要。

このコマンドの結果、次のようなグラフが得られる。
sin_xi
ξやηが 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 ファイル
追記:
PostScript 経由での PDF 生成でも問題ない場合は、PSfragを使う方法の方が簡単でおすすめです。
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURLはこちら
http://granular.blog39.fc2.com/tb.php/28-0198f552
この記事にトラックバックする(FC2ブログユーザー)

【文字コード】についてのお得なブログリンク集

文字コード に関する最新のブログ検索の結果をまとめて、口コミや評判、ショッピング情報を集めてみると…

  • 2008/01/11(金) 03:14:46 |
  • 旬なキーワードでお得なブログのリンク集

gnuplotのEPS出力でComputer Modernのギリシャ文字を入れる

gnuplotでギリシャ文字を入れたい場合Symbolフォントを使う方法がここに書かれているが、論文なんかに貼る図の場合はComputer Modernで統一した方が嬉...

  • 2010/03/31(水) 12:53:51 |
  • pLog

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。