gnuplot の epslatex ドライバを用いた、LaTeX への日本語や数式の入ったラベルのある図面の取り込み

gnuplot の epslatex ドライバが非常に便利なので、使い方に関してのメモです。

同ドライバは、gnuplot での出力が、文字の入っていない eps ファイルと、その eps ファイルの上に文字情報を追記するための TeX ファイルの2つに分かれることが大きな特徴です。
これにより、ありがちな gnuplot での日本語ラベルの問題などが発生しなくなります。
ラベルや凡例に数式を追加することも非常に容易です。

epslatex ドライバの概要

  • 出力が、文字の入っていない eps ファイルと、その eps ファイルの上に文字情報を追記するための TeX ファイルの2つ
  • ラベルや凡例に数式を入れること、日本語での記述に、特別な手間が無い
  • 特別にドライバをインストールする必要がない

epslatex ドライバの使用に当たっては、以下のように標準パッケージしか使っていません。

  • Linux標準のTeX Liveパッケージ
  • Linux標準のgnuplotパッケージ

使い方はいたってシンプルです。
以下が、gnuplot 用の plt ファイルです。
graph.tex と graph.eps が出力されます。

set terminal epslatex color
set output "graph.tex"

set xlabel "時間 $t$ [秒]"
set ylabel "電圧 $V$ [V]"

set grid

plot sin(x) title "$y = sin(t)$" w l

quit

次に、出力された eps ファイルと TeX ファイルを読み込むメインの TeX ファイルです。
拡張子をつけず、input とすることで両方のファイルの読み込みが行われます。

\documentclass[a4j,10pt]{jsarticle}

\usepackage[dvipdfmx]{graphicx}

\begin{document}
\begin{figure}[htb]
	\centering
	\input{graph}
	\caption{正弦波信号}
	\label{fig:graph}
\end{figure}

\end{document}

最後に、bash 等で以下のコマンドによるコンパイルを行うだけです。
(ラベルの都合上、TeX ファイルは2度コンパイルしています)

gnuplot plot.plt
platex main.tex
platex main.tex

以下が実際の図のイメージです。

epslatex-capture

plt ファイルに記述した数式がそのまま表示されています。
日本語のラベルですが、フォントの指定もすることなく表示されています。
また、読み込んでいるファイルは TeX ファイルなので、読み込みを行う TeX ファイルでのフォントサイズ指定を一括で行うこともできます。

\documentclass[a4j,10pt]{jsarticle}

\usepackage[dvipdfmx]{graphicx}

\begin{document}
\begin{figure}[htb]
	\centering
	{\scriptsize \input{graph}}
	\caption{正弦波信号}
	\label{fig:graph}
\end{figure}

\end{document}

さらに、プロットの際に、サイズ指定をすることで図のサイズを変更することもできます。
加えて、data.csv という別のデータファイルの読み込みを行っています。

set terminal epslatex color size 8.0cm,4.0cm
set output "graph.tex"

set xlabel "時間 $t$ [秒]"
set ylabel "電圧 $V$ [V]"

set grid

set datafile separator ","
plot "data.csv" title "$y = sin(t)$" w l

quit

以上のように、非常に簡単に、カラーで日本語もあり、数式を含んだような図面を LaTeX に取り込むことができます。

Gnuplotのバージョン : 4.2
TeX環境 : TeX Live 2014