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 n] file [width [height]]
-
file
は画像を含むファイルの名前、
width
と
height
は画像の望みの幅と高さです。
width
と
height
の引数には、スケール指示子を付けられます。
デフォルトのスケール指示子は
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.tmac
と
tmac.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
文書内にマクロファイルを直接取り込むには、
-
-