Gnuplotで数式やギリシャ文字など特殊な文字をEPSとして出力する

最近は「gnuplotは古い」とか言われているらしい.まあ別にこだわっているわけでは無いのだけれど,僕は惰性的にgnuplotを使っています*1
さて,gnuplotのラベルや凡例に数式やギリシャ文字を書きたいことがあります.細かい方法をよく忘れるのでメモしておく.

添え字

\mathrm{e}^{\mathrm{j} \omega_{\mathrm{c}} t }のような添え字はTeXと同様に,e^{jw_ct} の様に書くことが出来る.複数文字もTeXのように{}でくくることができる.ただし,上付き文字と下付き文字の位置の関係には注意が必要.

(tex-1) $a_c^2$
(tex-2) ${a_c}^2$

texでは(tex-1)と(tex-2)の出力は異なり,数学的な意味も異なる.

  • (output-1)  a_c^2
  • (output-2)  {a_c}^2

(tex-1)は, aという文字に cという下付き添え字と2という上付き添え字がついている*2が,(tex-2)はa_cの2乗を表す.しかし,上記(tex-1)(tex-2)の記法は,gnuplot(というかpostscript)では区別されず,(output-2)の出力例のように表示されてしまう.gnuplotで同様の表現をしたいときは,

(postscript-1) x@^2_c
(postscript-2) x_c^2

のように表記する.

ギリシャ文字

ギリシャ文字は,例えば \Omega, \omegaなら,

{/Symbol w},
{/Symbol W}

のように書くことで表現できる.ここで,/Symbolは単なるフォント指定であって,TeXのように,{}でくくってやる必要あり.また,下の様に特殊文字を使って表現することもできるけど,こっちの方が楽だろう.

特殊文字

{や}を書きたいときは,\でエスケープする必要.&でスペースが挿入可能であるが,普通に半角スペースを入れてもほぼ同じ幅のスペースが反映されるので使ったこと無い(たぶんなにか用途があるのだろう).そのほかのよく使う特殊文字のコードは以下にメモしておく*3.ついでにTeXも書いておく.

postscript tex 出力 備考
/Symbol \042 \forall
/Symbol \044 \exists
/Symbol \245 \infty
/Symbol \261 \pm ±
\262 \dag or \textdagger 注1
/Symbol \264 \times ×
/Symbol \270 \div ÷
/Symbol \271 \neq
/Symbol \305 \bigoplus
/Symbol \326 \sqrt 注2
/Symbol \345 \sum Σ
/Symbol \362 \int
  • 注1: ダガーはZapfDingbatsフォントにシンプルな物があるが,ZapfDingbatsフォントがインストールされていないと面倒なのでこちらを使っている.
  • 注2: TeXにおける \sqrt{ほげほげ} みたいな記述方法ができれば良いんだけれどさすがにそれは無理そう・・・

文字をイタリックで書きたい

結論から言うと,手間の割に微妙な仕上がりなので使わないことにしている.どうしても文字をイタリックにしたい場合は,epsで出力した後にIllustrator*4等のepsが編集できるソフトウェアで編集したほうが楽と思っている(僕は,他にも理由があって,gnuplotから生成したepsファイルを人に見せるときは必ずIllustratorで微調整を行うようにしています).一応,イタリックフォントをインストールした後,\Itaric や \it 等を用いて直接postscriptに入れることもできるらしい.

epsファイル出力

以上の記法はpostscriptの作法であるので,X11MacOS XのAquaTermなどでは正確に表示されない(はず).そのため,postscript epsとして出力しなくてはいけない.

set terminal postscript eps enhanced
set output "hoge.eps"

enhancedは拡張のオプションなので,つけておかないと一部出力がおかしくなるのかな.

不明点

  • 半角スペースよりも狭いスペース(たとえば,TeXなら \, のようなスペース)を入れる方法は無いのか.現状,めんどくさいので半角スペースを空けている.
  • 分数を綺麗に表示する方法は無いのか.現状,1/2のように表記しているが,TeXでいう \frac{1}{2} のような表記がしたい.

*1:まあ,さすがに論文にいかにもexcelで作りましたというグラフを載せるのもどうかと思うが・・・

*2:これを「2乗だ!!」と主張する人もいるだろうが

*3:はてなダイアリーの表は汚いのでいつか真面目にCSS書かないと・・・

*4:実はillustratorは文字を斜体にすることができないので,「文字を任意の角度で傾ける」という加工により斜体のように見せるしかない.割とめんどくさい.