GROFF_TMAC

Section: File Formats (5)
Updated: 1 May 2003
索引 jman
 

索引

名称

groff_tmac - roff 清書システム内にあるマクロファイル  

索引

解説

roff(7) 清書システムは、特殊な用途の文書に適したマクロパッケージを提供しています。 それぞれのマクロパッケージは、そのパッケージの tmac ファイル と呼ばれるファイル中に、マクロおよび定義を格納しています。 tmac という名前は、 `TroffMACros' を縮めたものです。 tmac ファイルは、普通の roff で書かれたソースの文書です。 ただし、通常このファイルには定義および設定コマンドしか含まれておらず、 テキストは入っていません。 tmac ファイルはすべて tmac ディレクトリという 1 つあるいは少数のディレクトリ内に 保管されています。  

索引

GROFF マクロパッケージ

groff は、すべての古典マクロパッケージ、いくつかの完全パッケージ、 そしていくつかの特殊な用途の補助パッケージを提供しています。 主要なマクロパッケージは同時に複数個使用できないことに注意してください。 例えば
 

索引

ell_cmd groff -m man -m ms foo

 

索引

ell_cmd groff -m man foo -m ms bar

は失敗します。  

man~ページ

man
UNIX マニュアルページ (man~ページ) 用の古典マクロパッケージです。 これはとても便利で使いやすいものです。 groff_man(7) を参照してください。
doc
mdoc
man~ページ用のもう 1 つのマクロパッケージで、 主に BSD システムで使用されています。 これはたくさんの新しい機能を提供していますが、 man~ページの標準ではありません。 groff_mdoc(7) を参照してください。
 

完全パッケージ

この節のパッケージは、どのような種類の文書 (本をまるごとでさえ) も 執筆できる完全なマクロの組を提供します。 これらは機能的には類似しています。 どれを使用するかは、好みの問題です。
me
古典的な me マクロパッケージです。 groff_me(7) を参照してください。
mm
半古典的な mm マクロパッケージです。 groff_mm(7) を参照してください。
mom
新しい mom マクロパッケージです。 これは groff でのみ利用できます。 これは他のパッケージを元にしていないため、 自由に設計することができます。 したがって、これは非常によい、現代的なマクロパッケージになると 期待されています。 groff_mom(7) を参照してください。
ms
古典的な ms マクロパッケージです。 groff_ms(7) を参照してください。
 

特殊パッケージ

この節のマクロパッケージは、単独で使用するように意図されたものではなく、 他のマクロパッケージや素の groff に特殊な機能を追加するために 使用されるものです。
papersize
このマクロファイルは既に起動時に troff が読み込み済なので、明示的に呼び出す必要はありません。 コマンドラインオプション B]-dpaper=]I]size] で 用紙サイズを設定するインタフェースを提供しています。 size に指定可能な値は、DESC ファイルでの定義済の papersize 値 (小文字だけです。 詳細は groff_font(5) を参照してください) ですが a7-d7 は指定できません。 文字 l (エル) を後に付けると、ランドスケープの向きを意味します。 例: a4, c3l, letterl
ドライバ固有の DESC ファイルのデフォルト用紙長や向きに優先させるためには、 ほとんどの出力ドライバで追加のコマンドラインスイッチ -p および -l が必要となります。 例えば、ランドスケープの向きの A4 用紙に PS 出力を行う場合次のようにします:
 

索引

ell_cmd groff -Tps -dpaper=a4l -P-pa4 -P-l -ms foo.ms > foo.ps

pspic
このマクロでは、PostScript 画像を文書に取り込むために、1 個のマクロ PSPIC が提供されています。 PS 画像の取り込みをサポートする出力デバイス -Tps, -Tdvi, -Thtml でのみ意味があります。 ファイルは自動的にロードされます。 構文:
.PSPIC [-L|-R|-I nfile [width [height]]
file は画像を含むファイルの名前、 widthheight は画像の望みの幅と高さです。 widthheight の引数には、スケール指示子を付けられます。 デフォルトのスケール指示子は i です。 このマクロは、x および y 方向に画像を一様にスケールしますので、画像は幅 width も高さ height も越えません。 デフォルトで、画像は水平位置の中央に置かれます。 -L および -R のオプションは、それぞれ画像を左寄せおよび右寄せにします。 -I オプションは、画像を n だけインデントします (デフォルトのスケール指示子は m です)。
tty-char
tty デバイス用に、troff の標準文字や groff のいくつかの文字の定義を 上書きします。 貧弱な機器で処理できるようにするため、 通常の tty 形式のものと比べて、見た目を意図的に落しています。
www
インターネット (World Wide Web) ページで使用されている HTML フォーマットで知られている要素を追加します。 これには URL リンクやメールアドレスが含まれます。 groff_www(7) を参照してください。
 

索引

名称付け

古くからある roff システムには、 オプションを解釈する部分の過度に単純化された設計のせいで 奇妙な名称付けの体系がありました。 マクロパッケージは、常にオプション を用いて指定されていました。 このオプションの後に、区切りの空白もなしに直接引数が続くと、 1 つのマイナスに続く長い名前のオプションに見えます。 これは、コンピュータの石器時代には驚くべきことでした。 これをマクロパッケージの名前に対して実際に動くようにするため、 すべての古典的なマクロパッケージには の文字で始まる名前がつけられており、 この文字はマクロファイルの名前からは省略されていました。 例えば、man ページ用のマクロパッケージは man と呼ばれますが、このマクロファイルは tmac.an でした。 したがって、これは引数 an をオプション に指定すること、もしくは短く と指定することで有効にできました。 同様の理由で、 で始まらないマクロパッケージには、文書化の際や会話において、先頭に が付けられていました。 例えば、 tmac.doc に対応するパッケージでは、より適切な名前は doc であるのに関わらず、文書中では mdoc と呼ばれていました。 なぜなら、オプションとその引数との間の空白を省略すると、 このパッケージを有効にするコマンドラインオプションは と表されるからです。 すべての状況に対処するため、現在のバージョンの groff(1) では、この虐げられてきたマクロパッケージに対して、先頭に が付くものと付かないものの 2 つのマクロファイルを提供することによって、 両方の名称付け体系をうまく扱うことができます。 したがって groff では、 man マクロパッケージは以下の 4 つの方法のうちの 1 つで指定することができます:
 

索引

ell_cmd groff~-m~man

 

索引

ell_cmd groff~-man

 

索引

ell_cmd groff~-mman

 

索引

ell_cmd groff~-m~an

最近のパッケージで で始まらないものは、文書化の際に追加の を使用しません。 例えば、 www マクロパッケージは次の 2 つの方法のうちの 1 つのみで指定できます:
 

索引

ell_cmd groff~-m~www

 

索引

ell_cmd groff~-mwww

明らかに -mmwww のようなものは意味をなしません。 古典的な troff の持つ 2 番目の奇妙な特徴は、マクロファイルに Rtmac.name のような名前を付けることです。 現代的なオペレーティングシステムでは、ファイルの種類は接尾辞、 つまりファイル名の拡張子によって指定されます。 先ほどと同様に、groff は、 anything のみが指定された場合 anything.tmactmac.anything のどちらも検索することによって、この状況に対処します。 システムでどのマクロパッケージが利用可能であるかを調べる最も簡単な方法は、 man~ページ groff(1) 、もしくは tmac ディレクトリの内容を確認することです。 groff では、マクロパッケージのほとんどは groff_I]name](7) という man ページで説明されています。 古典的パッケージについては、先頭に がついています。  

索引

取り込み

文書中でマクロパッケージを使用する方法はいくつかあります。 古典的な方法は、実行時に troff/groff のオプション を指定することです。 これによってマクロパッケージ name の内容が有効になります。 groff では、ファイル name.tmac は tmac パス内で検索されます。 見つからなかった場合、代わりに tmac.name が検索されます。 別の方法として、文書中にリクエスト filename を追加することによって、マクロファイルを取り込むこともできます。 引数は、存在するファイルの完全なファイル名でなくてはなりません。 つまり、そのファイルのあるディレクトリをつけることが、おそらく必要です。 groff では、これは同様のリクエスト package によって改善されました。 これは、オプション がするように、tmac パス内を検索します。 取り込まれるファイルに前処理が必要な場合、 や リクエストを解決するために、 roff プリプロセッサ soelim(1) が、呼び出される必要があることに注意してください。 これは、直接コマンドライン上のパイプラインで、 もしくは troff/groff オプション のどちらでも行うことができます。 man は、soelim を自動的に呼び出します。 例えば、マクロファイルが /usr/share/tmac/macros.tmac に保存されており、 docu.roff と呼ばれる文書で使われるとします。 実行時において、この文書に対するフォーマッタの呼び出しは 次のようになります。
 

索引

ell_cmd groff~-m~ macrofile~document.roff

文書内にマクロファイルを直接取り込むには、