数理解析研究所講究録
第 1780 巻 2012 年 64-71

64
文書作成で利用できる作図ツールと KETpic

呉工業高等専門学校自然科学系分野 深澤 謙次 (Kenji Fukazawa)
Department of Natural Sciences,

Kure National College of Technology
東邦大学薬学部 高遠 節夫 (Setsuo Takato)
Fucluty of Pharmaceutical Science,
Toho University

1

はじめに数学や物理学の研究者や教育者の中には，論文の作成に LATEX を用いる者が多くいるが，教材の作成となると LATEX ではなく，Microsoft Word などのワープロを使用 する者も，少なくない．その理由の 1 つは，LATEX が図を扱うのが得意ではないことが考えられる．

教材にはきれいで正確な図が不可欠である．言葉や数式で説明してもなかなかわからないことが，図を 1 っ見せるだけで理解できることもある．したがって，聾壇 X 文書にきれいで正確な図を簡単に入れられるようにならない限り，教材の作成に班 E-X を使うようにはならない．
1 文書にきれいで正確な図を挿入するためのツールとして開発されたものの 1 つに KETpic がある．KETpic は数学の配布用印刷教材の作成を目的に開発が始められ，数式処理システム (以下，CAS) 上で動作するパッケージとして提供されている．現在の開発は主に Scilab 上で行われている．
本論文では，他の作図ソフトウェアと比べて剛 T-pic がどれぐらい容易に利用できるかを考察する．作図の容易さを比較することが目的であるので，本論文で比較の参考とする図は単純なものを考える．比較する他の作図ソフトウェアとしては，Gnuplot,Asymptote, PGFplots を取り上げる．
ここでは簡単に KETpic の紹介をする．KETpic の利用方法は以下のとおりである．
KETpic では TEX 文書用の挿図を作成するために，Tpic を利用する．Tpic とは TEX用に開発された図形プリプロセッサ及びそれが出力する special コマンドセットの名称である．Tpic を用いて TEX 文書に図を挿入するには，図を描くための一連の Tpic のコマンドの並びをファイルに書き込み，そのファイルを input 文を用いて TEX のマス$\backslash$

ターソースファイルに読み込めばよい．
KETpic はこの Tpic のソースファイルを作成するための CAS 上で動作するプログラム群として実装されている．KETpicを用いることで，ユーザーは Tpic のコマンドを知らなくても Tpic を利用した図が作成できる訳である．この結果，KETpic には以下 のような特徴が生まれている．

\bullet TEX との親和性が良い (図の中に本文と同じ書体で数式が書ける).

65..
.

・形と大きさに関して正確な図が描ける．
図の中に様々な装飾がつけられる．

豊かな表現力を持ったモノクロ線画が描ける．

修正が容易である．

を用いて挿図を作成する手順を模式的に図示すると，図 1 のようになる．ユー] のコマンドを使って図を描くための一連のコマンドの並びをザーは CAS 上で書き，Tpic ファイルを作成する．このファイルを珍 TEX ソースファイルに読み込みコ$I\Phi r_{P}ic$$I\Phi r_{P}$$c$

ンパイルすると，挿図入りの dvi ファイルが得られる．図を修正したい場合は，CAS上にもどり $Iqr_{P}ic$ のコマンドを修正後，同じことを繰り返す．

図1$Iqr_{P}ic$

による作図手順

コマンドリファレンスなどは以下のサイトから自由にダウンロードできる．

http: $//ketpic.com$ .

2

Gnuplot による作図例

Gnuplot は関数やデータの 2 次元もしくは 3 次元のグラフを作成するためのソフトウェアであり，研究者によく使われている．Gnuplot の特徴としては.

$o$$\bullet$

コマンドラインアプリケーションソフトウェアである

無料で使用できる高機能であるなどが上げられる．

Gnuplot で作成したグラフを膣 I-EX 文書に取り込む方法は，基本的には以下の 2 通りである．

1. グラフを eps 形式で保存し，includegraphics コマンドで読み込む
2. グラフを形式で保存し，input コマンドで読み込む$\backslash$$I4T\varpi$$\backslash$

66
Gnuplot を使った簡単なグラフの例は図 2 のようになる (グラフを eps 形式で保存し，includegraphics コマンドを利用). このグラフを描くための Gnuplot のコマン$\backslash$ドは以下のようなシンプルなものである．

plot $[-2*pi;2*pi][-4;4]2*\exp^{(}-x**2/10),$ $3*\sin(x)$set terminal postscript eps
set output-simple-graph. eps”$\dagger’ gp$

