PIC -- A Graphics Language

[2021-11-23追記] この記事は2007年に書かれたものなのでだいぶ古い内容になっています。今ならpikchr(https://pikchr.org/home/doc/trunk/homepage.md)がオススメです。

コンピュータを使って文書の中に図を入れたくなった時、みなさんはどうするでしょうか。

Windowsを使っている人は、Word, Excel, PowerPointで文書を書いていると思います。素直な人だとオートシェイプ機能を使うでしょう。

UnixライクなOSを使っている人は、画像作成ツールを使って画像を作り、それからTeXやDocBook文書、その他の形式の文書に画像へのリンクを書き込むでしょう。あるいは自分独自の文書形式を作って作業しているかも知れません。(そんな人の場合、きっとこの文章は必要ないでしょう。)

TeXがなかった時代はどうしていたのでしょう。roffシステムを使ってパイプ&フィルターで文書を作成していました。

roffシステムは、UNIXのポリシーに従って複数のプログラムの組合せで動作するようになっています。

その中の1つにpicがあります。picはPIC言語を読み込み、roffで解釈できるコマンドに変換するものです。

PICの文法や使い方を学ぶには、Eric S. Raymondの文書を見るのがよいでしょう。はっきりいって、PICの情報源は少ないです。私の知っている情報源について、ここに載せておきます。

  1. man pic
  2. UNIXのバックグラウンド
  3. Brian W. Kernighanによるユーザマニュアル
  4. Eric S. Raymondによるユーザマニュアル
  5. W. Richard StevensによるPICマクロ集

1のmanは、あまり詳しく書かれていません。2はUNIXの思想についてroffを使って解説しています。3,4,5はplotutilsに同封されているマニュアルで、どれもわかりやすくすばらしい文書です。特にEric S. Raymondの文書が参考になるでしょう。

PICをサポートしているソフトウェアも少ないです。私の知る限りでは以下の3つです。

  1. gpic
  2. plotutilsのpic2plot
  3. UMLGraph

gpicは、UnixライクなOSだとおそらく標準で入っているでしょう。pic2plotは、フォントのサポートが不十分です。特に日本語は期待できません。UMLGraphは、単体ではPICを解析できませんが、シーケンスチャートを描くためのPICマクロが用意されています。