PSTricks
PSTricksは、
組版システムである
TeXや
LaTeXのドキュメント内で、高品質な
PostScriptグラフィックスを直接記述し、埋め込むことを可能にする強力なマクロパッケージです。これにより、外部の描画ツールで作成した画像を別途挿入するのではなく、
TeX/
LaTeXのソースコードの一部として図形要素を制御できるようになります。これは、特に数式や図表が多用される学術文書や技術文書において、テキストと図版の一貫性を保ち、高い
組版品質を実現する上で非常に有効な手段となります。
PSTricksは、当初Timothy Van Zandtによって開発されました。その後、継続的なメンテナンスと機能拡張が行われ、現在ではDenis Girou氏、Sebastian Rahtz氏、Herbert Voss氏といった貢献者たちによって保守されています。
基本機能と使い方
PSTricksを使用すると、線、曲線、円、矩形といった基本的な図形から、より複雑なパスまで、様々なグラフィックス要素を記述できます。特徴的なのは、
PostScriptの座標系に基づいている点で、全ての座標指定は丸括弧 `()` で記述されます。例えば、点(1,1)から点(5,1)へ線を描く場合は、`\psline(1,1)(5,1)`のように記述します。これらのコマンドは、
TeX/
LaTeXのコード内に直接埋め込むことで、コンパイル時に
PostScriptとして処理され、図形が描画されます。
以下に、PSTricksを用いた基本的な図形描画の例を示します。
latex
\begin{pspicture}(0,0)(6,6)
% グリッド線(コメントアウト)
% \psgrid[gridcolor=lightgray,gridlabels=0pt]
% 赤い線分で三角形を描画
\psline
linecolor=red(5,1)(1,4)(1,1)
% 緑色の太い線、点付きで曲線を引く
\pscurve[linecolor=green,linewidth=2pt,%
showpoints=true](5,5)(3,2)(4,4)(2,3)
% 青色の破線で円を描画
\pscircle
linecolor=blue,linestyle=dashed{1}
\end{pspicture}
この例のように、`\pspicture`環境内に描画コマンドを記述します。オプションは角括弧 `[]` で指定し、線の色、太さ、スタイルなどを詳細に制御できます。また、PSTricksは
TeX/
LaTeXの
組版システムと統合されているため、図形内に数式やテキストを配置するといったことも容易に行えます。
拡張パッケージ
PSTricksの基本的なコマンド群は、
PostScriptの機能を低レベルで操作することに近いため、より特定の用途に特化した複雑な図形やグラフを簡単に描くためには、様々な拡張パッケージが開発されています。これらのパッケージは、PSTricksの機能を基盤としつつ、特定の目的のための高レベルなコマンドや環境を提供します。
代表的な拡張パッケージには以下のようなものがあります。
`pst-plot`: 関数のグラフを描画するためのパッケージです。数式を指定して、そのグラフを座標系上に描く機能を提供します。
PostScriptは
数学的な演算を逆ポーランド記法(RPN: Reverse Polish Notation)で行うため、このパッケージで関数を記述する際にもRPN形式で引数を渡す必要があります。
latex
\begin{pspicture}(-7.5,-3)(7.5,3)
\psaxes
labels=none(-7,-2)(7,2)
% sin関数のグラフを描画 (xを度に変換してsinを計算)
\psplot[linecolor=blue, linewidth=1.5pt]%
{-7}{7}{x 0.01745329252 div sin}
% 軸上のラベルに
TeXの数式を利用
\uput
45{$\pi$}
\uput
90{$-\pi/2$}
\uput
-90{$\pi/2$}
\uput
-135{$-\pi$}
% 点線のガイド線
\psline[linewidth=1pt,linecolor=red,linestyle=dotted]%
(1.57079632,1)(1.57079632,0)
\psline[linewidth=1pt,linecolor=red,linestyle=dotted]%
(-1.57079632,-1)(-1.57079632,0)
\end{pspicture}
`pstricks-add`: `pst-plot`を強化し、
極座標系のグラフ描画などを可能にするパッケージです。また、関数の引数指定において、逆ポーランド記法だけでなく一般的な記法(代数形式)も利用できるようになる機能を提供します。
`pst-math`:
PostScriptのデフォルトである角度単位(度)に加えて、
ラジアンでの角度指定を可能にします。また、
双曲線関数なども利用できるようになります。
`pst-plot3d`: 3次元のグラフィックスやグラフを作成するための機能を提供します。
`multido`: シンプルなループ処理機能を提供し、パラメータを少しずつ変化させながら同じ描画処理を繰り返し実行することで、複数のグラフを重ねて描画したり、アニメーションの各フレームを生成したりするのに役立ちます。
`pst-eucl`: ユークリッド
幾何学的な図形(点、線、円、三角形など)を、
幾何学的な関係性に基づいて容易に描画するための高レベルなコマンドを提供します。
これら以外にも、電気
回路図、
グラフ理論のグラフ、木構造図、データの視覚化など、特定の専門分野に特化した多様な拡張パッケージが存在し、PSTricksのエコシステムを豊かにしています。
関連技術とツール
PSTricksは
TeX、
LaTeX、
PostScriptという三つの技術と密接に関連しています。特に
PostScriptへの依存が高く、最終的な出力は
PostScript(またはそれをPDFに変換したもの)となります。このため、
TeX LiveやMik
TeXのような主要な
TeXディストリビューションには、PSTricks本体および多くの拡張パッケージが含まれています。
また、PSTricksのコードを手書きする代わりに、グラフィカルなインターフェースで図形を作成し、PSTricksコードとして出力するツールも存在します。例えば、オープンソースのベクターグラフィックエディタである
InkscapeにはPSTricks形式でのエクスポート機能があります。同様に、
LaTeXDrawやJPicEdtといったJavaベースのグラフィックエディタも、PSTricksコード生成機能を提供しています。
PSTricksは、
TeX/
LaTeX環境で表現力豊かなグラフィックスを柔軟に作成するための、長年利用されている確立された手法の一つです。