4$\prec i$

22$0$

64

図 2Gnuplot による簡単なグラフの例

図を見ればわかるように，このグラフには座標軸がないなど，数学教材用のグラフとしては適当ではない (物理教材としては問題ない). 図 2 を数学教材に適切なものにすると図 3 のようになる (グラフを殴噌 (形式で保存し，input コマンドを利用). このグラフを描くための Gnuplot のコマンドは以下のようになる．
$\backslash$

set borderset xzeroaxis$0$

set yzeroaxis
set xtics axis
set ytics axis
set labelat $-0.45,$ $-0.3$
set label ‘ $x$‘‘ at $2*pi+0.1,0$ left
set label $||\y$ “ at $0,4.3$ center“$-2 piset xtics-pi, “$ pi$’ pi, ”$2 pi$’ $2*pi)$‘‘’‘
set ytics $(”-3^{1}$ $-3$ , $12”2,$
3
set label 1
right $’’ at 3.5,1 left
set labe12x$’’ at $-4,3$ left
unset keyplot $[-2*pi;2*pi][-4:4]2*\exp(-x**2/10),$ $3*\sin(x)$set terminal latex
set output $|gp-simple-label.tex^{\dagger I}$$||0^{||}$$\dagger$$(^{1I}$$\backslash \backslash$$\^{|\uparrow}-2*pi,$$|\uparrow 3$$\dagger$$||\-\backslash \backslash pi$$\backslash \backslash$$)$$||\y=2\backslash \backslash \exp\backslash \backslash left$ $(-\backslash \backslash frac\{x^{\text{へ}}2\}\{10\}$$\dagger\uparrow\y=3\backslash \backslash \sin$$\backslash \backslash$$\backslash \backslash$$)$

67
$y$

図 3Gnuplot による数学に適したグラフの例
図 3 を描くための Gnuplot のコマンドは，座標軸の描画やラベルの書き込みなどはできるが，細かい微調整ができない (例えばグラフと (‘2” が重なってしまい，位置がずらせない). また，図の一部に斜線を入れたり日本語を書き込むことは難しく，工夫がいる．

さらに，画面上では 2 つのグラフは色で区別され分かり易いが，グラフを班 EX 形式で保存し，input コマンドで ]$\#Tffi$ ファイルに読み込むと 2 つ目のグラフが点線で表示されてしまい識別しにくいことがわかる．このことから，Gnuplot は印刷教材の作成$\backslash$には向いていないと言える．

3

Asymptote による作図例

Asymptote は MetaPost を発展させたベクトルグラフィック記述言語であり，以下のような特徴がある．

.
.

$\bullet$$\bullet$$\bullet$

ライセンスは GPL である

UNIX, Linux, MacOS, Microsoft Windows などで動く
無料で使用できる$I4Tffi$に依存しないが，ラベルを D 艶 X 形式で書くことができる

高機能である

Asymptote で作成したグラフを聾 Im 文書に取り込む方法は，基本的には以下の 2 通りである．

1. Asymptote コードを BEX ソースファイルに直接書く
2. Asymptote コードを別ファイルに書き，input コマンドで読み込む
図 3 を描くための Asymptote のコマンドは以下のようになる．
$\backslash$$\backslash begin\{asy\}$import graph;size $(15cm, 0)$ ;real xmin $=-2*pi$ , xmax $=2*pi$ ;68real ymin $=-4$ , ymax $=4$ ;real $f(realx)$ return $2*\exp(-x^{arrow}2/10);\}$
real $g(realx)$ retum $3*\sin(x);\}$
graph $(f, -2*pi, 2*pi, n=200)$ ;path pigraph $(g, -2*pi, 2*pi, n=200)$ ;path p2$\{$$\{$$=$$=$

draw (pl, red);draw ( $p2$ , blue);
xaxi (Label (’‘ $x$ ‘ , po it $ion=EndPo$ int, al ign $=NE$ ), xmin $=xmin$ , xmax $=xmax$ ,Ticks (scale $(. 7)*Label$ (align $=E$ ), NoZero, begin$=true$ , beginlabel $=true$ ,end $=true$ , endlabel $=true$ , Step $=2$ ,Size $=lmm$ , pTick $=black$ , ptick $=gray$ ), Arrow);
yaxi (Label (” $y$ , po it $ion=EndPo$ int, al ign $=NE$ ), ymin $=ym$ in, ymax $=ymax$ ,Ticks (scale $(. 7)*Label$ $()$ , NoZero, begin $=false$ , beginlabel $=false$ ,end $=false$ , endlabel $=false$ , Step $=1$ , Size $=lmm$ , size $=.5mm$ ,$|$

$s$

$s$

$t\mathfrak{l}$

$s$

$s$

$pTick=black$ , pt ick$=gray$ ), Arrow) ;label $(” 0”, (0,0), SW)$ ;(frac{x へ $2\}\{10\}$label ($ylabel $(”\y =3\backslash \sin x\", (-4,3), E)$ ;$=2\backslash \exp\backslash left$$\backslash$-$\backslash$$\backslash$right)$‘‘, (3 5, 1), E);end{ asy}

Asymptote の場合，若干コマンドが手間が掛かることがわかる．このこととは別に，Asymptote を利用するためには $I4IN$ のソースファイルに asymptot パッケージを読み込まなくてはならず，また，Asymptote を利用して空間図形を含んだ渥 TNX 文書を作成するには Tg エンジンとして pT 腰 ( は使用できず，pdfIffi を使用しなければならない．また，ソースファイルをコンパイルするためには (ファイル名を “sample.tex”$e$とすると)

pdflatex sample
asy sample-l
pdflatex sampleとしなければならず多少操作が煩わしい．

一方で，図の一部に斜線を入れるなどの様々な装飾を付け加えたり日本語を書き込んだりすることは難しくない．また，画面上でグラフを表示すると，2 つのグラフは色で区別され分かり易い．しかし，Asymptote はモノクロ印刷して配布する文書を作成することを想定して設計されていないので，図によっては (特に空間図形など) 分かり難いものになってしまう．したがって，印刷教材の作成に向いているとは言えない．

PGFplots による作図例

4

マクロパッケージ (Till Tantau の PGF パッケージを元にしていPGFplots はる であり，T 域 (文書に高品質の関数やデータのグラフ (2 次元 3 次元) を挿入する$?\mathbb{F}$$)$

69
ことができる．このため，Tg 文書での本文と図中でのフォントの一貫性を保つことができるという特徴がある．
PGFplots で作成したグラフを $I4Tffi$ 文書に取り込む方法は，基本的には以下の 2 通りである．
1. PGFplots コードを

$I4T\mathscr{X}$

ソースファイルに直接書く

2. PGFplots コードを別ファイルに書き，$\backslash input$

コマンドで読み込む

図 3 を描くための PGFplots のコマンドは以下のようになる．
$\backslash begin\{tikzpicture\}$$\backslash begin\{axis\}$

axis
axis

$x$

$y$

[line $=middle$ ,line $=middle$ ,xlabel $=\{\x}$ ,ylabel $=\{\y}$ ,xmin $=-6$ . 2831, xmax $=6$ . 2831,
ymin $=-4$ , ymax $=4$ ,width $=0.8\backslash textwidth$$]$$\backslash$addplot [mark $=noner$ , smooth] $\{2*\exp(-x*x/10)\}$ ;$\backslash addplot$$\backslash$$\backslash$[mark $=noner$ , smooth] $\{3*\sin(\deg(x))\}$ ;end{axis}
draw (4. 1, 3.4) node {$0$};

node$yleft $(-\backslash frac\{x^{\text{へ}}2\}\{10\}\backslash right)$ $ ;draw node at (2.5,6.5) $\{\y =3\backslash \sin x}$ ;$\backslash draw(82,48)$$\backslash$$\{$$=2\backslash \exp\backslash$$\backslash end\{tikzpicture\}$

図 4PGFplots による曲面の例

$\}$

70
PGFplots の場合，座標軸などが比較的簡単なコマンドで描画できることがわかる．
$I4Tff$ のソースファイルにまた，PGFplots を利用して $IeTEX$ 文書を作成するには，pgfplots パッケージを読み込まなくてはならず，Asymptote と同様，Tffi エンジンとして I 入は使用できず，$p$$\}$

一方で，図の一部に斜線を入れるなどの様々な装飾を付け加えたり日本語を書き込んだりすることは難しくない．また，画面上でグラフを表示すると，2 つのグラフは色で区別され分かり易い．しかし，PGFplots はモノクロ印刷して配布する文書を作成することを想定して設計されていないので，図によっては (特に空間図形など) 分かり難いものになってしまう (図 4 参照). したがって，印刷教材の作成に向いているとは言えない．

5による作図例

最後に $Iqr_{P}ic$ を利用した場合の例を示す．図 3 を描くための $Iq\Gamma pic$ のコマンドは以下のようになる (Maxima を利用した $Iqr_{P}ic$ のコマンド例).
load $(^{l1}ketpic$ . mac”)$

setwindow $([-2*^{l}/.pi, 2*/_{l}pi], [-4, 4])$
$f:2*\exp$$g$$(-x^{\text{へ}}$2/10$)$$: 3 sin(x)$$*$pdl: plotdata(f, 30)$
pd2: plotdata(g, 200)$
openFile $(^{1\prime}maxima$ -simple-label. tex )beginpi cture (’ lcm”)$
drwl ine (pdl, pd2) $$t\mathfrak{l}$htickmark $(-2*/.pi,$$’|-2\backslash \backslash pi$$2*/.pi,$

vt ckmark$i$It$’|se^{\uparrow},$$-/.pi,$ sw“,$|\uparrow$$,$$|\prime 2\backslash \backslash pi^{1t}$$)$”$,$$/.pi$, “ swIl ,$|\backslash \backslash pi^{||}$,$$(-3, ||-3^{1\uparrow},2, ‘ {}^{t}nw^{t1}, ‘|2^{t},3, \dagger‘ 3^{1t})$left
expr [4. $0,1],$$([-4.0,3],{}^{t}e^{\primetIt}y=3\backslash\backslash\sinx")$ $expr$($$”-\backslash \backslash pi$$\prime\prime e^{\iota\iota\prime\iota}y=2\backslash \backslash \exp\backslash \backslash$$(-\backslash \backslash frac\{x^{\text{へ}}2\}\{10\}\backslash \backslash right)$$)$$

endpicture (1)$closeFile $()$ $$r;\Gamma pic$

$Iqr_{P}ic$ をの場合，座標軸などが簡単なコマンドで描画できることがわかる．

利用して殴炸入文書を作成する場合，丁腰 ( エンジンとして $pdfT\alpha$ ,$\langle$, pT 口 ( も使用できる．また，図の一部に斜線を入れるなどの様々な装飾を思い通りに付け加えたり日本語を書き込んだりすることが比較的簡単にできる．

また，図 4 と同じ曲面を $Iqr_{P}ic$ を用いて描くと図 5 のようになる．図 4 はカラーで描かれているので一見見やすい図のように思われるが，図 4 では 2 つある谷のうち，向こう側の谷の部分が手前の曲面に隠されて見えないのに対して，図 5 では隠れている部分が点線で表現されていることがわかる．また，図 4 はカラーで描かれているので教材

71として大量に印刷して配布するのには向いていないと考えられるが，図 5 はモノクロの少ない線で描かれているので，モノクロ印刷に適していることがわかる．Iqrpic では，このような図が簡単に描けるように様々なコマンドが用意されている．

図56$I\mathfrak{g}r_{P^{i_{C}}}$for Scilab による曲面の例

Summaryがどれぐらい容易に利用できる
本論文では，他の作図ソフトウェアと比べてかを，他の作図ソフトウェアとして Gnuplot, Asymptote, PGFplots と比較することに$I\mathfrak{g}r_{P}ic$よって考察した．作図の容易さを比較することが目的であるので，本論文で比較の参考とする図は単純なものを考えた．結果をまとめると以下のようになる．
$*$$\bullet$.

Gnuplot, Asymptote, PGFplots それぞれにグラフ自体は簡単に描ける．
Gnuplot はグラフ以外の装飾 (座標軸やラベルなど) を付けることは必ずしも簡単ではないが，Asymptote, PGFplots は日本語を書き込むことを含めて難しくはない．

空間図形も含めて考えると，Gnuplot, Asymptote, PGFplots は必ずしも印刷教材に向いた図を作成できる訳ではない．

数学向けの配布用印刷教材の作成に関しては，本論文で比較した作図 ソフトウェアの$Iqjr_{P}ic$ が最も容易であり適していると言える．
中では，$\grave$

参考文献[1] CAS 題 X 応用研究会編，$I\Phi^{r_{P^{i_{C}}}}$

で楽々$T\mathscr{X}$

グラフ，イーテキスト研究所，2011.

[2] A. Hammerlindl, J. Browman, and T. Prince, Asymptote: Asymptote: the Vector
Graphics Language, 2004.
[3] C. Feuers\"anger, Manual for Package PGFPLOTS, 2010.