manの雑学
jp-groff-0.99.tgzをインストールすると、groff,gnroff等の実行ファイルは /usr/local/bin にインストールされ、roffの整形フォーマットマクロ(TeXで言う所のLaTeX.texにあたるマクロファイル)が/usr/local/share/groff/tmac/にインストールされる。
一方、FreeBSD標準の(英語の)roffの整形フォーマットマクロは/usr/share/tmacに入っている。
ここでは、roffのフォーマットマクロについてちょっとうんちくを書いてみる。
歴史的に言って、roffの整形フォーマットマクロには2種類ある。
- tmac.anフォーマットマクロを使うBSD UNIXオリジナルの形式
- tmac.docフォーマットマクロを使うGNUの形式
一般には、BSD UNIXに最初からあるコマンド(ls等)は tmac.an を利用したマニュアルファイルになっており、GNUで作成されたコマンド(gcc,biff等)は、tmac.doc を利用している。
利用するフォーマットマクロファイルが異なるので、普通に考えるとどちらか片方のマニュアルしか参照できなくなるのだが、これでは困る。
というわけで、特別に次のようなフォーマットマクロファイルを作成して、両方マニュアルファイルを整形することができるようにする。
- tmac.andocフォーマットマクロ。内部で状況に応じて tmac.an か tmac.doc を読み込むフォーマットマクロ。
マニュアルファイルを整形する時に使われるコマンドは groff, gnroff なのだが、manコマンドから下請けで呼び出される際にコマンドラインオプション(-m)で使用するフォーマットマクロファイルを指定することができる。
- groff -man : tmac.an フォーマットマクロを利用
- groff -mdoc : tmac.doc フォーマットマクロを利用
- groff -mandoc : tmac.andoc フォーマットマクロを利用する。tmac.andocマクロは自動的にtmac.anかtmac.docを読み込む。
4.4BSDやNetBSDのmanコマンドは、groffを呼び出す際にオプション -mandoc をつけて呼び出している。
これに対して、FreeBSDの標準のmanコマンドは、groffを呼び出す際にオプション -man をつけているので、このままだとdoc形式のマニュアルファイルが整形できないのである。
そんなわけで、FreeBSD標準の場合(/usr/share/tmac)は、フォーマットマクロファイルのファイル名と内容は以下のようになっている。
- tmac.groff_an : anフォーマットマクロを使うBSD UNIXオリジナルの形式
- tmac.doc : docフォーマットマクロを使うGNUの形式
- tmac.an : an形式とdoc形式を自動で判別して、状況に応じて tmac.groff_an か tmac.doc を読み込むフォーマットマクロ。
- tmac.andoc : an形式とdoc形式を自動で判別して、状況に応じて tmac.groff_an か tmac.doc を読み込むフォーマットマクロ。
jpman計画で使われているja-groff-0.99.tgz(FreeBSD 2.2.7Rに収録されているもの)では、下記のようにFreeBSD標準方式にしたがった命名方式のフォーマットマクロファイル名を利用している。
(ja-groff-0.99.tgz用のマクロは/usr/local/share/groff/tmac 以下に入っている)
- tmac.an : an形式とdoc形式を自動で判別して、状況に応じて tmac.groff_an か tmac.doc を読み込むフォーマットマクロ。
- tmac.andoc : an形式とdoc形式を自動で判別して、状況に応じて tmac.groff_an か tmac.doc を読み込むフォーマットマクロ。
- tmac.doc : docフォーマットマクロを使うGNUの形式
- tmac.groff_an : an形式フォーマットマクロを使うBSD UNIXの形式
フォーマットマクロを改造する場合には混乱しないように注意する必要があるだろう。
FreeBSDページの目次に戻る
Copyright(c) 1996,97,98 George(小浜 純). All rights reserved.
私の作成したページは全部リンクフリーです。
このページに間違いや要望などがありましたら