gnuplot4 で作る図の軸名などに、 LaTeXで書くような数式を入れる方法です。 ここでは、ターミナルタイプ epslatex を使った方法を紹介します。
gnuplot の部分はコマンドラインで操作してもできるのですが、 後で図を編集する可能性を考えるとスクリプトにしておくのが便利です。
fig.gp 名前はなんでもいいです
set terminal epslatex set output "hogehoge.eps" #他で使っていなさそうな名前を指定します。 set xlabel '{$\alpha$}' set ylabel '{$y^{\beta}$}' plot sin(x) title '$\sin(x)$' quit
\documentclass{article} \usepackage{graphicx} \pagestyle{empty} \begin{document} \begin{figure}[h] \input{hogehoge} %ここで先ほど作った hogehoge.tex を取り込みます \end{figure} \end{document}
eps ファイルを includegraphics で読み込んで dvipdfmx で pdf にすると、pdf 上では eps 図の位置がずれてしまいます。 これは、ソースファイルの中で
正しい対処なのかどうかわかりませんが、 eps ファイルを一度 epstopdf で pdf にして、 これを pdftops で eps に戻すと usepackage に dvipdfmx の オプションなしでコンパイルしたものは、 dvi でも pdf でも位置がずれませんでした。
#!/bin/csh -f gnuplot fig.gp platex temp.tex platex temp.tex dvips -E temp.dvi -o fig.eps epstopdf --outfile=fig.pdf fig.eps pdftops -eps fig.pdf fig.eps rm temp.{aux,dvi,log}
ファイルが複数ある場合も、上のスクリプトを少し変更すると一括処理できます。 処理したい gnuplot スクリプトが fig1.gp, fig2.gp, fig3.gp としましょう。
#!/bin/csh -f set tempfile="temp" foreach file ( "fig1" "fig2" "fig3" ) gnuplot ${file}.gp platex ${tempfile} platex ${tempfile} dvips -E ${tempfile}.dvi -o ${file}.eps epstopdf --outfile=${file}.pdf ${file}.eps pdftops -eps ${file}.pdf ${file}.eps epstopdf --outfile=${file}.pdf ${file}.eps pdftops -eps ${file}.pdf ${file}.eps rm temp.{aux,dvi,log} end
ともかく、上のような症状が出たときは、 対処療法には hogehoge.tex にある "_" や "%" の前に エスケープ記号 "\" を付けておくとコンパイルが通りました。
別の対処策としては、key に上のような記号が使われるとダメなので、 それが出ないようにすることです。 つまり、gnuplot の title を指定してあげます。