次のページ 前のページ 目次へ

6. どのプリプロセッサが使えるのか?

Groff は 少なくとも、tbl、eqn 及び pic の3つのプリプロセッサを使用す る。(名称は、gtbl、geqn 及び gpic の場合がある)。これらのプリプロセッ サの目的は、プリプロセッサマクロを解釈し、データを通常の troff の入力 に変換することにある。Tbl は表のプリプロセッサ、eqn は方程式/数学用の プリプロセッサ、pic は図形用のプリプロセッサである。それぞれの機能につ いての詳細は、man page を参照してほしい。

簡単にいうなら、man page は、プリプロセッサを必要としない様に書くこと。

Eqn プリプロセッサは、man page を利用するうちの99%を占めるタイプラ イタのようなデバイスに対しては、全くひどい出力を出す。例えば、 XAllocColor.3x は累乗表記を含んだ数式を用いている。タイプライタの 様なデバイスなので、指数は、基数と同じライン上に並ぶ。つまり、 N の2乗が `N2' の様に表示される。

Tbl ブリプロセッサは、使うのを避けるべきである。というのは、私の見 た限り、xman プログラムは、Tbl プリプロセッサの処理に失敗しているから だ。Xman 3.1.6 は、signal(7) を例にとれば、man page をフォーマットする のに、次のコマンドを用いる。

gtbl /usr/man/man7/signal.7 | geqn | gtbl | groff -Tascii -man \
> /tmp/xmana01760 2> /dev/null

このコマンドは、gtbl プリプロセッサを用いることで、ソースを台無しにし てしまう。というのは、gtbl プリプロセッサの出力が、もう一度 gtbl プリ プロセッサで処理されるからだ。処理結果は、あなたが意図したテーブルが、 なくなってしまった man pege ということになる。これが、バグなのか、gtbl プリプロセッサが自身の出力を窒息させる仕様なのか、それとも xman が gtbl プリプロセッサを2回も使わないようにされるべきなのかは、私にはわ からない。いずれにしろ、テーブル(表)を使いたいのなら、自分でフォーマッ トしておいて、.nf と .fi で挟み、フォーマットされないようにしよう。こ の方法では、ボールド、イタリックが使えないが、表がなくなってしまうよう なことはない。

Pic プリプロセッサを必要とする man page については、見たことがない。し かし、私自身は、好ましくないと思う。上に例示したように、xman は pic プ リプロセッサを使わないし、groff はやっぱり入力をめちゃくちゃにしてしま うだろう。


次のページ 前のページ 目次へ