第 8 章 図表の組版 141
8.4 他のプログラムによる描画
広く使われている描画ツールを紹介します.以下の描画ツールで作成した図などはそれ ぞれ指定された方法でデバイスドライバが適切に解釈できる状態になければなりません.
8.4.1 T による描画
Unix
系OS
の描画ツールとしてBrian Kernighan
氏が開発したPIC
があります.これを
Tim Morgan
氏がTEX
に移植したT
を使うと簡単な図形ならばすぐに描くことができます.
Unix
系OS
を持っているならばPIC
というプログラム導入されているでしょう.ただ
PIC
は日本語化されてかもしれないので注意してください.T
はほとんどの機能 をTEX
ではなくデバイスドライバに任せています.これらの命令は\special
命令の中 に記述されています.T
の出力する特有な命令をT
スペシャルと言います.T
ス ペシャルに対応しているドライバはdvips
やdviout
,Dvipdfmx
などです.多くのドライ バが対応していますがデバイスドライバによる解釈の違いなどもありますので若干注意が 必要でしょう.例題程度に紹介しておきます.例えば図
8.3
のような図を作成したいとしましょう.PIC
の入力ファイルhoge.pic
に以下のような記述をします.PIC file pic
T file input
L
ATEX file L
ATEX
DVI special
Picture
図8.3 Tの使用例
.PS
box "PIC file"
arrow "pic" above
box "\textsc{Tpic} file"
arrow "input" above dashed box "{\LaTeX} file"
arrow "{\LaTeX}" above box "DVI"
arrow "special" above dashed ellipse "Picture" fill .PE
この
hoge.pic
をpic
でTEX
用に出力するために-t
オプションを付けてpic -t hoge.pic > hoge.tex
とすることで
hoge.tex
中の\graph
に図形が格納されます.これをfile.tex
で使用す るためには好き好き
L
ATEX 2ε 8.4
他のプログラムによる描画8
\input{hoge}
\begin{center}
{\box\graph}
\end{center}
とするとその場所に中央揃えでグラフを挿入できます.適宜
figure
環境に入れるなどし ます.8.4.2 メタな描画プログラム
Donald Knuth
氏がフォントデザイン用に開発したMETAFONTがあります.これに対して
John Hobby
氏が描画に関するアルゴリズムを追加したり,出力形式をEPS
にしたJohn Hobby (HPより) METAPOST という描画プログラムを開発しました.METAFONTは
TEX
のフォント形式ファイルhfilei
.gf
を出力するのに対してMETAPOSTはEPS
形式ファイルhfilei.n
を 出力するので今ではMETAPOSTが広く使われいます.METAPOSTに関する日本語情報 は少ないのが現状です.しかしMETAFONT から変更・追加された箇所があったとして も,Donald Knuth
氏のMETAFONTbook[48]
が参考になると思います.METAFONTをちょっと触ってみましょう.端末から
mf
とすると
This is METAFONT, Version 2.7182 (Web2C 7.3.9)
**
のようにアスタリスク
‘*’
が2
つ表示されてファイルの入力を促しています.ここでは実験的に,
“\relax”
と入力して改行します.するとアスタリスクが1
つなるはずです.**
これで準備は万全です.とりあえず点を表示してみましょう.
* drawdot (0,0); showit; <ENTER>
今度は直線を描くために
* draw (0,0)..(100,0); showit;
としてみましょう.曲線などは
* draw (0,100)..(100,100)..(100,0); showit; <ENTER>
とすると雰囲気がつかめるでしょう.終了するときは
end.
と入力します.
今度はMETAPOSTを少し体験してみましょう.
‘mp’
か‘mpost’
を端末から実行すれ ば良いはずです.今度はMETAPOSTのファイルhoge.mp
を用意します.beginfig(1) u=100;
draw (u,u)--(2u,u)--(2u,2u)..cycle;
draw (u,u)..(2u,u)..(2u,2u)..(u,2u)..cycle;
endfig;
end.
これを見ても何がなんだかわかりませんが,とりあえず保存しておきます.端末から
mpost hoge.mp
とします.そうすると
EPS
形式のhoge.1
が作成されますのでご覧ください.Ghostscript
などで見ると図8.4
のような円とその円に内接する直角二等辺三角形が表示されます.環図8.4 METAPOSTの出力例
境によって日本語化されたMETAPOSTを使うためには
mpost
ではなくjmpost
を使うこ とになるかもしれません.角藤亮氏のpTEX
を使っているWindows
の方はjmpost
のはず です.8.4.3 PSTricks
Timothy Zandt
氏らによるPSTricksは\special
命令中にPostScript
命令を記述する ことによってPostScript
の描画機能をTEX
/LATEX
で使えるようにするパッケージです.PostScript
命令を多用することからデバイスドライバとしてdvips
などを想定していたりPostScript
対応プリンタでの使用が推奨されます.PSTricksの詳しい使い方は日本語訳で70
ページ分の『L
ATEX
グラフィックスコンパニオン』[30]
の第4
章を参照してくださ い.基本的なマクロを読み込むためにはpstricksパッケージを読み込みます.特定のパッ好き好き
L
ATEX 2ε 8.4
他のプログラムによる描画8
ケージを個別に読み込むこともできます.色を使うためにはgrahicsパッケージに含まれ
るcolorパッケージではなくpst-colパッケージを読み込みます.全ての機能を使うとき
はpst-allを読み込ます.標準的に以下のようにするとうまく行くと思います.
\usepackage[dvips]{graphicx}
\usepackage[dvips,usenames]{pst-col}
\usepackage{pst-all}
具体的に
3
次元射影,画像のEPS
変換,グラデーション,木構造,回路図,プロットなど さまざまなことができます.口絵II
に状態遷移図の例を示します.PSTricksを
Dvipdfmx
で使うにはまず面倒な方法としてpstricksを使って描いた図形 を1
つ1
つEPS
ファイルに変換する方法です.これは\documentclass{jsarticle}
\usepackage[dvips]{graphicx}
\usepackage[dvips,usenames]{pst-col}
\usepackage{pst-all}
\pagestyle{empty}
\begin{document}
\begin{pspicture}(100,100) 描画内容
\end{pspicture}
\end{document}
のようなファイル
fig1.tex
を作成し,これを端末などからplatex fig1
dvipsk -Pdl -E -o fig1.eps fig1 epstopdf fig1.eps
egrep "ˆ
ということを図形の数だけこなし,図形を使用したい
L
ATEX
の原稿にfig1.pdf
としてgraphicxの\includegraphics
で張り込みます.%\usepackage[dvipdfm]{graphicx}
\includegrpahics[bb={0 0 100 100}]{fig1.pdf}
CV Radhakrishnan
氏とCV Rajagopal
氏らによるpdftricksを使うと少しは楽になりま す.これはもともとpdfTEX
でPSTricksを使うためのものですが,pL
ATEX
にも流用でき そうです.まずはpdftricksに付属のpst2pdf
というシェルスクリプトを少し変更します.for f in $FIGURES ; do latex $fig
dvips -Ppdf -E -o $fig.eps $fig epstopdf $fig.eps
done
という部分で
‘latex’
はもちろん‘platex’
にしますし.‘dvips’
もご自分のシステムに 合うように変更してください.epstopdf
で変換したegrep "^%%BoundingBox:" $FILE >> $fig.bb
の
1
行も追加しておくと良いでしょう.8.4.4 Xy-pic
ダイアグラムなどを描くには
Kristoffer Rose
氏とRoss Moore
氏によるXY-pic
パッケー ジを使うと良いでしょう.状態遷移図やオートマトン,回路図などを描くことができ非 常に洗練されたシステムになっています.詳細は『L
ATEX
グラフィックスコンパニオン』[30]
の第5
章を参照してください.8.4.5 化学式・化学構造式
化学式や化学構造式を描くための藤田眞作氏による