tmac ファイルは、普通の roff ソースドキュメントです。ただし、 通常このファイルには定義および設定コマンドしか含まれておらず、 テキストは入っていません。tmac ファイルはすべて tmac ディレクトリという 1 つあるいは少数のディレクトリ内に 保管されています。
似たような理由で、名称が m で始まらないマクロパッケージは、 m をつけて表されることがよくありました。例えば、 tmac.doc に対応するパッケージは、 mdoc と呼ばれました。なぜなら、このパッケージをアクティブに するためのコマンドラインは、次のように表されるからです。
troff -m doc
現在の groff(1) のバージョンでは、パッケージ名に m が付こうが付くまいが、この悩ましいマクロパッケージの名称付け体系を どちらも提供しています。ですので、 groff では、 man マクロパッケージは、次のいずれでも指定可能です。
groff -m man
groff -m an
groff -m man
groff -m an
システムでどのマクロパッケージが利用可能であるかを判別するのに 最も簡単な方法は、 tmac ディレクトリ群の中身を調べることです。 例えば、 tmac.anything または anything.tmac と呼ばれるファイルは、 anything という名前のマクロパッケージを決定しています。
groff では、マクロパッケージの大部分は、 古くからあるパッケージに対して m を先頭に付けた groff_<name>(7) という名前のマニュアルページで説明がされています。
groff リクエスト .so あるいは .mso を用いてマクロファイルをドキュメントに取り込むことも可能です。 .so については、マクロファイルのフルパスでのファイル名を指定しなくては いけません --- そのマクロファイルが保存されているディレクトリを 含む必要があります。 マクロファイルが tmac ディレクトリ群のどれか 1 つに格納されている場合、 代わりに .mso を使用するほうが便利です。なぜなら、このリクエストは tmac パスを 探索してファイル名を見つけるからです。 更に、インクルードされるファイルの名前が name.tmac という書式の場合でこれが見付からない場合、 .mso は代りに tmac.name をオープンしようとします。また、この逆も行います。
.so および .mso リクエストを解決するために、roff プリプロセッサ が呼ばれなくてはならないことに注意してください。 ただし、インクルードされるファイルが前処理が必要な場合に限ります。 これは、コマンドライン上でパイプラインから直接呼ぶか、または の -s オプションを使うかすればできます。
約束事 のセクションで述べているように、 プリプロセッサワード中に文字 s を入れても良いです。
例えば、マクロファイルが /usr/share/tmac/macros.tmac に保存されており、 docu.roff という名前のドキュメントで使用されているとします。
実行時において、このドキュメントに対するフォーマッタ呼び出しは 次のように行います。
macros docu.roff
ドキュメント内に直接マクロファイルを取り込むには、
どちらの場合でも、フォーマッタは
最近の roff 清書システムの多くでサポートされている約束事があります。 次に述べられているような プリプロセッサワード がそれです。
ドキュメントの 1 行目がコメントである場合、 最初の単語 (コメント文字および空白の後) は プリプロセッサ ワード で構成されます。 これはつまり、このワードの文字が、ドキュメントを整形する際に 起動しなくてはならないプリプロセッサコマンドの省略形であると 解釈されるということです。 ほとんどの場合、プリプロセッサのオプションに対応した文字だけが 認識されます。それは、 e , G , g , p , R , s , t です ( roff(7) を参照)。
さらに、ユーザへの良き忘備録として書いておきますが、 フォーマッタによっては ( man(1) プログラムのように) プリプロセッサワードで指定されたプリプロセッサを 自動的に起動させることまでもできるものがあります。ただし、このことを あてにしてはいけません。
tmac の機能を使用するには、マクロファイル whatever.tmac (または tmac.whatever) を呼び出し、tmac パスのどれかのディレクトリにファイルを置きます。 関連ファイル セクションを参照してください。 そうすると、ドキュメントは 取り込み セクションで述べたように .mso リクエストあるいは オプションを使ってマクロファイルを取り込むことができます。
もしあなたが書いたマクロが一般用途に使えるかもしれないものなら、 groff メンテナに連絡を取って、そのマクロが groff の contrib ソースディレクトリに含まれるようにしてください。
マクロを書く際には、いくつか一般的なガイドラインがあれば役に立つ でしょう。
マクロファイルは、 tmac ディレクトリ群 に保存されています。このディレクトリ群すべてが tmac パス を構成しています。
マクロファイルを検索するパスの要素は (順番に) 次の通りです:
このドキュメントは FDL (GNU Free Documentation License) バージョン 1.1 以降の条項のもとで配布されています。お使いのシステムには FDL のコピーがあるはずです。また、
からオンラインでも入手可能です。groff の概要については、 roff(7) および groff ソースパッケージ中の README ファイルを参照してください。
groff tmac マクロパッケージは、 groff_man(7), groff_mwww(7), groff_mdoc(7), groff_mdoc.samples(7), groff_me(7), groff_mm(7), groff_mmroff(7), groff_ms(7) です。
groff の言語については groff(7) で、フォーマッタについては groff(1), troff(1) で説明されています。
ファイルシステム階層標準 (FHS) は http://www.pathname.com/fhs/ で入手可能です。