Provided by:
manpages-ja_0.5.0.0.20100315-1_all 
TROFF現
-mdoc パッケージは man ページを欺劼垢襯廛蹈札垢魎蔽韻砲垢襪海箸
目的としています。 -mdoc を使うために troff(1)
のゴタゴタした詳細を学ぶ必要がないのが理想ですが、 いくつか片付けるべ-
避けられない制限事項があります。 また、このパッケージは高速で _
ということも予め警告しておい泙后
法
troff(1) のように、マクロは '.' (ドット文字) を行頭に置ぁ△修譴紡海韻 2
文字からなるマクロの名称を指定することによって 呼び出されます。
引数はマクロの後にスペースで区切って指定することがでい泙后
行頭にドット文字を指定することによって troff(1) にそれに続く 2
文字をマクロ名として解釈するよう指示しています。
マクロを起動せずに、ある文脈の行の先頭に '.' (ドット文字)
を置くためには、 '.' (ドット) の前にエスケープシーケンス '\&'
を指定します。 '\&' は文字通りスペース幅が 0
として解釈され、出力には現れません。
一般的に troff(1) マクロは引数を 9 つまで取ることがで-
、それ以上指定された引数は無視されます。 -mdoc でのほとんどのマクロは 9
つの引数を取ることがでぁ
限られた場合にのみ引数は次の行に続けて指定することがでい泙 ( _
セクションを参照)。
いくつかのマクロは引用符に囲まれた引数を扱うことがでい泙 (下の
_-mdoc での一般テゥ好販琉茲肇泪縫絅▲詢琉茲里曚箸鵑匹離泪ロは特別であり、
その引数のリストは呼び出し可能なマクロ名として __-s bytes] は .Op Fl s Ar bytes によって生成される
2 文字からなる文字列をマクロ名として解釈されないようにするには、
その文字列の前にエスケープシーケンス '\&' を指定します。
[Fl s Ar bytes] は .Op \&Fl s \&Ar bytes によって生成される
ここで文字列 'Fl' と 'Ar' はマクロとして解釈されていません。 本ド-
ュメントと関連のクイックリファレンスマニュアル mdoc(7) を通して、
引数リストが呼び出し可能な引数として解析されるマクロは「解析される」、
引数リストから呼び出されることがでい襯泪ロは「呼び出し可能」
と表現します。 -mdoc
のほとんどすべてのマクロは解析されるのですから、これは技術的には _
ことですが、常にマクロを「呼び出し可能である」とか「他のマクロを
呼び出すことがでい襦廚班集修垢襪里鰐姪櫃覆海箸任△襪燭瓠
「解析される」という用語が使われています。
る
ひとつ以上の空白文字を含む文字列をひとつの引数として指定したい場合が
よくあります。 これは 9 個を越える引数を指定で-
ないという制限に対処したり、 引数のリストにある特-
な配置をおこなうことが必要なマクロに引数を指定するような
場合に必要となることがあります。 たとえば、関数マクロ '.Fn'
では最初の引数は関数名であり、残りの引数が関数のパラメータであることが
必要です。 ANSI C
の括弧で囲まれたパラメータリストにおける関数のパラメータの宣言の規定に
より、各パラメータは最低でも 2 語の文字列となります。 たとえば int foo
のようになります。
空白を含む引数を指定するには 2 通りの方法があります。 _SYNOPSIS)
Bl リスト開始 (幅指定用)
Em テゥ好閥調
Fn 関数 (セクション 2 と 4)
It リストの項目
Li リテラルテゥ好
Sy シンボリックテゥ好
%B 書籍のタイトル
%J 定期刊行物のタイトル
%O 参照の追加的な注釈
%R 報告書のタイトル (参照の中で)
%T 書籍もしくは定期刊行物の中の技のタイトル
空白を含む文字列を渡すのに、固定空白、すなわち詰め込まれない空白文字
'\を使う方法があります。すなわち、空白の前にエスケープ文字' '\'
を指定する方法です。 この方法はどのマクロでも使うことがでい泙垢、1
行を越える長さのテゥ好箸 調整の邪魔になるという副作用があります。 troff
では固定空白は他の印刷可能文字と同様に扱われ、通常期待されるように、
そこで文字列を空白や改行で分けることを行なわなくなります。
この方法は文字列が行の恭Δ鬚泙燭ないであろう場合に様僂任后 例えば、
fetch(char *str) は '.Fn fetch char\ *str' によって生成される
fetch(char *str) は '.Fn fetch "char *str"' でも生成される
もし '\' や引用符が省かれると、 '.Fn' は引数を 3 つ取り、その結果は
fetch(char, *str)
となります。
パラメータのリストが改行の恭Δ鬚泙燭鮎豺腓鵬燭おこるかについては、 _
のセクションを参照してください。
字
troff は行末に空白文字があると混乱してしまうことがあります。
<空白><行末>の文字シーケンスからすべての空白文字を取り除くのは良い予防策です。
どうしても行末に空白文字をおく必要世出てい疹豺腓蓮
詰め込まれない空白とエスケープ文字 '\&' を使用することによって対応で-
ます。 例えば、 'string\ \&' のようにします。
プ
改行 '\n' のような特殊文字は '\' を '\e' で置ご垢┐ (すなわち '\en'
とする) ことによって、バックスラッシュを残して扱うことがでい泙后
MAN析
man ページの本文はファイル /usr/share/misc/mdoc.template
の基本テンプレートを使って容易に作り上げることがでい泙后
/usr/share/examples/mdoc にはいくつかのサンプルの man
ページが収められています。
ト
.\" 以下の項目はすべての man ページで必要な項目です。
.Dd 月 日, 年
.Os オペレーティングシステム [バージョン/リリース]
.Dt ドゥ絅瓮鵐肇織ぅ肇 [セクション番号] [ボリューム]
.Sh NAME
.Nm 名称
.Nd 名称の 1 行での説明
.Sh SYNOPSIS
.Sh DESCRIPTION
.\" 以下の項目については、必要に応じてコメントをはずして使用してく
.\" ださい。
.\" .Sh IMPLEMENTATION NOTES
.\" この次の項目はセクション 2, 3, 9 でのみ必要な、関数の
.\" 戻り値です。
.\" .Sh RETURN VALUE
.\" 次の項目はセクション 1, 6, 7, 8, 9 でのみ必要なものです。
.\" .Sh ENVIRONMENT
.\" .Sh FILES
.\" .Sh EXAMPLES
.\" 次の項目はセクション 1, 6, 7, 8, 9 でのみ必要なものです。
.\" ((シェルへの)コマンドの戻り値と fprintf/stderr の型の診断
.\" です。)
.\" .Sh DIAGNOSTICS
.\" .Sh COMPATIBILITY
.\" 次の項目はセクション 2, 3, 9 でのみ必要な、エラーハンドリングと
.\" シグナルハンドリングです。
.\" .Sh ERRORS
.\" .Sh SEE ALSO
.\" .Sh STANDARDS
.\" .Sh HISTORY
.\" .Sh AUTHORS
.\" .Sh BUGS
このテンプレートにおける最初の項目はマクロ (.Dd, .Os, .Dt)
であり、それぞれドゥ絅瓮鵐箸瞭付、 man
ページもしくは題材となっているソースの開発や変更のベースとなった
オペレーティングシステム、 (__
で議論されています。
テンプレート中の残りの項目はセクションのヘッダ (.Sh) であり、それらのうち
NAME と SYNOPSIS と DESCRIPTION は必須項目です。 これらのヘッダについては
__/usr/share/tmac/mdoc/doc-common において BSD
として定義されています。 これは実際には LOCAL として定義すべ-
です。 '.Os'
マクロがない場合は、ページの左下角はみにくくなるであろうことに
注意してください。
.Dd 月 日, 年
日付は次のようにフォーマルな形式で欺劼靴覆韻譴个覆蠅泙擦鵝
January 25, 1989
介
...?
マニュアル領域のマクロ名はコマンドやサブルーチン、それに関連ファイルを
説明するために使われている日常のインフォーマルな言葉から取られています。
この言葉と少し違うバリエーションのものが man ページを書く上での 3
つの異なった面を欺劼垢襪里忙箸錣譴泙后 最初のものは、 -mdoc
マクロ使用方法の説明です。 2 番目のものは -mdoc マクロを用いた UNIX
コマンドの欺劼任后 3
番目はコマンドを通常の言葉の感覚でユーザに示したものです。
これはすなわち、man ページのテゥ好斑罎任離灰泪鵐匹竜掴世箸覆蠅泙后
最初のケースでは、 troff(1)
マクロはそれ自身、一種のコマンドとなっています。 troff
コマンドは一般的に以下のような形式をとります。
.Va argument1 argument2 ... argument9
'.Va' はマクロコマンドもしくは要求を示しており、それに続くものは
すべて引数として処理されます。 2
番目のケースでは、コンテントマクロを使用する UNIX コマンドの-
述がもう少し含まれます。 典型的な SYNOPSIS
コマンド行はこのように表示されます。
filter [-flag] infile outfile
ここで filter はコマンド名であり、角括弧で囲まれた文字列 -flag は _
引数で、これは角括弧で囲むことによってオプションであることを示しています。
-mdoc の用語では infile と outfile は _infile と outfile は
__make [-eiknqrstv] [-D variable] [-d flags] [-f makefile]
[-I directory] [-j max_jobs] [variable=value] [target ...]
ここではコマンド make について欺劼靴討り、 makefile をフラグ -f
の引数としています。 またオプションのファイルオペランド target
についても議論しています。 言葉での説明では、こういった詳細な-
述が混乱を防いでくれますが、 -mdoc パッケージにはフラグ _
引数のためのマクロがありません。 その代わりに target
のようなオペランドやファイル引数に使われる引数マクロ 'Ar' が variable
のようなフラグへの引数にも使われます。 この make
コマンド行は以下の指定により生成されています。
.Nm make
.Op Fl eiknqrstv
.Op Fl D Ar variable
.Op Fl d Ar flags
.Op Fl f Ar makefile
.Op Fl I Ar directory
.Op Fl j Ar max_jobs
.Op Ar variable=value
.Bk -words
.Op Ar target ...
.Ek
マクロ '.Bk' と '.Ek' は _addr1
.Ad addr1 . addr1.
.Ad addr1 , file2
addr1, file2
.Ad f1 , f2 , f3 :
f1, f2, f3:
.Ad addr ) ) ,
addr)),
'.Ad' を引数なしで呼び出すのはエラーです。 '.Ad'
は他のマクロから呼び出し可能で解析されます。
名
'.An' マクロは文書化されている項目の作者の名前、もしくは実際の
マニュアルページの作者の名前を指定するために使われます。
名前の情報の後のすべての引数は句読点として扱われます。
使い方: .An author_name
.An Joe Author
Joe Author
.An Joe Author ,
Joe Author,
.An Joe Author Aq nobody@FreeBSD.ORG
Joe Author <nobody@FreeBSD.ORG>
.An Joe Author ) ) ,
Joe Author)),
'.An' マクロは解析され、呼び出し可能です。 '.An'
を引数なしで呼び出すのはエラーです。
AUTHORS セクションでは、 '.An' 要求は改行を引-
起こし、各新規の名前がそれぞれの行に表示されます。
この動作が望ましくない場合、
.An -nosplit
呼び出しで無効化可能です。 それぞれの行に表示させる動作に戻したい場合は、
.An -split
呼び出しを使用します。
ロ
引数マクロ '.Ar' はコマンド行の引数を参照する際に使用することがでい泙后
使い方: .Ar argument ...
.Ar file ...
.Ar file1 file1
.Ar file1 . file1.
.Ar file1 file2
file1 file2
.Ar f1 f2 f3 :
f1 f2 f3:
.Ar file ) ) ,
file)),
'.Ar' が引数なしで呼び出されると、 'file ...' として扱われます。 '.Ar'
マクロは解析され、呼び出し可能です。
(4)
'.Cd' マクロはセクション 4 のマニュアルにおいて、デバイスインタフェースの
config(8) による宣言の説明に使われます。 このマクロは引用符 (2
重引用符のみ) で囲まれた引数を取ることがでい泙后
device le0 at scode? は '.Cd device le0 at scode?'
によって生成されます。
子
コマンド修飾子は '.Cm'
マクロがすべての引数の前にダッシュ文字を付けないことを除いて、 '.Fl'
(フラグ) コマンドと同じです。 伝統的にフラグはダッシュ文字に引-
続いて指定されますが、
いくつかのコマンドやコマンドのサブセットはこの方法を使っていません。
コマンド修飾子はエディタコマンドのような対話的なコマンドでも
指定されることがあります。 _errno (2)
エラーマクロ '.Er' はセクション 2
のライブラリルーチンにおけるエラーの戻り値を指定します。 下気 2
番目の例では '.Er' は一般テゥ好販琉茱泪ロである '.Bq' (これはセクション
2 のマニュアルページで使われています) と共に使われています。
使い方: .Er ERRNOTYPE ...
.Er ENOENT
ENOENT
.Er ENOENT ) ;
ENOENT);
.Bq Er ENOTDIR
[ENOTDIR]
'.Er' を引数なしで呼び出すのはエラーです。 '.Er'
は解析され、呼び出し可能です。
数
'.Ev' マクロは環曲竸瑤鮖慊蠅靴泙后
使い方: .Ev argument ...
.Ev DISPLAY
DISPLAY
.Ev PATH . PATH.
.Ev PRINTER ) ) ,
PRINTER)),
'.Ev' を引数なしで呼び出すのはエラーです。 '.Ev'
は解析され、呼び出し可能です。
数
'.Fa' マクロは関数の引数 (パラメータ) を マニュアルの SYNOPSIS
のセクション外、もしくは SYNOPSIS
のセクション内で参照する場合に使われます。 パラメータのリストが '.Fn'
マクロでは長すぎる場合は、 囲って使うマクロ '.Fo' と '.Fc'
を使わなければなりません。 '.Fa'
は構造体のメンバを参照する場合にも使われます。
使い方: .Fa function_argument ...
.Fa d_namlen ) ) ,
d_namlen)),
.Fa iov_len iov_len
'.Fa' を引数なしで呼び出すのはエラーです。 '.Fa'
は解析され、呼び出し可能です。
言
'.Fd' マクロは SYNOPSIS セクションにおいて、セクション 2 または 3
の関数の説明で使われます。 '.Fd'
マクロから他のマクロを呼び出すことはなく、他のマクロから呼び出すことも
でい泙擦鵝
使い方: .Fd include_file (or defined variable)
SYNOPSIS
セクションにおいて、関数がすでに示されていて改行が入っていない場合、
'.Fd' によって改行が挿入されます。
これによって前の関数呼び出しと次の関数の宣言の間に最適な行間が設定されます。
グ
'.Fl' マクロはコマンド行のフラグを扱います。 フラグの前にはダッシュ '-'
が挿入されます。
対話的なコマンドのフラグでは、ダッシュがフラグの前には挿入されませんが、
'.Cm' (コマンド修飾子) マクロは、ダッシュを付けないことを除ぁ同じ働-
をします。
使い方: .Fl argument ...
.Fl -
.Fl cfv -cfv
.Fl cfv . -cfv.
.Fl s v t -s -v -t
.Fl - , --,
.Fl xyz ) , -xyz),
引数なしで '.Fl'
マクロを指定すると、標準入力/標準出力を意味するダッシュとなります。
ひとつのダッシュに '.Fl' マクロを使用すると、2
つダッシュとなることに注意して下さい。 '.Fl'
マクロは解析され、呼び出し可能です。
()
'.Fn' マクロは ANSI C の桔,魑範としています。
使い方: .Fn [type] function [[type] parameters ... ]
.Fn getchar getchar()
.Fn strlen ) , strlen()),
.Fn "int align" "const * char *sptrs", int align(const * char *sptrs),
'.Fn' を引数を指定せずに呼び出すのはエラーです。 '.Fn'
マクロは解析され、呼び出し可能です。他のマクロの呼び出しは '.Fn'
の呼び出しの終了を意味することに注意して下さい
(閉じ括弧がその点で挿入されます)。
9 個以上のパラメータをとる関数 (これは滅多にないことですが) では、 '.Fo'
マクロ (関数オープン) と '.Fc' マクロ (関数クローズ) を '.Fa' (関数引数)
と共に使って、この制限を回避することがでい泙后 以下にその例を示します。
.Ft int
.Fo res_mkquery
.Fa "int op"
.Fa "char *dname"
.Fa "int class"
.Fa "int type"
.Fa "char *data"
.Fa "int datalen"
.Fa "struct rrec *newrr"
.Fa "char *buf"
.Fa "int buflen"
.Fc
これは以下のような結果になります。
int res_mkquery(int op, char *dname, int class, int type,
char *data, int datalen, struct rrec *newrr, char *buf, int buflen)
'.Fo' と '.Fc' マクロは解析され、呼び出し可能です。 SYNOPSIS
セクションでは、関数は常に行の先頭から開始されます。 SYNOPSIS
セクションにおいて、複数の関数が示されており、関数の型が示されない場合、
改行が挿入され、現在の関数名とその前の関数名の間に最適な改行量が設定されます。
現在、 '.Fn' は troff の行の長さに対して、語の-
界をチェックしておらず、予期しない
場所で改行が挿入されてしまうことがあります。 これは近い-
来修正されるでしょう。
型
このマクロは SYNOPSIS セクションで使うものです。 man
ページ中の他の場所でも問題なく使うことがでい泙垢、 セクション 2 と 3 の
SYNOPSIS
セクションでカーネルの通常の形式で関数の型を示すことがこのマクロの目的です
(このマクロは関数名が次の行に置かれるように改行を挿入します)。
使い方: .Ft type ...
.Ft struct stat struct stat
'.Ft' は他のマクロからは呼び出せません。
ド
'.Ic' マクロは対話的なコマンド、もしくは内部コマンドを指定します。
使い方: .Ic argument ...
.Ic :wq :wq
.Ic do while {...} do while {...}
.Ic setenv , unsetenv
setenv, unsetenv
'.Ic' を引数なしで呼び出すのはエラーです。 '.Ic'
マクロは解析され、呼び出し可能です。
名
'.Lb' マクロは、関数がどのライブラリに組み込まれるかを指定します。
使い方: .Lb argument ...
'.Lb' マクロに対して使用可能な引数と結果は次の通りです:
libc Standard C Library (libc, -lc)
libc_r library ``libc_r''
libcalendar library ``libcalendar''
libcam library ``libcam''
libcompat Compatibility Library (libcompat, -lcompat)
libcrypt Crypt Library (libcrypt, -lcrypt)
libdevstat library ``libdevstat''
libdisk library ``libdisk''
libedit Command Line Editor Library (libedit, -ledit)
libfetch library ``libfetch''
libipsec IPsec Policy Control Library (libipsec, -lipsec)
libipx library ``libipx''
libkvm Kernel Data Access Library (libkvm, -lkvm)
libm Math Library (libm, -lm)
libmd library ``libmd''
libnetgraph library ``libnetgraph''
libposix1e library ``libposix1e''
libskey library ``libskey''
libusb library ``libusb''
libutil System Utilities Library (libutil, -lutil)
libvgl library ``libvgl''
ロ
'.Nm' マクロは文書のタイトルやサブジェクト名を指定するために使われます。
このマクロは最初に呼び出された時の引数を覚えておくという特世鮖っており、
それは常にそのページのサブジェクト名であるべい任后
引数なしで呼び出されると '.Nm'
は作者の作業を少なくするためだけの目的で、最初の名称を出力します。 注:
セクション 2 または 3 のドゥ絅瓮鵐箸隆愎名は NAME セクションにおいて
'.Nm' で指定され、 SYNOPSIS セクションや残りのセクションでは '.Fn'
で指定されます。 csh(1) での 'while' コマンドの-
ーワードのような対話的なコマンドでは '.Ic' マクロを使うべい任后 '.Ic'
はほとんど '.Nm' と同一ですが、 それが最初に使われたとい琉数を-
憶することはでい泙擦鵝
使い方: .Nm argument ...
.Nm mdoc.sample
mdoc.sample
.Nm \-mdoc -mdoc.
.Nm foo ) ) ,
foo)),
.Nm mdoc.samples
'.Nm' マクロは解析され、呼び出し可能です。
ン
'.Op' マクロはコマンド行の残りのすべての引数を
オプションであることを示す角括弧で囲み、 末尾の句読点は角括弧の外に置-
ます。 '.Oc' マクロと '.Oo' マクロは複数行に渡って使うことがでい泙后
使い方: .Op options ...
.Op []
.Op Fl k [-k]
.Op Fl k ) . [-k]).
.Op Fl k Ar kookfile [-k kookfile]
.Op Fl k Ar kookfile ,
[-k kookfile],
.Op Ar objfil Op Ar corfil
[objfil [corfil]]
.Op Fl c Ar objfil Op Ar corfil ,
[-c objfil [corfil]],
.Op word1 word2 [word1 word2]
'.Oc' マクロと '.Oo' マクロ:
.Oo
.Op Fl k Ar kilobytes
.Op Fl i Ar interval
.Op Fl c Ar count
.Oc
出力結果: [[-k kilobytes] [-i interval] [-c count]]
'.Op' と '.Oc' と '.Oo' マクロは解析され、呼び出し可能です。
名
'.Pa' マクロはパス名もしくはファイル名をフォーマットします。
使い方: .Pa pathname
.Pa /usr/share /usr/share
.Pa /tmp/fooXXXXX ) .
/tmp/fooXXXXX).
'.Pa' マクロは解析され、呼び出し可能です。
格
'.St' マクロは、規格の短縮名称を正式名称に置換します。
使い方: .St abbreviature
使用可能な ``短縮名称/正式名称'' の組は次の通りです:
-ansiC ANSI X3.159-1989 (``ANSI C'')
-ansiC-89 ANSI X3.159-1989 (``ANSI C'')
-ieee754 IEEE Std 754-1985
-iso8802-3 ISO/IEC 8802-3:1989
-isoC ISO/IEC 9899:1990 (``ISO C89'')
-isoC-99 ISO/IEC 9899:1999 (``ISO C99'')
-p1003.1 IEEE Std 1003.1 (``POSIX.1'')
-p1003.1-88 IEEE Std 1003.1-1988 (``POSIX.1'')
-p1003.1-90 ISO/IEC 9945-1:1990 (``POSIX.1'')
-p1003.1-96 ISO/IEC 9945-1:1996 (``POSIX.1'')
-p1003.1b-93 IEEE Std 1003.1b-1993 (``POSIX.1'')
-p1003.1g-2000 IEEE Std 1003.1g-2000 (``POSIX.1'')
-p1003.2 IEEE Std 1003.2 (``POSIX.2'')
-p1003.2-92 IEEE Std 1003.2-1992 (``POSIX.2'')
-susv2 Version 2 of the Single UNIX Specification
(``SUSv2'')
-xpg3 X/Open Portability Guide Issue 3 (``XPG3'')
-xpg4 X/Open Portability Guide Issue 4 (``XPG4'')
-xpg4.2 X/Open Portability Guide Issue 4.2 (``XPG4.2'')
数
一般的な変数への参照です。
使い方: .Va variable ...
.Va count count
.Va settimer,
settimer,
.Va int *prt ) :
int *prt):
.Va char s ] ) ) ,
char s])),
'.Va' を引数なしで呼び出すのはエラーです。 '.Va'
マクロは解析され、呼び出し可能です。
ス
'.Xr'
マクロは最初の引数にマニュアルページの名称を取り、もしあれば次の引数に
セクションのページ数か句読点を取ります。
すべての残りの引数は句読点と見なされます。
使い方: .Xr man_page [1,...,9]
.Xr mdoc mdoc
.Xr mdoc , mdoc,
.Xr mdoc 7 mdoc(7)
.Xr mdoc 7 ) ) ,
mdoc(7))),
'.Xr' マクロは解析され、呼び出し可能です。 '.Xr'
を引数なしで呼び出すのはエラーです。
域
AT&Tロ
使い方: .At [v6 | v7 | 32v | V.1 | V.4] ...
.At AT&T UNIX
.At v6 . Version 6 AT&T UNIX.
'.At' マクロは解析 __BSDロ
使い方: .Bx [Version/release] ...
.Bx BSD
.Bx 4.3 .
4.3BSD.
'.Bx' マクロは解析され、呼び出し可能です。
FreeBSD/NetBSD/OpenBSDロ
使い方: .Fx [ Version.release ] ...
.Fx 2.2 . FreeBSD 2.2.
使い方: .Nx [ Version.release ] ...
.Nx 1.4 . NetBSD 1.4.
使い方: .Ox [ Version.release ] ...
.Ox 2.5 . OpenBSD 2.5.
'.Fx', '.Nx', '.Ox' マクロは解析され、呼び出し可能です。 最大 2
つまでの引数を取ることがでい泙后
UNIXロ
使い方: .Ux ...
.Ux UNIX
'.Ux' マクロは解析され、呼び出し可能です。
/_____
.Aq .Ac .Ao カギ括弧による囲い <文字列>
.Bq .Bc .Bo 角括弧による囲い [文字列]
.Dq .Dc .Do 2 重引用符 ``文字列''
.Ec .Eo 囲い文字列 (XXによる) XX文字列XX
.Pq .Pc .Po 括弧による囲い (文字列)
.Ql クォートされたリテラル `st' または文字列
.Qq .Qc .Qo まっすぐな 2 重引用符 "文字列"
.Sq .Sc .So 1 重引用符 `文字列'
下気良埓気淵泪ロを除-
、すべてのクォートマクロは解析され、呼び出し可能です。
句読点がひとつずつ置かれていて、スペースで区切られていれば、
すべてのクォートマクロは句読点を適切に扱います。
クォートマクロは開く句読点、閉じる句読点 (訳注:
句読点には括弧なども含みます) を調べ、
それが囲む文字列より前か後かを決めます。
これによって、ある程度の入れ子が可能になっています。
.Ec, .Eo これらのマクロは各々開始および終了の文字列を最初の引数に取ります。
.Ql リテラルをクォートするマクロは troff では nroff
と異なった処理を行ないます。 nroff
でフォーマットされた場合、クォート指定されたリテラルは常にクォートされます。
troff でフォーマットされた場合は、アイテムの幅が固定幅文字 3
つ分より 狭い場合にのみクォートされます。 これはリテラル
(固定幅) のフォントの変更があまり気づかれないものであるため、
短い文字列を良く見えるようにするためです。
.Pf プレフィックスマクロは呼び出し可能ではありませんが、解析されます。
.Pf ( Fa name2
は (name2 となります。
'.Ns' (空白なし)
マクロはサフィックス機能と同様の作用があります。
クォートの例:
.Aq <>
.Aq Ar ctype.h ) , <ctype.h>),
.Bq []
.Bq Em Greek , French .
[Greek, French].
.Dq ``''
.Dq string abc . ``string abc''.
.Dq '^[A-Z]' ``'^[A-Z]'''
.Ql man mdoc 'man mdoc'
.Qq ""
.Qq string ) , "string"),
.Qq string Ns ), "string),"
.Sq ''
.Sq string 'string'
囲いマクロの入れ子についての良い例については、 オプションマクロ '.Op'
を参照してください。
このマクロは上でリストされているような囲いマクロと同じベースの上に
作られています。 拡張引数リストマクロ '.Xo' と '.Xc'
もまた同じルーチンをベースに作られており、 -mdoc
マクロの使い方の非常に良い例となっています。
no-opロ
'.No'
マクロはマクロコマンド行において、コンテントマクロの構文形式に従うが、
フォーマットされては _-Idirectory]
注: '.Ns' マクロは他のマクロ名が続かなければ、スペースを除去したあとに
'.No' マクロを常に起動します。 '.Ns' マクロは解析され、呼び出し可能です。
ス
'.Sx' マクロは同一文書内でのセクションのヘッダへの参照を指定します。
これは解析され、呼び出し可能です。
.Sx FILES FILES
用
以下のマクロは多少なりとも参考文献を扱えるようにと意図したものです。
これらのマクロは、せいぜい参照スタイルの参考文献のサブセットを手動で
作成しやすくする程度です。
.Rs 参考文献の開始。
改行を挿入してから、参考文献の終了マクロが読み込まれるまで
参考文献の情報を収集する。
.Re 参考文献の終了。 参考文献が表示される。
.%A 参考文献の作者名。1 回の呼び出しにつ-
、作者名をひとつ指定する。
.%B 書籍のタイトル。
.%C 市 / 場所。
.%D 日付。
.%J 定期刊行物の名称。
.%N 発行番号。
.%O 追加情報。
.%P ページ番号。
.%R 報告書の名称。
.%T 技のタイトル。
.%V 巻数。
'%' で始まるマクロは呼び出し不可能ですが、
呼び出し側に戻る商標名マクロだけは解析されます。 (現時点では予期で-
ないことです。) 商標名のみ解析されるのは troff/ditroff の出力を-
れいにするためです。
値
'.Rv' マクロは RETURN VALUE のセクションで使うテゥ好箸鮴言します。
使い方: .Rv [-std function]
'.Rv -std atexit' これは以下のテゥ好箸鮴言します。
The atexit() function returns the value 0 if successful; otherwise the
value -1 is returned and the global variable errno is set to indicate the
error.
-std オプションはセクション 2 と 3 のマニュアルページでのみ邑です。
()
商標名マクロは一般的に長さが 2 文字を越えるすべてが大文字の単語用
に使われる小さな大文字のマクロです。
使い方: .Tn symbol ...
.Tn DEC
DEC
.Tn ASCII
ASCII
'.Tn' マクロは解析され、他のマクロから呼び出し可能です。
数
'.Xo' と '.Xc' マクロでマクロの恭Δ砲ける引数リストを拡張することがで-
ます。 引数リストは '.Op' のようなすべての引数が 1
行中に指定されていることを前提としている
マクロの中では行に渡って拡張することがでい泙擦鵝
以下に空白モードマクロをスペーシングをオフにするために使った '.Xo'
での例を示します。
.Sm off
.It Xo Sy I Ar operation
.No \en Ar count No \en
.Xc
.Sm on
これは以下のような結果になります。
Ioperation\ncount\n
例をもうひとつ:
.Sm off
.It Cm S No / Ar old_pattern Xo
.No / Ar new_pattern
.No / Op Cm g
.Xc
.Sm on
これは以下のような結果になります。
S/old_pattern/new_pattern/[g]
囲いマクロを使った '.Xo' の他の例: 変数の値をテストして下さい。
.It Xo
.Ic .ifndef
.Oo \&! Oc Ns Ar variable
.Op Ar operator variable ...
.Xc
結果は以下の通りです。
.ifndef [!]variable [operator variable ...]
上のすべての例では '.It' (リスト項目) マクロの引数リストに '.Xo'
マクロを使用しています。 拡張マクロが使われることはあまりありません。
使われるとすれば、リスト項目の引数リストを拡張する場合です。
残念なことに、これが拡張マクロが最も懲り世任△襪箸海蹐任發△蠅泙后
最初の 2 つの例では、スペーシングはオフになっています。 3
番目では、ある箇所にはスペーシングを入れることが望ましいのですが、
出力全体に入れたいわけではありません。
そのような状況でこれらのマクロが適切に動作するためには、 '.Xo' と '.Xc'
マクロが 3 番目の例にあるように指定されていることを確認してください。
'.Xo' マクロが置かれた '.It'
の引数リストに他のものが置かれると、スペーシングがどうなるかは予測不可能です。
この場合、 '.Ns' (空白なしマクロ)
は行中の最初もしくは最後のマクロに指定してはいけません。 現在 BSD
でリリースされている 900 のマニュアルページ (実際のページでは約 1500
ページ) のうち 15 のマニュアルページでのみしか '.Xo' が使われていません。
域
ダ
以下にリストされている、最初の 3 つのセクションヘッダマクロ '.Sh'
はすべての man ページで必須のものです。
残りのセクションヘッダはマニュアルページの作者の裁量において、
推奨されているものです。 '.Sh' マクロは 9 つまでの引数を取ることがで-
ます。 これは解析されますが、呼び出し不可能です。
.Sh NAME '.Sh NAME (訳注: 名称)' マクロは必須のものです。
これが指定されていないと、ヘッダとフッタ、それにデフォルトの
ページレイアウトが設定されず、結果はかなり好ましくないものになるでしょう。
NAME セクションは最低 3 つの項目からなります。
最初のものは名称マクロ '.Nm' であり、man
ページのサブジェクトとなります。 2 番目のものは名称説明マクロ
'.Nd' であり、サブジェクト名を 3 つめの項目、
すなわちその名称の説明と分離します。
説明に割り当てられるスペースは小さいものですので、 で-
るだけ簡潔で分かりやすいものでなければなりません。
.Sh SYNOPSIS
SYNOPSIS (__cat [-benstuv] [-] file ...
以下のマクロが使われています。
.Nm cat
.Op Fl benstuv
.Op Fl
.Ar
: マクロ '.Op', '.Fl', '.Ar' はパイプの文字 '|'
を認識し、下気里茲Δ淵灰泪鵐氷
.Op Fl a | Fl b
はうまくいい泙擦鵝 troff は通常 |
を特別のオペレータとして解釈します。 この他で |
が使える場合については _
セクションを参照して下さい。
.Sh DESCRIPTION
DESCRIPTION (___
セクションを参照)。
以下の '.Sh'
のセクションヘッダはマニュアルページの好ましいレイアウトの一部であり、
一貫世鯤櫃弔燭瓩謀切に使われなければなりません。
これらは使われる順番にリストされています。
.Sh ENVIRONMENT (訳注: 環曲竸)
ENVIRONMENT セクションは関連する環曲竸瑤鯡世蕕にし、
それらの振舞や使用方法を示します。
.Sh EXAMPLES (訳注: 使用例、実行例)
使用例、実行例を作成するには様々な方法があります。
詳細については、下の _
のセクションを参照してください。
.Sh FILES (訳注: 関連ファイル)
man ページのサブジェクトによって使用されるか生成されるファイルで、
FILES のセクション中でマクロ '.Pa' によってリストされます。
.Sh SEE ALSO (訳注: 関連項目)
SEE ALSO セクションには、その man
ページの題材に関する資料への参照と 他の関連する man
ページへのクロスリファレンスが戯椶気譴泙后 クロスリファレンスは
'.Xr' マクロによって指定されます。 SEE ALSO
セクションでのクロスリファレンスはセクション番号順に並べ、
セクション中ではカンマで区切ってアルファベット順に並べなければなりません。
以下に例を示します。
ls(1), ps(1), group(5), passwd(5)
ここで参考スタイルである refer(1) は適応されていません。
.Sh STANDARDS (訳注: 規格)
コマンドやライブラリ関数やファイルが、 IEEE Std 1003.2
(``POSIX.2'') や ANSI X3.159-1989 (``ANSI C'')
のような特定の実装によるものであれば、ここで欺劼靴泙后
もしコマンドがどの規格にも基づいていなければ、その歴史は HISTORY
のセクションで説明されなければなりません。
.Sh HISTORY (訳注: 歴史)
特定の規格に基づいていないコマンドは、
このセクションでその歴史の概要が説明されるべい任后
.Sh AUTHORS (訳注: 作者)
クレジットが必要であれば、ここで入れます。 人物名を指定するには
'.An' マクロを使用すべい任后
.Sh DIAGNOSTICS (訳注: 診断)
コマンドからの診断はこのセクションに入れます。
.Sh ERRORS (訳注: エラー)
特定のエラーハンドリング、特にライブラリ関数 (man
ページのセクション 2, 3, 9)
でのエラーハンドリングは、ここで説明します。 '.Er' マクロが errno
を欺劼垢襪燭瓩忙箸錣譴泙后
.Sh BUGS (訳注: バグ)
あい蕕な問題はここで欺劼靴泙后
ユーザ指定の '.Sh' セクションを追加することがでい泙后
たとえば、このセクションは以下のように設定されています。
.Sh ページ構造領域
ス
.Pp '.Pp' 段落コマンド
は必要な場合に行スペースを指定するために使われます。 このマクロは
'.Sh' マクロや '.Ss' マクロのあと、それに '.Bl'
マクロの前では必要ありません。 ( '.Bl' マクロは -compact
フラグが指定されていなければ、縦方向の距離を宣言します )。
プ
現在実装されているァ璽廚話姥譴紡个垢襪發里世韻任后 それらは '.Bk' (-
ープ開始) マクロと '.Ek' (ァ璽彌了) マクロです。 '.Bk' に指定で-
るオプションは -words
のみであり、これはオプションの途中で改行が入らないようにするのに便利です。
コマンド行の引数を生成する例 ( _..? セクションを参照)
において、ァ璽廚 nroff
がフラグと引数を別の行に分けないように使われています。
(実際には、オプションマクロがこの目的で使われていましたが、
オプションが行中にわたって散らばってしまうと 一般的に見栄えが-
くなるという理由により troff で右揃えのマージンを強制的に行なう
(宗教的な) 決定がなされてから、
オプションマクロをこの目的で使わないようになりました。 -
ープマクロについてはもっと機能を向上する作業が必要であり、 -line
オプションを追加していく必要があります。)
イ
ディスプレイには 5 つのタイプがあります。 即席 1 行インデントディスプレイ
'.D1' 、即席 1 行リテラルディスプレイ '.Dl' 、それに
ディスプレイ開始マクロ '.Bd' とディスプレイ終了マクロ '.Ed'
を使用するリテラルブロック、フィルブロックおよび凸凹ブロックです。
.D1 (D-いち) インデントされたテゥ好箸 1 行表示します。
このマクロは解析されますが、呼び出し不可能です。
-ldghfstru
これは次の指定で生成されたものです。 .D1 Fl ldghfstru
.Dl (D-エル) インデントされた _/usr/local/bin
これは .Dl % ls -ldg /usr/local/bin から生成されています。
.Bd ディスプレイ開始です。 '.Bd' によるディスプレイは '.Ed'
マクロによって終了しなければなりません。
ディスプレイはディスプレイ内およびリスト内で入れ子にすることがで-
ます。 '.Bd' は以下の書式をとります。
.Bd ディスプレイタイプ [-offset オフセット値] [-compact]
ディスプレイタイプは以下の 4 つのタイプの内の 1
つでなければならず、 インデント '.Bd'
のオフセット値を指定することがでい泙后
-ragged テ-
ストのブロックをタイプされた通りに表示します。
右マージン (と左マージン)
のエッジは左に不揃いに寄せられます。
-filled フィル (フォーマット)
されたブロックを表示します。 テ-
ストのブロックがフォーマットされます
(エッジは左非揃えではなく、フィルされます)。
-literal リテラルなブロックを表示します。
ソースコードや、単純にタブもしくはスペースで整えられたテ-
ストで便利です。
-file _-file
フラグに続く名称のファイルが読み込まれ、表示されます。
表示はリテラルなモードで行われ、タブは定幅文字
8 つ分に固定されますが、 ファイル中のすべての
troff/-mdoc コマンドは解釈されます。
-offset _-offset
が以下の文字列のいずれかとともに指定されていると、
その文字列は次のテ-
ストのブロックのインデントのレベルを示すものとして
解釈されます。
left ブロックを現在の左マージンに揃えます。
これは '.Bd'
のデフォルトのモードです。
center ブロックを中央揃えにします。
残念ながら現時点では、
単にブロックの左側を仮想的な中央マージンに揃えるだけです。
indent デフォルトのインデント値もしくはタブの分だけインデントします。
デフォルトのインデント値はディスプレイ
'.D1' でも使われ、これら 2
つのタイプのディスプレイを使った場合、
行が揃うことが保証されています。
このインデントは通常 6n か約 2/3
インチ (定幅文字 6 つ分) です。
indent-two デフォルトのインデント値の 2
倍分インデントします。
right これはブロックをページの右端から約
2 インチ離して _does not
.Em exceed 1024 .
exceed 1024.
.Em vide infra ) ) ,
vide infra)),
'.Em' マクロは解析され、呼び出し可能です。 '.Em'
を引数なしで呼び出すのはエラーです。
.Li リテラルマクロ '.Li'
は特殊文字や変数定数、その他タイプされた通りに表示する必要があるものに
使用することがでい泙后
使い方: .Li argument ...
.Li \en \n
.Li M1 M2 M3 ;
M1 M2 M3;
.Li cntrl-D ) ,
cntrl-D),
.Li 1024 ...
1024 ...
'.Li' マクロは解析され、呼び出し可能です。
.Sy シンボリック体強調マクロはシンボリックの意味でも
伝統的な英語の使いかたにおいても、
通常はボールドマクロとなっています。
使い方: .Sy symbol ...
.Sy Important Notice
Important Notice
'.Sy' マクロは解析され、呼び出し可能です。 '.Sy'
の引数は引用符で囲むことがでい泙后
.Bf フォントモード開始。 フォントモード '.Bf' は '.Ef'
マクロで終了しなければなりません。
フォントモードは他のフォントモードと入れ子にすることがでい泙后
'.Bf' は次の構文を取ります。
.Bf フォントモード
フォントモードは以下の 3
つのタイプのうちのいずれかでなければなりません。
Em | -emphasis 強調モード。 '.Em' マクロがテ-
ストブロック全体に使われているのと同様です。
Li | -literal リテラルモード。 '.Li' マクロがテ-
ストブロック全体に使われているのと同様です。
Sy | -symbolic シンボリックモード。 '.Sy' マクロがテ-
ストブロック全体に使われているのと同様です。
.Ef フォントモードの終了。
列
リスト開始マクロ '.Bl' で開始されるリストにはいくつかのタイプがあります。
リスト中の項目は項目マクロ '.It' で指定され、各リストは '.El'
マクロで終了しなければなりません。
リストはリスト自身やディスプレイの中で入れ子にすることがでい泙后
列はリストの中で使うことがでい泙垢、
リストが列の中で使えるかどうかは検証されていません。
さらに、タグの幅、リストのオフセット、コンパクトさ
(項目間の空白行が許されているかどうか) のような、 いくつかのリストの属-
を指定することがでい泙后 本ドゥ絅瓮鵐箸里曚箸鵑匹魯織 (-tag)
スタイルリストでフォーマットされています。
各種リストタイプは、調子を変えるためにオーバーハング (-ohang)
でリストしました。 このリストのタイプは TeX
のユーザに非常に人気のあるものですが、tag リストで構成されたページを
何ページも読んだ後には幾分変に見えるでしょう。 以下のリストタイプを '.Bl'
で使うことがでい泙后
-bullet
-item
-enum
これら 3 つは最も単純なリストのタイプです。 一旦 '.Bl'
マクロが与えられると、リスト中の項目は単に '.It'
マクロによってのみ構成される行で指定されます。
例として、簡単な列挙リストのソーステゥ好箸蓮△海里茲Δ砲覆蠅泙后
.Bl -enum -compact
.It
ひとつめはここ。
.It
そしてふたつめ。
.It
最後にみっつめはここ。
.El
これらの結果は以下のようになります。
1. ひとつめはここ。
2. そしてふたつめ。
3. 最後にみっつめはここ。
簡単な bullet リスト構成の例を示します。
.Bl -bullet -compact
.It
ひとつめの bullet。
.It
これはふたつめの bullet。
.El
その結果はこうなります。
+o ひとつめの bullet。
+o これはふたつめの bullet。
-tag
-diag
-hang
-ohang
-inset
これらのリストタイプは '.It'
マクロによって指定されている引数からラベルを生成します。 そして、 inset
では、次のテゥ好箸悗修離薀戰襪鯀淨します。 hang では、次のテ-
ストをラベルの位置へインデントします。 ohang (オーバーハング)
では、次のテゥ好箸鬟薀戰襪琉銘屬砲屬蕾爾押▲ぅ鵐妊鵐箸靴泙擦鵝 tag
では、タグつぅ謄ストの形式にします。 ちなみに上のリストは '-ohang'
リストタイプで構成されています。 '.It' マクロは inset, hang, tag
のリストタイプでのみ解析され、 呼び出し不可能です。 以下に inset
ラベルの例を示します。
tag tag リスト (tag 段落とも呼ばれる) は、 Berkely
マニュアルで使われているリストのうち最も一般的なタイプです。
diag (_hang hang ラベルは好みの問題です。
ohang ohang ラベルはスペースに制限がある時に便利です。
inset inset ラベルは段落のブロックを制御するのに便利で、 -mdoc
マニュアルを他の形式に変換する時に役立ちます。
上の例を生成したソーステゥ好箸呂海Δ覆辰討い泙后
.Bl -inset -offset indent
.It Em tag
tag リスト (tag 段落とも呼ばれる) は、
Berkely マニュアルで使われているリストのうち最も一般的なタイプです。
.It Em diag (診断)
診断リストはセクション 4 の診断リストを生成するもので、
呼び出し可能なマクロが無視されることを除ぁinset リストと似ています。
.It Em hang
hang ラベルは好みの問題です。
.It Em ohang
ohang ラベルはスペースに制限がある時に便利です。
.It Em inset
inset ラベルは段落のブロックを制御するのに便利で、
.Nm -mdoc
マニュアルを他の形式に変換する時に役立ちます。
.El
以下は 2 つの項目を持つ hang リストです。
hang ラベルがラベルの幅より小さいとい砲蓮 ラベルは tag
リストと同じようになります。
_hang _-width Fl そのフラグでのデフォルトの幅を指定します。
すべての呼び出し可能なマクロは各々デフォルトの幅の値を持っています。
現在、 '.Fl' の値は定幅文字 10 個分、もしくは約 5/6
インチとなっています。
-width 24n 定幅文字 24 個分の幅、もしくは約 2
インチの幅をセットします。 これが正しく動作するには
'n' が必ず必要となります。
-width ENAMETOOLONG
指定された文字列の固定長に幅をセットします。
-width "int mkfifo"
これも、指定された文字列の固定長に幅をセットします。
タグつぅ螢好肇織ぅ廚派が指定されていないと、 '.It'
が最初に起動された時に適した幅を決定することが試みられます。 '.It'
の最初の引数が呼び出し可能なマクロであれば、そのマクロのデフォルトの幅が
そのマクロ名が幅として指定されたように使用されます。
しかしながら、そのリスト中に他の項目が別の呼び出し可能なマクロ名で
与えられていると、新しく入れ子となったリストとして処理されます。
列
以下の文字列はあらかじめ定義されているものであり、 troff
の文字列解釈シーケンス '\*(xx' もしくは '\*x' を前に伴って使われます。
ここで、 xx もしくは x は定義されている文字列の名称です。
解釈シーケンスはテゥ好箸里匹海任盪箸Δ海箸でい泙后
Nroff Troff
<= <= <=
>= >= >=
Rq '' ''
Lq `` ``
ua ^ ^
aa ' '
ga ` `
q " "
Pi pi pi
Ne != !=
Le <= <=
Ge >= >=
Lt < >
Gt > <
Pm +- +-
If infinity infinity
Na NaN NaN
Ba | |
: 'q' の名称がつけられている文字列は、1 文字であるため '\*q'
と書かなければなりません。
断
-mdoc は限られたデバッグ機能しか持っていませんが、
引数名と内部レジスタやマクロ名との衝突のような
潜在的なエラーを検出するのに役立ちます。 (A って何?) レジスタは troff
での演算用飢吋ラスであり、1 文字か 2 文字の名称がついています。 troff と
ditroff での -mdoc のすべての内部レジスタは 'Ar' のように2 文字からなる
<大文字><小文字> の形式か、 'aR' のように <小文字><大文字> の形式か、
'C1' のように <大文字もしくは小文字><数字> の形式を取ります。
さらに混乱することに、 troff はそれ自身の内部レジスタを持ち、
それらすべては小文字 2
文字か、ドットに文字もしくはメタ文字が続く形式を取ります。 紹介例の 1
つに、 エスケープシーケンス '\&'
でマクロ名を解釈させない方法がありました。 これは内部レジスタ名にも-
効です。
エスケープされていないレジスタ名が引数リストに指定されると、 予期で-
ない振舞いとなります。 一般的には、テゥ好箸里なり大-
な部分が出力されるべい箸海蹐
出力されないとか、リストのタグのような小さな文字列が消えてしまうとか、
引数リストの中の引数のタイプが間違って解釈されるとかいうことが、起こり得ます。
い辰箸△覆燭里母さんは、あなたにこんな面倒なことを覚えるようにとは
考えていないでしょう。 そこで、与えられた引数が-
効か無効かを判断する方法があります。 そんなとい砲蓮 '.Db' (デバッグ)
マクロによってほとんどのマクロの引数リストがどう解釈されるか
を表示することがでい泙后 '.Pp' (段落)
マクロのようなマクロはデバッグ情報を含んでいません。
呼び出し可能なマクロはすべてデバッグ情報を含んでおり、
疑いがある場合はいつでも '.Db' マクロをオンにすることを強くお勧めします。
使い方: .Db [on | off]
以下の例では、 問題が故意に発生するようにされた部分の上と下で
デバッグマクロが指定されています (フラグ引数 'aC'
は正しく動作するためには '\&aC' でなければなりません)。
.Db on
.Op Fl aC Ar file )
.Db off
この結果の出力は以下の通りです。
DEBUGGING ON
DEBUG(argv) MACRO: `.Op' Line #: 2
Argc: 1 Argv: `Fl' Length: 2
Space: `' Class: Executable
Argc: 2 Argv: `aC' Length: 2
Space: `' Class: Executable
Argc: 3 Argv: `Ar' Length: 2
Space: `' Class: Executable
Argc: 4 Argv: `file' Length: 4
Space: ` ' Class: String
Argc: 5 Argv: `)' Length: 1
Space: ` ' Class: Closing Punctuation or suffix
MACRO REQUEST: .Op Fl aC Ar file )
DEBUGGING OFF
この情報の最初の行では呼び出されているマクロの名称が出力されています。
ここでは '.Op' とそれが現れた行番号が表示されています。
複数のファイルが処理されている場合 (特にテ-
ストが他のファイルからインクルードされている場合)、
行番号は正しくないでしょう。 ファイルが 1
つだけの場合には正しい行番号が出力されます。 2
番目の行では引数の個数と引数 ('Fl') とその長さが出力されています。
引数の長さが 2 文字であれば、 その引数が実行可能
(ゼロでない値を含むすべてのレジスタは実行可能なように見えます)
かどうかテストされます。 3
番目の行ではそのクラスで指定されているスペースとクラスタイプが
出力されています。 ここでの問題は引数 aC
が実行不可能でなければならないことです。 クラスの 4
つのタイプは文字列、実行可能、閉じる句読点、開く句読点です。
最後の行では引数リスト全体が読み込まれた通りに表示されています。
次の例では問題の原因となっている 'aC' がエスケープされています。
.Db on
.Em An escaped \&aC
.Db off
DEBUGGING ON
DEBUG(fargv) MACRO: `.Em' Line #: 2
Argc: 1 Argv: `An' Length: 2
Space: ` ' Class: String
Argc: 2 Argv: `escaped' Length: 7
Space: ` ' Class: String
Argc: 3 Argv: `aC' Length: 2
Space: ` ' Class: String
MACRO REQUEST: .Em An escaped &aC
DEBUGGING OFF
'\&' シーケンスは長さが 0 となるために 引数 '\&aC' は先の例と同様に長さ 2
と表示されています。 しかし、 '\&aC'
という名称のレジスタが見つからず、タイプは文字列と判断されています。
この他の診断は使用方法を報告するものであり、
それ自身が説明を含んでいます。
GROFF, TROFF, NROFF
-mdoc パッケージは groff との互換モードは必要ではありません。
このパッケージでは改ページと、 nroff
で改ページ時に通常挿入されるヘッダとフッタは禁止されており、
マニュアルをオンラインで効率良く見ることがでい襪茲Δ砲覆辰討い泙后
現在の所、 -Tascii が指定された groff
はページ内容の無いファイル末の残りの部分まで出力します。
改ページを禁止することによって nroff
による出力はハードコピーには適さないものとなっています。
サイト依存のスタイルファイル /usr/src/share/tmac/doc-nroff において 0
にセットすることがでい 'cR'
の名称を持つレジスタが古いスタイルの振る舞いを実現するために用意されています。
ル
/usr/share/tmac/doc.tmac マニュアルマクロパッケージ
/usr/share/misc/mdoc.template
man ページを書くためのテンプレート
/usr/share/examples/mdoc/* man ページのいくつかの例
グ
あらかじめ定義されている文字列は文書において宣言されていません。
セクション 3f はヘッダルーチンには追加されていません。
'.Nm' フォントは NAME セクションにおいて変更されるべい任后
'.Fn' は分割されるのを防止するために、
行の長さが短すぎないかどうかをチェックする必要があります。 とい匹-
、最後の括弧が分割されることがあり、 行がフィルモードであると-
には全くおかしな結果になることがあります。
リストマクロとディスプレイマクロはァ璽廚鮃圓い泙擦鵑、 これは-
ープを行うべい任后
目
man(1), troff(1), groff_mdoc(7), mdoc(7)