9.2 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 に直してくれる)。

桂田 祐史
2017-07-09