10.3 PostScript データの取り込み

(独白: もう PostScript を使うべきではないような気がしている… 勧められないものはこの文書から削除すべきかもしれない。)


画像ファイルには色々なフォーマットがあるが、 PostScript は古くからレーザープリンター用の言語として使われているもので、 問題が生じにくかった。

LATEX に取り込む場合は、カプセル化 PostScript 形式 (Encapsulated PostScript, 長いので EPS 形式と呼ぶことにする, 通常は “.eps” という拡張子をつける) に変換しておくのが良い。

最近は Mathematica の出力する EPS ファイルが巨大なものとなったり、 そもそも表示印刷するためのソフトが OS 標準で用意されていないこともあって 11、 必ずしもイチオシのフォーマットとは言えなくなったと思う。

(2015/6/20) Mathematica 10 から、凡例のフォントが Times-Roman から MathematicaSans とかに変わって、 dvipdfmx で処理出来なくなった。設定で逃げられるかもしれないけれど、 ちょっと嫌気が差してきた。 ちなみに PDF にして取り込む場合は大丈夫。

kamehoshi2.eps を取り込む
\documentclass[12pt,leqno,dvipdfmx]{jarticle}
\usepackage{graphicx}% graphicxパッケージが必要

\begin{figure}[htbp]
 \centering
 \includegraphics[width=5cm]{eps/kamehoshi2.eps}
 \caption{星を蒔いてみる}
\end{figure}

図 6: 星を蒔いてみる
\includegraphics[width=5cm]{eps/kamehoshi2.eps}

等々では、グラフィックスを PostScript データとして出力するのは簡単である。

Mathematica の場合は,
g=Plot[Sin[x],{x,0,2Pi}]
Export["mygraph.eps",g]
のようにする。あるいは (そうして作った PostScript データが巨大になってしまう場合は)
Export["mygraph.jpg", g, ImageResolution->1200]
として JPEG で出力してから (解像度を 1200 dpi にするのは好みの問題)、
jpeg2ps mygraph.jpg > mygraph.eps
あるいは
convert mygraph.jpg mygraph.eps
として PostScript に変換する。

gnuplot の場合は、
gnuplot> set term postscript eps color
gnuplot> set output "mygraph.eps"
のようにしてから描画コマンドを実行する。なお、最近は
gnuplot> set term push
gnuplot> set term postscript eps color
gnuplot> set output "mygraph.eps"
gnuplot> (描画コマンドを実行)
gnuplot> set term pop
とするのが相場かもしれない (以前は、元に戻すために、 set term x11 とか set term win くらい覚えておけば良かったが、 最近は結構複雑なので、push, pop が用意されたらしい)。

GLSC の場合は、描画デバイスの指定時に
  g_init("mygraph", ...);
  g_device(G_BOTH);
  ...
のようにファイル (名前は g_init() で 指定した “mygraph” になる) に出力するもの (ここでは G_BOTH) を選び、
g_out -i mygraph
で変換する。mygraph.i00 というファイルが出来るが、
  \includegraphics[angle=90,width=10cm]{mygraph.i00}
のように angle=90 で回転して取り組むか (width=angle= の順番には注意すること)、
g_out -iv mygraph
のようにして出力時に回転する (-v でポートレート・モードにする、そうである)。 -v を指定した場合、 しばしば負の座標を持つ BoundingBox が出来て色々障害の原因となるが (ファイル先頭部分にあるので、 head mygraph.i00 とかしてチェックして下さい)、 ps2eps などを用いて座標の平行移動を行なうと良い。
ps2eps -t=100,200 mygraph.i00
(100,200 はイイカゲンです)
とすると mygraph.i00.eps というファイルが生成される。 元々 g_out の作る PostScript ファイルの BoundingBox 情報は イマイチなので、 ps2eps はつねに実行することにした方が良いかもしれない (ある程度まともな BoundingBox に直してくれる)。

桂田 祐史
2020-09-14