GNU PIC 実行環境構築

GNU PIC の実行環境を構築する。pic は、Making Pictures With GNU PICTroff resources の pic セクションが参考になる。Troff resources の pic セクションに、ps ファイルがあるけど、ps2pdf で pdf ファイルにしておくと便利。


2011-02-24 文字の滲みを解消した。
GNU PIC の出力画像を綺麗にする - l1o0の日記

pic ソース

pic のソースは以下のとおり。3. Basic PIC Concepts とかに載っている例そのまま。
example.pic

.PS
ellipse "document";
arrow;
box width 0.6 "\fIpic\/\fP(1)"
arrow;
box width 1.1 "\fIgtbl\/\fP(1) or \fIgeqn\/\fP(1)" "(optional)" dashed;
arrow;
box width 0.6 "\fIgtroff\/\fP(1)";
arrow;
ellipse "PostScript"
.PE

コマンド

pic ファイルを gif にするスクリプト。いろいろ細かいことやってるけど、groff があれば、とりあえず図は作れるはず。

pic2gif.sh

#!/bin/sh

PIC_FILE=$1
if [ ! -f "$PIC_FILE" ]; then
    echo "Usage : "`basename $0`" input(pic)"
    exit 1
fi

perl -pe 's/\x0D\x0A|\x0D/\x0A/g' $PIC_FILE | \
    iconv -t EUC-JP | \
    groff -p -Tps | \
    gs -q -sDEVICE='ppmraw' -sOutputFile='-' -dBATCH -dNOPAUSE - | \
    pnmcrop | (ppmtogif 2> /dev/null)

gif の中身が出力されるので、適当なファイルにリダイレクトする。

pic2gif.sh example.pic > tmp.gif

できた画像ファイルがこれ。