Vine Linux の gnuplot を Latex に応用する
どのような方法があるか
gnuplot で図を作り、LaTeXに埋め込む方法をいろいろ研究してみました。1. epslatex で出力して、LaTeX のソースで取り込む。
2. eepic で出力して、LaTeX のソースで取り込む。
3. 画像(jpeg, png, eps)で出力して、LaTeX のソースで取り込む。
この他にも、Tgif, Pstricks, pslatex, svg などの出力をLaTeXに結びつけることができるようです。しかし、それらすべてを検証する時間はありませんでした。先ほどの3つの方法のどれが一番良いかというと、私は1番の epslatex で出力する方法を挙げたいと思います。
epslatex の出力を LaTeX に結びつけるにはどうしたらよいか
まず、gnuplot のコマンドをテキストファイルにしておきます。次のようなサンプルを「sample.gnu」という名前のテキストファイルで保存します。以下のファイルの詳細は省きます。gnuplot のマニュアルを参考にしてください。# # gnuplot のサンプル # set terminal epslatex set output "sample.tex" #外側の座標軸は表示しない unset border unset tics #x軸、y軸、原点 set arrow 1 from -1,0 to 4,0 linestyle -1 set arrow 2 from 0,-1 to 0,20 linestyle -1 set label 1 "$x$" at 3.7,-1 set label 2 "$y$" at -0.3,19 set label 3 "O" at -0.2,-1 #y切片 set label 4 "4" at -0.2,4 #極小値(x軸上) set label 5 "2" at 2,-1 #出力の縦横比 set size ratio 0.7 #3次関数をプロット f(x)=x>0 ? x**3-3*x**2+4 : 1/0 plot [-1:4] [-1:20] f(x) notitle #ファイルのクローズ set output端末から、gnuplot を立ち上げ、
gnuplot > load "sample.gnu"と入力すると、「sample.tex」というLaTeXのソースファイルと、「sample.eps」という画像のepsファイルが出力されます。epslatexの出力では、文字と画像が分かれて、それぞれ tex ファイルと eps ファイルに書き込まれます。そこで、文字の部分には、LaTeX の数式などを書き込むことができます。
次に、このファイルを取り込む LaTeX のソースファイル「main.tex」を作ります。
\documentclass[papersize,a4paper,fleqn]{jsarticle} \usepackage[dvips]{graphicx} \pagestyle{empty} \begin{document} \begin{center} \Large\textbf{関数グラフのサンプル} \end{center} 関数$y=x^3-3x^2+4\quad (x>0)$のグラフ \begin{center} \input{sample.tex} \end{center} \end{document}14行目の「\input{sample.tex}」で tex ファイルを取り込んでいます。また、eps 画像は、sample.tex の中で「\includegraphics」で取り込まれています。そのため、main.tex のプリアンブル部で、graphicx パッケージを取り込むことを忘れないようにしなければなりません。
次に、このLaTeXのファイルをコンパイルして、文書にします。最近は PDF ファイルにするのが一般的になってきています。そこで、ここでも PDF にしますが、dvipdfmx は、eps 画像を扱えませんので、一旦 pdvips で ps ファイルにして、その後 ps2pdf (あるいは、adobe Distillerなど)のソフトで PDF にします。一連の操作をスクリプトにした、「psplatex」を作りました。
#!/bin/bash eplatex -kanji=utf8 $1 || exit 1 pdvips $1 || exit 1 ps2pdf $1.ps || exit1これで一気にコンパイルできます。また、これを Texworks のタイプセットに登録しておくと便利です。
最後に、できあがった PDF ファイルのスクリーンショットを示します。