aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP
diff options
context:
space:
mode:
authorKazuo Horikawa <horikawa@FreeBSD.org>2001-08-05 23:34:57 +0000
committerKazuo Horikawa <horikawa@FreeBSD.org>2001-08-05 23:34:57 +0000
commita068c003e293935e1bd769a20980d5d793fa8ce9 (patch)
tree2637db9246e2f90886159062171a48b99bc08705 /ja_JP.eucJP
parent04a4d34ace953d1c2f5f205a686103ca1bc23f5a (diff)
downloaddoc-a068c003e293935e1bd769a20980d5d793fa8ce9.tar.gz
doc-a068c003e293935e1bd769a20980d5d793fa8ce9.zip
groff 1.17 related pages
Submitted by: Yoshiteru Kageyama <yt-kage@cb3.so-net.ne.jp> Reviewed by: okazaki (some macro errors in groff_mdoc.7)
Notes
Notes: svn path=/head/; revision=10187
Diffstat (limited to 'ja_JP.eucJP')
-rw-r--r--ja_JP.eucJP/man/man7/Makefile5
-rw-r--r--ja_JP.eucJP/man/man7/groff.7237
-rw-r--r--ja_JP.eucJP/man/man7/groff_mdoc.74011
3 files changed, 4188 insertions, 65 deletions
diff --git a/ja_JP.eucJP/man/man7/Makefile b/ja_JP.eucJP/man/man7/Makefile
index 2b360c614d..b01665511f 100644
--- a/ja_JP.eucJP/man/man7/Makefile
+++ b/ja_JP.eucJP/man/man7/Makefile
@@ -4,6 +4,7 @@ MAN7 = ascii.7\
groff.7\
groff_char.7\
groff_man.7\
+ groff_mdoc.7\
groff_me.7\
groff_mm.7\
groff_mmse.7\
@@ -24,8 +25,8 @@ MAN7 = ascii.7\
term.7
MLINKS=groff_man.7 man.7
-#MLINKS+=groff_mdoc.7 mdoc.7
-#MLINKS+=groff_mdoc.7 mdoc.samples.7
+MLINKS+=groff_mdoc.7 mdoc.7
+MLINKS+=groff_mdoc.7 mdoc.samples.7
MLINKS= groff_me.7 me.7
MLINKS+=groff_mm.7 mm.7
MLINKS+=groff_mmse.7 mmse.7
diff --git a/ja_JP.eucJP/man/man7/groff.7 b/ja_JP.eucJP/man/man7/groff.7
index 74d531bfd7..5f363a7bf2 100644
--- a/ja_JP.eucJP/man/man7/groff.7
+++ b/ja_JP.eucJP/man/man7/groff.7
@@ -1,5 +1,4 @@
.\" st -*- nroff -*-
-.\" $FreeBSD: doc/ja_JP.eucJP/man/man7/groff.7,v 1.6 2001/07/04 05:31:26 horikawa Exp $
.ig
groff.7
@@ -18,7 +17,14 @@ Front-Cover Texts, and with no Back-Cover Texts.
A copy of the Free Documentation License is included as a file called
FDL in the main directory of the groff source package.
-
+..
+.\" Japanese Version Copyright (c) 2001 UCHIDA Norihiro all rights reserved.
+.\" Translated Thu Feb 15 2001 by UCHIDA Norihiro <KY4N-UCD@asahi-net.or.jp>
+.\"
+.\" Copyright (c) 2001 FreeBSD jpman project
+.\" This is for Japanese translation done by FreeBSD jpman project.
+.\" $FreeBSD$
+.\"
.\"WORD: diversion ディバージョン[groff.7]
.\"WORD: divert 転換する(出力データを別の場所に貯め込むこと)[groff.7]
.\"WORD: line adjustment 行の位置揃え[groff.7]
@@ -36,15 +42,15 @@ FDL in the main directory of the groff source package.
.\"WORD: fill 行詰め(する)[groff.7]
.\"WORD: built-in condition 組み込み条件式[groff.7]
.\"WORD: baseline 基準線(文字位置の基準となる水平線)[groff.7]
-
-..
+.\"WORD: line-tabs mode 行タブモード[groff.7]
+.\"WORD: first measure 最初のステップ[groff.7]
.
.\" --------------------------------------------------------------------
.\" Setup
.\" --------------------------------------------------------------------
.
.if n \{\
-. mso tmac.tty-char
+. mso tty-char.tmac
. ftr CR R
. ftr CI I
. ftr CB B
@@ -292,12 +298,11 @@ FDL in the main directory of the groff source package.
.
.ec
.
-.\" WORD: first measure 最初のステップ (音楽用語では第一小節)
.\" --------------------------------------------------------------------
.\" Title
.\" --------------------------------------------------------------------
.
-.TH GROFF 7 "27 April 2001" "Groff Version 1.17"
+.TH GROFF 7 "26 April 2001" "Groff Version 1.17"
.SH 名称
groff \- GNU roff 言語の簡易リファレンス
.
@@ -572,6 +577,12 @@ groff は、表示用の表記として
.TP
.character \(dq
ダブルクォートはリクエストおよびマクロ中の引数を括るときに使用されます。
+.request .ds
+および
+.request .as
+リクエスト内では、引数の先頭にくるダブルクォートは取り除かれ、
+その後に続くダブルクォート以外の文字を定義文字列とします
+(先頭にホワイトスペースがくるのを有効にします)。
エスケープされたダブルクォート
.esc \(dq
はコメントの開始になります。
@@ -907,7 +918,8 @@ T}
.REQ .asciify diversion
ディバージョン
.argument diversion
-に含まれる特殊 ASCII 文字をアンフォーマットします。
+に含まれる ASCII 文字、スペース、およびエスケープシーケンスの
+いくつかをアンフォーマットします。
.
.REQ .backtrace
入力のバックトレースを標準エラー出力に出力します。
@@ -926,6 +938,20 @@ T}
.argument S
で強調します。
.
+.REQ .box
+現在のディバージョンを終了します。
+.
+.REQ .box macro
+.argument macro
+へ転換します。その際、部分的に行詰めされた行は取り除きます。
+.
+.REQ .boxa
+現在のディバージョンを終了します。
+.
+.REQ .boxa macro
+.argument macro
+へ転換し、追加します。その際、部分的に行詰めされた行は
+取り除きます。
.REQ .bp
現在のページを終了して新しいページを開始します。
.
@@ -1034,6 +1060,9 @@ troff のリクエスト
.request .ul
に相当します。
.
+.REQ .da
+現在のディバージョンを終了します。
+.
.REQ .da macro
マクロ
.argument macro
@@ -1053,6 +1082,21 @@ troff のリクエスト
.argument macro
を定義 (再定義) します。
.
+.REQ .dei macro
+文字列レジスタ
+.argument macro
+に名前が含まれるマクロを
+.request ..
+が呼ばれるまで定義 (再定義) します。
+.
+.REQ .dei macro end
+間接的にマクロを定義 (再定義) します。
+.argument macro
+および
+.argument end
+は文字列レジスタであり、この内容がそれぞれマクロ名と終了マクロに
+挿入されます。
+.
.REQ .di
現在のディバージョンを終了します。
.
@@ -1092,6 +1136,13 @@ troff のリクエスト
.argument c
に設定します。
.
+.REQ .ecr
+.request .ecs
+を用いて保存されているエスケープ文字を復元します。
+.
+.REQ .ecs
+現在のエスケープ文字を保存します。
+.
.REQ .el anything
if-else リクエスト (\c
.argument .ie )
@@ -1122,6 +1173,9 @@ if-else リクエスト (\c
.REQ .ex
roff の処理を終了します。
.
+.REQ .fam
+以前のフォントファミリを返します。
+.
.REQ .fam name
現在のフォントファミリを
.argument name
@@ -1316,6 +1370,15 @@ pairwise kerning を有効にします。
.argument register
に書き込みます。
.
+.REQ .linetabs
+行タブモードを有効にします (つまり、出力行に
+比例したタブ位置を計算します)。
+.
+.REQ .linetabs n
+.argument n
+が 0 の場合、行タブモードを無効にします。
+それ以外の場合は、行タブモードを有効にします。
+.
.REQ .lf N file
入力する行数を
.argument N
@@ -1382,7 +1445,7 @@ pairwise kerning を有効にします。
.REQ .mso file
リクエスト .so と同じですが、tmac ディレクトリにある
.I file
-も検索されます。
+が検索される点が違います。
.
.REQ .na
出力行の位置揃えを行いません。
@@ -1417,6 +1480,10 @@ pairwise kerning を有効にします。
.argument N
行に行番号をつけません。
.
+.REQ .nop anything
+.argument anything
+を常に実行します。
+.
.REQ .nr register \(+-N M
レジスタの値を、インクリメント値
.argument M
@@ -1543,6 +1610,9 @@ PostScript 画像
.REQ .rd prompt
挿入を読み込みます。
.
+.REQ .return
+マクロから戻ります。
+.
.REQ .rj n
次の
.argument n
@@ -1651,7 +1721,7 @@ PostScript 画像
.
.REQ .sv N
リクエスト
-.request os
+.os
で出力される空白行の送り量を
.argument N
に設定します。
@@ -1715,16 +1785,27 @@ PostScript 画像
.REQ .tl \f(CB'\fPleft\f(CB'\fPcenter\f(CB'\fPright\f(CB'\fP
3 つの部位をもつタイトルです。
.
-.REQ .trf filename
-ファイル
-.argument filename
-の内容をそのまま出力します。
-.
.REQ .tm anything
.argument anything
を端末 (UNIX の標準的なメッセージ出力先) に出力します。
.\" 「ターミナル」 => 「端末」
.
+.REQ .tm1 anything
+.argument anything
+を端末 (UNIX の標準的なメッセージ出力先) に出力します。
+その際、
+.argument anything
+が
+.character \(dq
+で始まっている場合は、先頭をホワイトスペースで始めることができます
+(
+.character \(dq
+自体は取り除かれます)。
+.
+.REQ .tmc anything
+.request .tm1
+と似ていますが、末尾の改行を出力しません。
+.
.REQ .tr abcd....
出力で
.argument a
@@ -1736,6 +1817,10 @@ PostScript 画像
.argument d
のように変換します。
.
+.REQ .trf filename
+ファイル
+.argument filename
+の内容をそのまま出力します。
.REQ .trnt abcd....
リクエスト
.request .tr
@@ -1763,6 +1848,10 @@ PostScript 画像
.argument N
行、アンダーライン付きにします (troff では イタリック体になります)。
.
+.REQ .unformat diversion
+.argument diversion
+内のフォント情報を保存しつつ、空白文字およびタブ文字を
+アンフォーマットします。
.REQ .vpt n
.argument n
が 0 でなければ垂直位置のトラップを有効にします。
@@ -2027,6 +2116,10 @@ tbl@.TS@.TE
改行されない空白。行を調整するとき、通常の単語間の空白のように
引き延ばされます。
.
+.ESC :
+幅 0 のブレークポイント (
+.esc %
+と似ていますが、ソフトハイフン文字は使いません)。
.ESC \& newline
無視される改行。行を連続させるときのためです。
.
@@ -2060,13 +2153,20 @@ tbl@.TS@.TE
が文字列、マクロ、ディバージョン、レジスタ、環境、あるいは
フォント名として受け付けられるものの場合、
.number 1
-です。そうでない場合
+に展開します。そうでない場合
.number 0
になります。
.
.ESCq b abc...
角括弧を作る関数。
.
+.ESCq B anything
+.argument anything
+が正しい数値表現として受け付けられるものの場合、
+.number 1
+に展開します。そうでない場合、
+.number 0
+になります。
.ESC c
テキスト処理を中断します。
.
@@ -2374,6 +2474,10 @@ groff では、ほとんどのレジスタは数値を格納しますが
.LP
.PD 0
.REG .$ 現在のマクロの引数の個数
+.REG .a
+最後に
+.escarg x 'N'
+を用いて指定した行送り幅
.REG .A
オプション
.B \-A
@@ -2386,20 +2490,8 @@ groff では、ほとんどのレジスタは数値を格納しますが
では常に
.number 1
です。
-.REG .H 基本単位で表した、利用可能な水平方向の解像度
-.REG .T
-オプション
-.B \-T
-が使用されているとき
-.number 1
-が設定されています。
-.REG .V 基本単位で表した、利用可能な垂直方向の解像度。
-.REG .
-最後に
-.escarg x 'N'
-を用いて指定した行送り幅。
-.REG .C 互換モードが有効になっている場合は 1 で、そうでない場合 0 です。
.REG .c 現在の入力行番号
+.REG .C 互換モードが有効になっている場合は 1 で、そうでない場合 0 です。
.REG .cdp
現在の環境に追加された最後の文字の深さ。
最後の文字が基準線から下に突き出ている場合に正になります。
@@ -2430,6 +2522,7 @@ GNU troff では常に 1 です。
このレジスタを使用する必要があります。
.REG .h 現在のページあるいはディバージョンでのテキスト基準線の
最高点です。
+.REG .H 利用可能な水平方向の解像度 (基本単位です)。
.REG .hla
リクエスト
.B .hla
@@ -2458,6 +2551,10 @@ GNU troff では常に 1 です。
で設定されます)。
.REG .i 現在のインデント。
.REG .in 現在の出力行に対して適用されるインデント。
+.REG .int
+最後に出力した行に
+.esc c
+が含まれていれば正です。
.REG .kern
pairwise kerning が有効になっている場合
.number 1
@@ -2470,6 +2567,10 @@ pairwise kerning が有効になっている場合
リクエスト
.request .lg
で設定されます)。
+.REG .linetabs
+現在の行タブモード (
+.request .linetabs
+リクエストによって設定されます)。
.REG .ll 現在の出力行に対して適用される行の長さ。
.REG .lt
タイトルの長さ (
@@ -2503,6 +2604,12 @@ pairwise kerning が有効になっている場合
.REG .sr
10 進小数での最後に要求されたポイントサイズ (文字列値)。
.REG .t 次のトラップまでの距離。
+.REG .T
+オプション
+.B \-T
+が使われている場合
+.number 1
+に設定されます。
.REG .tabs
現在のタブ設定の文字列表現。
リクエスト
@@ -2530,6 +2637,7 @@ pairwise kerning が有効になっている場合
の第 2 引数によって設定されたパラメータの値。
.REG .u 行連結モードのときは 1 で、そうでなければ 0 です。
.REG .v 現在の垂直方向の行送り量。
+.REG .V 利用可能な垂直方向の解像度 (基本単位です)。
.REG .vpt
垂直位置トラップが有効なら
.number 1
@@ -2543,6 +2651,25 @@ pairwise kerning が有効になっている場合
.REG .y マイナバージョン番号。
.REG .Y groff のリビジョン番号。
.REG .z 現在のディバージョン名。
+.PD
+.
+.\" --------------------------------------------------------------------
+.SS "書き込み可能なレジスタ"
+.\"--------------------------------------------------------------------
+次のレジスタは、ユーザによって読み書き可能です。
+定義済みのデフォルト値を持っていますが、ドキュメントを
+カスタマイズするために変更できます。
+.LP
+.PD 0
+.REG % 現在のページ番号。
+.REG c. 現在の入力行番号。
+.REG ct 文字の種類 (幅関数
+.esc w
+で指定されます)。
+.REG dl 最後に行われたディバージョンの最大幅。
+.REG dw 現在の曜日 (1-7)。
+.REG dy 現在の日 (1-31)。
+.REG hp 現在の入力行における水平位置。
.REG llx
与えられた PostScript 画像 (
.request .psbb
@@ -2553,6 +2680,9 @@ pairwise kerning が有効になっている場合
.request .psbb
で設定されます)
の左下 y 座標 (PostScript 単位)。
+.REG ln 出力行番号。
+.REG mo 現在の月 (1-12)。
+.REG nl 最後に表示されたテキストのベースラインの垂直方向の位置。
.REG rsb
.register sb
と同様ですが、文字の高さおよび深さを勘定に含めています。
@@ -2567,6 +2697,10 @@ pairwise kerning が有効になっている場合
.REG skw
.esc w
引数の最後の文字の中央からの右スキップ幅。
+.REG slimit
+0 よりも大きければ、入力スタック上のオブジェクトの最大数。
+0 以下であれば、制限はありません。つまり、仮想メモリを使い果たすまで
+再帰呼び出しし続けることができます。
.REG ssc
添字の直前にある文字に追加すべき水平方向の空白量 (幅関数
.esc w
@@ -2576,6 +2710,12 @@ pairwise kerning が有効になっている場合
文字列の、基準線の上の高さ (幅関数
.esc w
で生成されます)。
+.REG systat
+最後の
+.request .sy
+リクエストによって実行された
+.I system()
+関数の戻り値。
.REG urx
与えられた PostScript 画像 (
.request .psbb
@@ -2586,38 +2726,6 @@ pairwise kerning が有効になっている場合
.request .psbb
で設定されます)
の右上 y 座標 (PostScript 単位)。
-.PD
-.
-.\" --------------------------------------------------------------------
-.SS "書き込み可能なレジスタ"
-.\"--------------------------------------------------------------------
-次のレジスタは、ユーザによって読み書き可能です。
-定義済みのデフォルト値を持っていますが、ドキュメントを
-カスタマイズするために変更できます。
-.LP
-.PD 0
-.REG % 現在のページ番号。
-.REG c. 現在の入力行番号。
-.REG ct 文字の種類 (幅関数
-.esc w
-で指定されます)。
-.REG dl 最後に行われたディバージョンの最大幅。
-.REG dw 現在の曜日 (1-7)。
-.REG dy 現在の日 (1-31)。
-.REG hp 現在の入力行における水平位置。
-.REG ln 出力行番号。
-.REG mo 現在の月 (1-12)。
-.REG nl 最後に表示されたテキストのベースラインの垂直方向の位置。
-.REG slimit
-0 よりも大きければ、入力スタック上のオブジェクトの最大数。
-0 以下であれば、制限はありません。つまり、仮想メモリを使い果たすまで
-再帰呼び出しし続けることができます。
-.REG systat
-最後の
-.request .sy
-リクエストによって実行された
-.I system()
-関数の戻り値。
.REG year 現在の年 (2000 年問題対応です)。
.REG yr
現在の年から 1900 を引いたものです。2000 年問題対応にするには
@@ -2982,5 +3090,8 @@ roff および groff システムを調べたり、さらなるドキュメントへの
.I http://www.kohala.com/start/troff/
.RE
にあります。
-
-
+.\" .SH 履歴
+.\" Yoshiteru Kageyama <yt-kage@cb3.so-net.ne.jp> 2001/05/20 JM さんの
+.\" groff 1.16.1 ベースを参考に更新
+.\" Norihiro Kumagai <kuma@oasis.sharplabs.com> 2001/03/16 訳チェック
+.\" Yoshiteru Kageyama <yt-kage@cb3.so-net.ne.jp> 2001/05/20 groff 1.17 に更新
diff --git a/ja_JP.eucJP/man/man7/groff_mdoc.7 b/ja_JP.eucJP/man/man7/groff_mdoc.7
new file mode 100644
index 0000000000..2d51f025ea
--- /dev/null
+++ b/ja_JP.eucJP/man/man7/groff_mdoc.7
@@ -0,0 +1,4011 @@
+.\" groff_mdoc.man
+.\"
+.\" A complete reference of the mdoc macro package for GNU troff.
+.\"
+.\" Based on NetBSD's mdoc.samples.7, version 1.21.
+.\"
+.\"
+.\" Warning: You can't format this file with the old mdoc macros!
+.\"
+.\"
+.\" Copyright (c) 1990, 1993
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. All advertising materials mentioning features or use of this software
+.\" must display the following acknowledgement:
+.\" This product includes software developed by the University of
+.\" California, Berkeley and its contributors.
+.\" 4. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.\" @(#)mdoc.samples.7 8.2 (Berkeley) 12/30/93
+.\"
+.\" This reference invokes every macro in the package several
+.\" times and is guaranteed to give a worst case performance
+.\" for an already extremely slow package.
+.\"
+.\" $FreeBSD$
+.\" Copyright (c) 2001 FreeBSD jpman project
+.\" This is for Japanese translation done by FreeBSD jpman project.
+.\" WORD: epoch 基準時点 (協定世界時 1970年1月1日 00:00:00)
+.\" WORD: display ディスプレイ
+.\" WORD: bracket 角括弧 []
+.\" WORD: brace 中括弧 ()
+.\" WORD: angle bracket カギ括弧 <>
+.\" WORD: acronym 頭字語
+.\" WORD: keep キープ
+.\" WORD: literal リテラル
+.\" WORD: content macro コンテントマクロ
+.\" WORD: command modifier コマンド修飾子
+.\" WORD: enclosure 囲い
+.\" WORD: quoting クォート
+.\" WORD: nest 入れ子
+.\" WORD: block ragged 凹凸ブロック
+.\" WORD: constant width character 定幅文字
+.\" WORD: scale indicator スケール指示子
+.\" WORD: hanging tag ぶら下がりタグ
+.\" WORD: overhanging tag オーバハングタグ
+.
+.Dd April 10, 2001
+.Os
+.Dt GROFF_MDOC 7
+.
+.
+.Sh 名称
+.
+.Nm groff_mdoc
+.Nd groff mdoc の実装に関するリファレンス
+.
+.
+.Sh 書式
+.
+.Nm groff Fl m Ns Cm doc Ar
+.
+.
+.Sh 解説
+.
+.Tn GNU
+.Xr troff 1
+用の
+.Em コンテントベース
+でかつ
+.Em 領域ベース
+な整形用パッケージである
+.Nm \-mdoc
+マクロパッケージを使って
+.Ux
+マニュアルページを書くための完全なリファレンスです。
+前身である
+.Xr \-man 7
+パッケージは、フォントの操作や他の写植方法の詳細は個々の作者に任せた
+ページレイアウトベースのものでした。
+.Nm \-mdoc
+では、ページレイアウトマクロは
+タイトル、セクションのヘッダ、ディスプレイ、リストのマクロからなる
+.Em "ページ構造領域"
+を形成しています。これらは、整形されたページでの
+テキストの物理的位置に影響を与える要素です。
+ページ構造領域に加え、さらに
+.Em マニュアル
+領域および
+.Em 一般
+テキスト領域の 2 つの領域があります。
+一般テキスト領域は、テキストの一部をクォートしたり強調したりと
+いったような作業を実行するマクロとして定義されています。
+マニュアル領域はコマンドやルーチン、それに
+.Ux
+の関連ファイルを記述するための日常使用されるインフォーマルな言葉の
+サブセットであるマクロとして定義されています。
+マニュアル領域のマクロはコマンド名、コマンド行の引数とオプション、
+関数名、関数のパラメータ、パス名、変数名、他のマニュアルページへの
+クロスリファレンスなどを扱います。
+これらの領域の項目は作者とマニュアルページの将来のユーザの両者に
+とって価値のあるものです。
+マニュアル間で一貫性を高めることによって将来のドキュメントツールへの
+移行が容易になることが望まれます。
+.Pp
+.Ux
+マニュアルページ全体を通して、マニュアルのエントリは単純に
+マニュアルページとしてみなされます。これは実際の長さに依りませんし、
+男女の区別をするような意図もないということです。
+.
+.
+.Sh "さあ、始めよう"
+.
+このドキュメントの残りの部分で説明されている題材は以下のような構成に
+なっています。
+.
+.Bl -enum -width 3n -offset indent
+. It
+. Tn "TROFF に特有な表現"
+.
+. Bl -tag -width 2n -compact
+. It "マクロの使用方法"
+. It "引数に空白文字を指定する"
+. It "行末の空白文字 (警告)"
+. It "特殊文字のエスケープ"
+. El
+.
+. It
+. Tn "マニュアルページのテンプレート"
+.
+. It
+. Tn "使用法"
+.
+. It
+. Tn "タイトルマクロ"
+.
+. It
+. Tn "マニュアル領域および一般テキスト領域の紹介"
+. Bl -tag -width 2n -compact
+. It "この名前には何が" Ns ...?
+. It "一般的な構文"
+. El
+.
+. It
+. Tn "マニュアル領域"
+.
+. Bl -tag -width 2n -compact
+. It "アドレスマクロ"
+. It "作者名マクロ"
+. It "引数マクロ"
+. It "コンフィギュレーション宣言 (セクション 4 のみ)"
+. It "コマンド修飾子"
+. It "定義済みの変数"
+. It "errno (セクション 2 のみ)"
+. It "環境変数"
+. It "フラグ"
+. It "関数の宣言"
+. It "関数 (ライブラリルーチン)"
+. It "関数の引数"
+. It "関数の型"
+. It "戻り値"
+. \" .It "ヘッダファイル (ソースコードを含む)"
+. It "対話的なコマンド"
+. It "ライブラリ名"
+. It "名称"
+. It "オプション"
+. It "パス名"
+. It "標準"
+. It "変数"
+. It "クロスリファレンス"
+. El
+.
+. It
+.
+. Tn "一般テキスト領域"
+. Bl -tag -width 2n -compact
+. It "AT&T マクロ"
+. It "BSD マクロ"
+. It "NetBSD マクロ"
+. It "FreeBSD マクロ"
+. It "OpenBSD マクロ"
+. It "BSD/OS マクロ"
+. It "UNIX マクロ"
+. It "強調マクロ"
+. It "フォントモード"
+. It "囲い/クォート マクロ"
+. It "no\-op もしくは通常テキストマクロ"
+. It "空白なしマクロ"
+. It "セクションのクロスリファレンス"
+. It "記号"
+. It "数式記号"
+. It "参考文献と引用"
+. It "商標名 (頭字語とタイプ名)"
+. It "拡張引数"
+. El
+.
+. It
+. Tn "ページ構造領域"
+.
+. Bl -tag -width 2n -compact
+. It "セクションヘッダ"
+. It "サブセクションヘッダ"
+. It "段落と行スペース"
+. It "キープ"
+. It "例示とディスプレイ"
+. It "リストと列"
+. El
+.
+. It
+. Tn "その他のマクロ"
+.
+. It
+. Tn "定義済みの文字列"
+.
+. It
+. Tn "診断"
+.
+. It
+. Tn "GROFF, TROFF および NROFF を使用した整形"
+.
+. It
+. Tn "関連ファイル"
+.
+. It
+. Tn "関連項目"
+.
+. It
+. Tn "バグ"
+.El
+.
+.\" XXX
+.ne 7
+.
+.
+.Sh "TROFF に特有な表現"
+.
+.Nm \-mdoc
+パッケージは、マニュアルページを記述するプロセスを簡単にすることを
+目的としています。
+.Nm \-mdoc
+を使うために
+.Tn GNU
+.Xr troff 1
+のゴタゴタした詳細を学ぶ必要がないのが理想ですが、
+いくつか片付けるべき避けられない制限事項があります。
+また、このパッケージは高速で
+.Em ない
+ということも予め警告しておきます。
+.
+.Ss "マクロの使用方法"
+.
+.Tn GNU
+.Xr troff 1
+のように、マクロは
+.Ql .\&
+(ドット文字)
+を行頭に置き、それに続けて 2 文字 (または 3 文字) からなる
+マクロの名称を指定することによって呼び出されます。
+ドット文字とマクロの間にはスペースを置くことができます
+(ただし、タブを置くことは
+.Em できません
+)。
+引数はマクロの後にスペースで区切って指定することができます
+(やはり、タブは使用できません)。
+行頭にドット文字を指定することによって
+.Tn GNU
+.Xr troff 1
+にそれに続く 2 文字 (あるいはそれより多い文字) を
+マクロ名として解釈するよう指示しています。
+最初にドット文字 1 文字をとり、その後ろに何も来ない場合は
+無視されます。
+マクロを起動せずに、ある文脈の行の先頭に
+.Ql .\&
+(ドット文字)
+を置くためには、
+.Ql .\&
+(ドット) の前にエスケープシーケンス
+.Ql \e&
+を指定します。
+.Ql \e&
+は文字通りスペース幅が 0 として解釈され、出力には現れません。
+.Pp
+一般的に
+.Tn GNU
+.Xr troff 1
+マクロは取り得る引数の数に制限はありません (9 つ以上の
+引数を扱うことのできない他のバージョンの troff とは違います)。
+限られた場合ですが、引数を次の行に続けたり、拡張したり
+することができます (
+.Sx 拡張引数
+セクションを参照)。
+ほとんどすべてのマクロで引用符に囲まれた引数を扱うことができます
+(下の
+.Sx 拡張引数
+セクションを参照)。
+.Pp
+.Nm \-mdoc
+での一般テキスト領域とマニュアル領域のほとんどのマクロは、
+その引数のリストは呼び出し可能なマクロ名として
+.Em 解析
+されるという点で特別なものです。
+これはつまり、一般テキスト領域またはマニュアル領域のマクロ名に一致し、
+呼び出し可能であると判断された引数リスト中の引数は
+処理される時に実行されるか、もしくは呼び出されるということです。
+この場合、引数はマクロ名にも関わらず、
+.Ql .\&
+(ドット)
+で前置されません。
+このようにしてたくさんのマクロを入れ子にすることができます。
+例えばオプションマクロ
+.Ql .Op
+はフラグマクロおよび引数マクロ
+.Ql \&Fl
+と
+.Ql \&Ar
+を
+.Em 呼び出して
+、オプションのフラグを引数とともに指定することができます:
+.
+.Bl -tag -xwidth ".Op Fl s Ar bytes" -offset indent
+.It Op Fl s Ar bytes
+は
+.Ql ".Op Fl s Ar bytes"
+で生成されます。
+.El
+.
+.Pp
+文字列がマクロ名と解釈されないようにするには、
+その文字列の前にエスケープシーケンス
+.Ql \e&
+を指定します。
+.
+.Bl -tag -xwidth ".Op \&Fl s \&Ar bytes" -offset indent
+.It Op \&Fl s \&Ar bytes
+は
+.Ql ".Op \e&Fl s \e&Ar bytes"
+で生成されます。
+.El
+.
+.Pp
+ここで文字列
+.Ql \&Fl
+と
+.Ql \&Ar
+はマクロとして解釈されていません。
+このドキュメントを通して、
+引数リストが呼び出し可能な引数として解析されるマクロは
+.Em 解析される
+と表現し、
+引数リストから呼び出されることができるマクロは
+.Em 呼び出し可能
+と表現します。
+.Nm \-mdoc
+のマクロはほとんどすべて解析されるのですから、これは技術的には
+.Em 不謹慎な
+言い分ですが、常にマクロを「呼び出し可能である」とか「他のマクロを
+呼び出すことができる」と表現するのは面倒なことであるため、
+「解析される」という用語が使われています。
+.
+.Ss "引数に空白文字を指定する"
+.
+1 つ以上の空白文字を含む文字列を引数として指定したい
+場合があります。
+引数リスト中の要素が特殊な並び方をしていることを
+期待しているマクロに引数を指定する時に必要になることがあります。
+さらに、こうすると
+.Nm \-mdoc
+が速く実行されるようになるのです。
+例えば、関数マクロ
+.Ql .Fn
+では第 1 引数は関数名であり、残りの引数が関数のパラメータであると
+想定されています。
+.Tn ANSI\~C
+では、関数のパラメータ宣言は括弧で囲まれたパラメータリスト中に
+明示されているので、各パラメータは最低でも 2 語の文字列となります。
+例えば、
+.Fa int foo
+のようになります。
+.Pp
+空白を含む引数を指定するには 2 通りの方法があります。
+空白を含む文字列を渡すのに、固定空白、すなわち詰め込まれない空白文字
+.Ql \e\
+を使う方法があります。すなわち、空白の前にエスケープ文字
+.Ql \e
+を指定する方法です。
+この方法はどのマクロでも使うことができますが、1 行を超える
+長さのテキストの調整の邪魔になるという副作用があります。
+.Xr troff
+では、固定空白は他の印刷可能文字と同様に扱われ、通常期待されるように
+そこで文字列を空白や改行で分けることを行わなくなります。
+この方法は、文字列が行の境界をまたがないと思われる場合に有用です。
+代替案としては、
+詰め込み可能 (すなわち \& 伸長可能) で、かつ分割不可能な空白
+.Ql \e~
+を使うことがあります (これは、
+.Tn GNU
+.Xr troff 1
+拡張です)。
+2 つ目の方法は、文字列をダブルクォートで括ることです。
+.Pp
+例えば、次のようにします:
+.
+.Bl -tag -xwidth ".Fn fetch char\ *str" -offset indent
+.It Fn fetch char\ *str
+は
+.Ql ".Fn fetch char\e *str"
+で生成されます。
+.It Fn fetch "char *str"
+も
+.Ql ".Fn fetch \*[q]char *str\*[q]"
+で生成することができます。
+.El
+.
+.Pp
+もし、空白およびダブルクォートの前の
+.Ql \e
+が省略されていた場合には
+.Ql .Fn
+は引数を 3 つ取り、その結果は
+.Pp
+.Dl Fn fetch char *str
+.Pp
+となります。
+.\" For an example of what happens when the parameter list overlaps a newline
+.\" boundary, see the
+.\" .Sx BUGS
+.\" section.
+.
+.Ss "行末の空白文字"
+.
+.Xr Troff
+は行末に空白文字があると混乱してしまうことがあります。
+.Ao 空白 Ac Ns Ao 行末 Ac
+の文字シーケンスからすべての空白文字を取り除くのは良い予防策です。
+どうしても行末に空白文字をおく必要性が出てきた場合は、
+詰め込まれない空白とエスケープ文字
+.Ql \e&
+を使用することによって対応できます。
+例えば、
+.Ql string\e\ \e&
+のようにします。
+.
+.Ss 特殊文字のエスケープ
+.
+改行
+.Ql \en
+のような特殊文字は
+.Ql \e
+を
+.Ql \ee
+で置き換え
+(たとえば
+.Ql \een
+とする) 、バックスラッシュを残して扱います。
+.
+.Ss "その他の注意点"
+.
+表示領域外で空の入力行が見つかった場合には警告が発生します
+(下記参照)。
+代わりに
+.Ql .sp
+を使用してください
+(
+.Nm \-mdoc
+マクロを使用して、低レベルコマンドを使用しないようにすると
+ずっと良いです)。
+.Pp
+先頭に空白を置くと行分割が生じ、そのまま出力されてしまいます。
+可能ならばこうなることを避けてください。
+同様に、通常のテキスト行において単語間に 2 つ以上の空白文字を
+使用しないでください。これは、他のテキストフォーマッタとは
+対照的です。空白文字を 2 つ以上置いても 1 つの空白文字に
+.Em 置き換わりません
+。
+.Pp
+引数として
+.Ql \*[q]
+を直接渡すことはできません。
+代わりに
+.Ql \e*[q]
+(あるいは
+.Ql \e*q )
+を使用してください。
+.Pp
+デフォルトでは、
+.Xr troff 1
+は文を終了させる句読点の後に空白文字を 2 つ挿入します。
+つまり、
+.Ql \&)
+あるいは
+.Ql \&'
+などの文字はそのまま扱われ、文の終了には影響を与えません。
+この動作を変更するには、
+ドットの前あるいは後に
+.Ql \e&
+を挿入してください。
+.
+.Bd -literal -offset indent
+\&.Ql .
+文字
+\&.Pp
+\&.Ql \e&.
+文字
+\&.Pp
+\&.No テスト 。
+テスト
+\&.Pp
+\&.No テスト。
+テスト
+.Ed
+.Pp
+.
+は、
+.
+.Bd -filled -offset indent
+.Ql .
+文字
+.Pp
+.Ql \&.
+文字
+.Pp
+.No テスト 。
+テスト
+.Pp
+.No テスト。
+テスト
+.Ed
+となります。
+.Pp
+.
+1 行目および 3 行目にみられるように、
+.Nm \-mdoc
+はマクロ引数の中では句読点を特別に扱います。
+これについては、後述の
+.Sx 一般的な構文
+の節で述べます。
+同様の方法で、幅 0 の空白を続けることで、
+省略形の後に続いたピリオドを保存しなくてはなりません。
+.Ql 例えば\e& .
+です。
+.Pp
+マニュアルページのソースファイル中のコメントは、
+1 行内では
+.Ql .\e"
+、何らかの入力があった後では
+.Ql \e"
+を、あるいはどのような場所でも使いたい場合は
+.Ql \e#
+を使うことができます
+(後者は
+.Tn GNU
+.Xr troff 1
+拡張です)。このような行の残りの部分は無視されます。
+.
+.
+.Sh "マニュアルページのテンプレート"
+.
+マニュアルページの中身は次のような基本的なテンプレートから
+簡単に作成できます。
+.
+.Bd -literal -offset indent
+\&.\e" 以下の項目はすべてのマニュアルページで必要な項目です。
+\&.Dd 月\ 日, 年
+\&.Os [オペレーティングシステム] [バージョン/リリース]
+\&.Dt ドキュメントタイトル [セクション番号] [アーキテクチャ/ボリューム]
+\&.Sh NAME
+\&.Nm 名称
+\&.Nd 名称の 1 行での説明
+\&.Sh SYNOPSIS
+\&.Sh DESCRIPTION
+\&.\e" 以下の項目については、必要に応じてコメントをはずして使用してく
+\&.\e" ださい。
+\&.\e" .Sh IMPLEMENTATION NOTES
+\&.\e" この次の項目はセクション 2, 3, 9 でのみ必要な、関数の
+\&.\e" 戻り値です。
+\&.\e" .Sh RETURN VALUES
+\&.\e" 次の項目はセクション 1, 6, 7, 8, 9 でのみ必要なものです。
+\&.\e" .Sh ENVIRONMENT
+\&.\e" .Sh FILES
+\&.\e" .Sh EXAMPLES
+\&.\e" 次の項目はセクション 1, 6, 7, 8, 9 でのみ必要なものです。
+\&.\e" ((シェルへの)コマンドの戻り値と fprintf/stderr の型の診断
+\&.\e" です。)
+\&.\e" .Sh DIAGNOSTICS
+\&.\e" .Sh COMPATIBILITY
+\&.\e" 次の項目はセクション 2, 3, 9 でのみ必要な、エラーハンドリングと
+\&.\e" シグナルハンドリングです。
+\&.\e" .Sh ERRORS
+\&.\e" .Sh SEE ALSO
+\&.\e" .Sh STANDARDS
+\&.\e" .Sh HISTORY
+\&.\e" .Sh AUTHORS
+\&.\e" .Sh BUGS
+.Ed
+.Pp
+.
+このテンプレートにおける最初の項目はマクロ
+.Ql .Dd ,
+.Ql .Os ,
+および
+.Ql .Dt
+であり、それぞれドキュメントの日付、
+マニュアルページもしくは題材となっているソースの開発や変更の
+ベースとなったオペレーティングシステム、そして
+マニュアルページのタイトルを属するマニュアルのセクション番号と
+ともに (
+.Em 大文字で
+) 指定したもの、となっています。
+これらのマクロはそのページを識別するものであり、後述の
+.Sx タイトルマクロ
+で議論されています。
+.Pp
+テンプレート中の残りの項目はセクションのヘッダ
+.Pf ( Li .Sh )
+であり、それらのうち
+.Sx NAME ,
+.Sx SYNOPSIS ,
+および
+.Sx DESCRIPTION
+は必須項目です。
+これらのヘッダについては
+.Sx "マニュアル領域"
+を説明した後、
+.Sx "ページ構造領域"
+で議論されます。
+いくつかのコンテントマクロはページレイアウトマクロの説明に
+使用されていますので、ページレイアウトマクロの前にコンテントマクロに
+ついて読むことを推奨します。
+.
+.
+.Sh 使用法
+.
+次に説明するマクロはすべて、オプションの引数は
+角括弧 ([]) で括られます。
+省略符号
+.Pf ( Sq ... )
+はさらに 0 個以上の引数があることを表しています。
+パラメータの代替値は
+.Ql |
+で区切って示します。
+必須パラメータに代替値がある場合は、
+(
+.Ql |
+と一緒に)
+中括弧 ({}) を用い、値の組を括ります。
+メタ変数はカギ括弧 (<>) の中で指定されます。
+.Pp
+例:
+.
+.Bl -tag -width 6n -offset indent
+.It Li .Xx Xo
+.Aq foo
+.Brq bar1 | bar2
+.Op \-test1 Op \-test2 | \-test3
+.No ...
+.Xc
+.El
+.
+.Pp
+最初に明示されていない限り、すべてのマクロは
+解析され、呼び出し可能なものです。
+.Pp
+大部分のマクロには、デフォルトの幅があり、これを
+.Ql .Bl
+および
+.Ql .Bd
+マクロ用にラベル
+width
+.Pf ( Fl width )
+あるいは offset
+.Pf ( Fl offset )
+を指定するのに使用することができます。
+.Nm \-mdoc
+パッケージの各自の変更に依存することのないように、
+このとても曖昧な機能は使わないことを推奨します。
+.
+.
+.Sh "タイトルマクロ"
+.
+タイトルマクロはページ構造領域の一部ですが、
+マニュアルページを前日に書き始めたいという人のために
+最初に記述されています。
+3 つのヘッダマクロでドキュメントまたはマニュアルページのタイトル、
+オペレーティングシステム、および原著の日付を指定します。
+これらのマクロはドキュメントの最初で一度だけ呼び出されるもので、
+ヘッダとフッタを構成するためだけに使用されます。
+.
+.Bl -tag -width 6n
+.It Li .Dt Xo
+.Op Aq ドキュメントタイトル
+.Op Aq セクション番号
+.Op Aq ボリューム
+.Xc
+ドキュメントタイトルはマニュアルページの主題であり、
+troff の制限により
+.Tn 大文字
+でなければいけません。
+省略された場合、
+.Sq Tn UNTITLED
+が使われます。
+セクション番号は
+.No 1,\~ Ns ... Ns ,\~9
+の範囲の番号もしくは
+.Ql unass ,
+.Ql draft ,
+.Ql paper
+のいずれかを取ることができます。
+セクション番号が指定されており、ボリューム名が与えられていない
+場合には、デフォルトのボリューム名が使用されます。
+.
+.Pp
+.Tn \*[operating-system]
+では、次のセクションが定義されています:
+.Pp
+.Bl -column LOCAL -offset indent -compact
+.It Li 1 Ta "\*[volume-ds-1]"
+.It Li 2 Ta "\*[volume-ds-2]"
+.It Li 3 Ta "\*[volume-ds-3]"
+.It Li 4 Ta "\*[volume-ds-4]"
+.It Li 5 Ta "\*[volume-ds-5]"
+.It Li 6 Ta "\*[volume-ds-6]"
+.It Li 7 Ta "\*[volume-ds-7]"
+.It Li 8 Ta "\*[volume-ds-8]"
+.It Li 9 Ta "\*[volume-ds-9]"
+.El
+.Pp
+.
+ボリューム名は任意であるか、もしくは次のものを
+取ることができます:
+.
+.Pp
+.Bl -column LOCAL -offset indent -compact
+.It Li USD Ta "\*[volume-ds-USD]"
+.It Li PS1 Ta "\*[volume-ds-PS1]"
+.It Li AMD Ta "\*[volume-ds-AMD]"
+.It Li SMM Ta "\*[volume-ds-SMM]"
+.It Li URM Ta "\*[volume-ds-URM]"
+.It Li PRM Ta "\*[volume-ds-PRM]"
+.It Li KM Ta "\*[volume-ds-KM]"
+.It Li IND Ta "\*[volume-ds-IND]"
+.It Li LOCAL Ta "\*[volume-ds-LOCAL]"
+.It Li CON Ta "\*[volume-ds-CON]"
+.El
+.Pp
+.
+互換性を保つため、
+.Ql IND
+の代わりに
+.Ql MMI
+を使用することができ、
+.Ql LOCAL
+の代わりに
+.Ql LOC
+を使用できます。
+先の表の値は、新しいボリューム名を指定します。
+第 3 パラメータがコンピュータアーキテクチャを表すキーワードで
+ある場合、その値は第 2 パラメータで指定したようにボリューム名に
+追加されます。デフォルトでは次のアーキテクチャに関するキーワードが
+定義されています:
+.
+\# we use `No' to avoid hyphenation
+.Bd -ragged -offset indent
+.No alpha , amiga , arc , arm26 , arm32 , atari , bebox , cobalt , evbsh3 ,
+.No hp300 , hpcmips , i386 , luna68k , m68k , mac68k , macppc , mips ,
+.No mmeye , mvme68k , news68k , newsmips , next68k , ofppc , pc532 , pmax ,
+.No powerpc , prep , sgimips , sh3 , sparc , sparc64 , sun3 , tahoe , vax ,
+.No x68k
+.Ed
+.Pp
+.
+次の例では、マニュアルページのヘッダの左側 (これは右側と同じものです) と
+中央に書かれる文字列を示しています。
+.
+.Bd -ragged
+.Bl -tag -xwidth ".Li .Dt\ FOO\ 2\ mac68k" -compact -offset indent
+.It Li ".Dt FOO 7"
+.Ql FOO(7)
+.Ql System Reference Manual
+.It Li ".Dt FOO 2 mac68k"
+.Ql FOO(2)
+.Ql System Programmer's Manual (mac68k Architecture)
+.It Li ".Dt FOO \*[q]\*[q] bar"
+.Ql FOO
+.Ql bar
+.El
+.Ed
+.Pp
+.
+ローカルマシンや OS に特化した追加項目は、ファイル
+.Pa mdoc.local
+で見つかるでしょう。このファイル中で
+.Ql volume-ds-XXX
+(前者のタイプについて) および
+.Ql volume-as-XXX
+(後者のタイプについて)
+という名前の文字列を検索してください。ここで
+.Ql XXX
+は
+.Ql .Dt
+マクロで使用されるキーワードを表しています。
+.Pp
+このマクロは呼び出し不可能であり、解析されることもありません。
+.
+.It Li .Os Xo
+.Op Aq オペレーティングシステム
+.Op Aq リリース番号
+.Xc
+第 1 パラメータが空の場合、
+デフォルト値
+.Sq Tn "\*[operating-system]"
+が使用されます。
+これは、ローカルの設定ファイル
+.Pa mdoc.local
+で上書きできます。一般的には、
+オペレーティングシステムの名称には一般的な頭字語 (略称) を
+使わなければなりません。
+例えば\&
+.Tn BSD
+や
+.Tn ATT
+といったものです。
+リリース番号は、各システムでの標準のリリースの命名法を使用します。
+次の表では、いくつか事前に定義されているオペレーティングシステムに
+対して取り得る第 2 引数をリストしています。
+.Ql .Dt
+と同じように、ローカルマシンでの追加項目は
+.Pa mdoc.local
+で定義されているでしょう。このファイル中で
+.Ql operating-system-XXX-YYY
+という名前の文字列を検索してください。ここで
+.Ql XXX
+はオペレーティングシステムの頭字語 (略称) そして
+.Ql YYY
+がリリース ID です。
+.
+.Bd -ragged -compact
+.Bl -tag -xwidth ".No FreeBSD" -offset indent
+.It ATT
+7th, 7, III, 3, V, V.2, V.3, V.4
+.It BSD
+3, 4, 4.1, 4.2, 4.3, 4.3t, 4.3T, 4.3r, 4.3R, 4.4
+.It NetBSD
+0.8, 0.8a, 0.9, 0.9a, 1.0, 1.0a, 1.1, 1.2, 1.2a, 1.2b, 1.2c, 1.2d, 1.2e,
+1.3, 1.3a, 1.4, 1.5
+.It FreeBSD
+1.0, 1.1, 1.1.5, 1.1.5.1, 2.0, 2.0.5, 2.1, 2.1.5, 2.1.6, 2.1.7, 2.2, 2.2.1,
+2.2.2, 2.2.5, 2.2.6, 2.2.7, 2.2.8, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 4.0, 4.1,
+4.2, 5.0
+.El
+.Ed
+.Pp
+.
+.Tn ATT
+に関しては、判別できない第 2 パラメータがある時には
+それを文字列
+.Tn UNIX
+に置き換えます。事前に定義されているその他の頭字語 (略称) に
+ついては、そのようなパラメータは無視され、警告メッセージが
+出力されます。
+認識できない引数は、ページフッタ中に記述された通りに
+表示されます。例えば、典型的なフッタは次のようになるでしょう:
+.Pp
+.Dl .Os BSD 4.3
+.Pp
+は
+.Ql 4.3\~Berkeley Distribution
+となります。また、ローカルで作られたセットの例では、
+.Pp
+.Dl .Os CS Department
+.Pp
+は
+.Ql CS\~Department
+となります。
+.Pp
+.Ql .Os
+マクロがない場合、ページの左下角はみにくくなってしまうでしょう。
+.Pp
+このマクロは呼び出し不可能であり、解析されることもありません。
+.
+.It Li .Dd Oo
+.Aq month
+.Aq day ,
+.Aq year
+.Oc
+.Ql Dd
+に引数がない場合は、日付には
+.Ql "基準時点 (協定世界時 1970年1月1日 00:00:00)"
+が使用されます。
+ちょうど 3 つ引数がある場合には、それらは連結され、
+分割できない空白で分けられたものになります。
+.Pp
+.Dl .Dd January 25, 2001
+.Pp
+それ以外の場合は現在の日付が使用され、パラメータは無視されます。
+.Pp
+このマクロは呼び出し不可能であり、解析されることもありません。
+.El
+.
+.
+.Sh "マニュアル領域および一般テキスト領域の紹介"
+.
+.Ss "この名前には何が...?"
+.
+マニュアル領域のマクロ名はコマンドやサブルーチン、それに関連ファイルを
+説明するために使われている日常のインフォーマルな言葉から取られています。
+この言葉と少し違うバリエーションのものがマニュアルページを書く上での
+3 つの異なった側面を記述するのに使われます。
+最初のものは、
+.Nm \-mdoc
+マクロ使用方法の説明です。2 番目は
+.Nm \-mdoc
+マクロを用いた
+.Ux
+コマンドの記述です。
+3 番目はコマンドを通常の言葉の感覚でユーザに示したものです。
+これはすなわち、マニュアルページのテキスト中でのコマンドの
+議論となります。
+.Pp
+最初のケースでは、
+.Xr troff 1
+マクロはそれ自身、一種のコマンドとなっています。
+troff コマンドは一般的に以下のような形式をとります。
+.
+.Bd -filled -offset indent
+.Li ".Xx argument1 argument2" ...
+.Ed
+.Pp
+.
+.Ql .Xx
+はマクロコマンドもしくは要求を示しており、それに続くものは
+すべて処理されるべき引数として処理されます。
+2 番目のケースでは、コンテントマクロを使用する
+.Ux
+コマンドの記述がもう少し含まれます。
+典型的な
+.Sx SYNOPSIS
+コマンド行はこのように表示されます。
+.
+.Bd -filled -offset indent
+.Nm filter
+.Op Fl flag
+.Ao Ar infile Ac Ao Ar outfile Ac
+.Ed
+.Pp
+.
+ここで
+.Nm filter
+はコマンド名であり、角括弧で囲まれた文字列
+.Fl flag
+は
+.Em フラグ
+引数で、これは角括弧で囲むことによってオプションであることを
+示しています。
+.Nm \-mdoc
+の用語では、
+.Ao Ar infile Ac
+および
+.Ao Ar outfile Ac
+は
+.Em メタ引数
+と称されています。
+この例では、ユーザはカギ括弧の中で与えられたメタ引数を
+実際のファイル名に置き換えなくてはなりません。
+このドキュメントでは、メタ引数は
+.Nm \-mdoc
+コマンドを記述するのに使用していることに注意してください。
+多くのマニュアルページでは、メタ変数は特にカギ括弧を使って
+書かれることはありません。
+上の例を整形したマクロは以下のものです。
+.
+.Bd -literal -offset indent
+\&.Nm filter
+\&.Op Fl flag
+\&.Ao Ar infile Ac Ao Ar outfile Ac
+.Ed
+.Pp
+.
+3 番目のケースでは、コマンドの説明や構文に上記の例の両方が使われ、
+さらに細かい記述が追加されるでしょう。
+上の例での引数
+.Ao Ar infile Ac
+および
+.Ao Ar outfile Ac
+は
+.Em オペランド
+もしくは
+.Em ファイル引数
+として参照されます。
+コマンド行の引数のリストはかなり長くなる場合もあります。
+.
+.Bd -ragged
+.Bl -tag -xwidth ".Nm make" -offset indent -compact
+.It 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 Ns = Ns Ar value
+.Bk
+.Op Ar target ...
+.Ek
+.El
+.Ed
+.Pp
+.
+ここではコマンド
+.Nm make
+について記述しており、
+.Ar makefile
+をフラグ
+.Fl f
+の引数としています。
+またオプションのファイルオペランド
+.Ar target
+についても議論しています。
+言葉での説明では、こういった詳細な記述が混乱を防いでくれますが、
+.Nm \-mdoc
+パッケージにはフラグ
+.Em への
+引数のためのマクロがありません。
+その代わりに
+.Ar target
+のようなオペランドやファイル引数に使われる引数マクロ
+.Ql \&Ar
+が
+.Ar variable
+のようなフラグへの引数と同様に使われます。
+この make コマンド行は次の指定により生成されています。
+.
+.Bd -literal -offset indent
+\&.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 Ns = Ns Ar value
+\&.Bk
+\&.Op Ar target ...
+\&.Ek
+.Ed
+.Pp
+.
+マクロ
+.Ql .Bk
+および
+.Ql .Ek
+は
+.Sx キープ
+セクションにおいて解説されています。
+.
+.Ss "一般的な構文"
+.
+マニュアル領域のマクロと一般テキスト領域のマクロとはいくつか
+小さな違いがあるものの、同様な構文を使用しています。とりわけ、
+.Ql .Ar ,
+.Ql .Fl ,
+.Ql .Nm ,
+および
+.Ql .Pa
+は引数なしで呼び出された時の違いしかありません。また、
+.Ql .Fn
+および
+.Ql .Xr
+は引数のリストの順番が異なります。
+すべてのコンテントマクロが句読点を認識し、それを正しく扱うには、
+各々の句読点文字が先行する空白で分離されている必要があります。
+次のように指定されている場合、
+.Pp
+.Dl \&.Ar sptr, ptr),
+.Pp
+その結果は以下のようになります。
+.Pp
+.Dl Ar sptr, ptr),
+.Pp
+ここでは句読点は認識されず、すべての出力は
+.Ql .Ar
+で使用されるフォントで行われています。
+句読点が空白文字で区切られている場合、
+.Pp
+.Dl \&.Ar "sptr , ptr ) ,"
+.Pp
+結果は以下のようになります。
+.Pp
+.Dl Ar sptr , ptr ) ,
+.Pp
+今度は句読点が認識され、出力はデフォルトのフォントで行われ
+引数文字列とは区別されています。
+句読点文字の特別な意味を取り除くには、
+.Ql \e&
+でエスケープしてください。
+.Pp
+.Xr troff
+はマクロ言語としての限界から、数学、論理学、もしくは以下の引用符の
+集合のメンバを含んだ文字列を表現するのは困難です。
+.
+.Bd -literal -offset indent-two
+{+,\-,/,*,%,<,>,<=,>=,=,==,&,`,',"}
+.Ed
+.Pp
+.
+問題なのは、
+.Xr troff
+が文字によって示唆されている操作もしくは評価を実際に行って
+いることです。
+これらの文字が予期しない形で評価されないようにするには、
+.Ql \e&
+でこれらをエスケープしてください。
+最初のコンテントマクロは、以下の
+.Ql .Ad
+において、その典型的な構文が示されています。
+.
+.
+.Sh "マニュアル領域"
+.
+.Ss アドレスマクロ
+.
+アドレスマクロはアドレス形式を識別します。
+.Pp
+.Dl 使い方: .Ad Ao address Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Ad\ f1\ ,\ f2\ ,\ f3\ :" -compact -offset 15n
+.It Li ".Ad addr1"
+.Ad addr1
+.It Li ".Ad addr1 ."
+.Ad addr1 .
+.It Li ".Ad addr1 , file2"
+.Ad addr1 , file2
+.It Li ".Ad f1 , f2 , f3 :"
+.Ad f1 , f2 , f3 :
+.It Li ".Ad addr ) ) ,"
+.Ad addr ) ) ,
+.El
+.Pp
+.
+デフォルトの文字幅は 12n です。
+.
+.Ss "作者名マクロ"
+.
+.Ql .An
+マクロは文書化されている項目の作者の名前、もしくは実際の
+マニュアルページの作者の名前を指定するために使われます。
+.Pp
+.Dl 使い方: .An Ao author name Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .An\ \*[q]Joe\ Author\*[q]\ )\ )\ ," -offset 15n
+.It Li ".An \*[q]Joe Author\*[q]"
+.An "Joe Author"
+.It Li ".An \*[q]Joe Author\*[q] ,"
+.An "Joe Author" ,
+.It Li ".An \*[q]Joe Author\*[q] Aq nobody@FreeBSD.org"
+.An "Joe Author" Aq nobody@FreeBSD.org
+.It Li ".An \*[q]Joe Author\*[q] ) ) ,"
+.An "Joe Author" ) ) ,
+.El
+.Pp
+.
+デフォルトの文字幅は 12n です。
+.Pp
+.Sx AUTHORS
+セクションでは、
+.Ql .An
+リクエストは改行を引き起こし、新しい名前がそれぞれの行に表示されます。
+この動作が望ましくない場合、
+.
+.Bd -literal -offset indent
+\&.An -nosplit
+.Ed
+.Pp
+.
+呼び出しで無効にできます。
+それぞれの行に表示させる動作に戻したい場合は、
+.
+.Bd -literal -offset indent
+\&.An -split
+.Ed
+呼び出しを使用します。
+.
+.Ss "引数マクロ"
+.
+引数マクロ
+.Li .Ar
+はコマンド行の引数を参照する際にはいつでも使用することができます。
+引数なしで呼ばれた場合、
+.Sq Ar
+が出力になります。
+.Pp
+.Dl 使い方: .Ar Oo Ao argument Ac Oc ...
+.Pp
+.Bl -tag -xwidth ".Li .Ar\ file1\ file2" -compact -offset 15n
+.It Li .Ar
+.Ar
+.It Li ".Ar file1"
+.Ar file1
+.It Li ".Ar file1 ."
+.Ar file1 .
+.It Li ".Ar file1 file2"
+.Ar file1 file2
+.It Li ".Ar f1 f2 f3 :"
+.Ar f1 f2 f3 :
+.It Li ".Ar file ) ) ,"
+.Ar file ) ) ,
+.El
+.Pp
+.
+デフォルト幅は 12n です。
+.
+.Ss "コンフィギュレーション宣言 (セクション 4 のみ)"
+.
+.Ql .Cd
+マクロはセクション 4 のマニュアルにおいて、デバイスインタフェースの
+.Xr config 8
+による宣言の説明に使われます。
+.Pp
+.Dl 使い方: .Cd Ao argument Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Cd\ Xdevice\ le0\ at\ scode?X" -offset 15n
+.It Li ".Cd \*[q]device le0 at scode?\*[q]"
+.Cd "device le0 at scode?"
+.El
+.Pp
+.Sx SYNOPSIS
+セクションでは
+.Ql .Cd
+リクエストはその引数が表示される前後で改行を入れます。
+.Pp
+.
+デフォルト幅は 12n です。
+.
+.Ss "コマンド修飾子"
+.
+コマンド修飾子は
+.Ql .Cm
+マクロがすべての引数の前にダッシュ文字を付けないことを除いて、
+.Ql .Fl
+(フラグ) コマンドと同じです。
+伝統的にフラグはダッシュ文字に引き続いて指定されますが、
+この方法を使わないコマンドやコマンドのサブセットもあります。
+コマンド修飾子はエディタコマンドのような対話的なコマンドでも
+指定されることがあります。
+.Sx フラグ
+セクションを参照してください。
+.Pp
+デフォルト幅は 10n です。
+.
+.Ss "定義済みの変数"
+.
+インクルードファイルにおいて定義されている変数 (もしくは定数) は
+マクロ
+.Ql .Dv
+によって指定します。
+.Pp
+.Dl 使い方: .Dv Ao defined variable Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Dv\ MAXHOSTNAMELEN" -compact -offset 15n
+.It Li ".Dv MAXHOSTNAMELEN"
+.Dv MAXHOSTNAMELEN
+.It Li ".Dv TIOCGPGRP )"
+.Dv TIOCGPGRP )
+.El
+.Pp
+.
+デフォルト幅は 12n です。
+.
+.Ss errno
+.
+.Ql .Er
+errno マクロは、セクション 2, 3, 9 のライブラリルーチンにおける
+エラーの戻り値を指定します。
+下記の 2 番目の例では
+.Ql .Er
+は一般テキスト領域マクロである
+.Ql .Bq
+(これはセクション 2 のマニュアルページで使われています) と共に
+使われています。
+.Pp
+.Dl 使い方: .Er Ao errno type Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Bq\ Er\ ENOTDIR" -compact -offset 15n
+.It Li ".Er ENOENT"
+.Er ENOENT
+.It Li ".Er ENOENT ) ;"
+.Er ENOENT ) ;
+.It Li ".Bq Er ENOTDIR"
+.Bq Er ENOTDIR
+.El
+.Pp
+.
+デフォルト幅は 17n です。
+.
+.Ss "環境変数"
+.
+.Ql .Ev
+マクロは環境変数を指定します。
+.Pp
+.Dl 使い方: .Ev Ao argument Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Ev\ PRINTER\ )\ )\ ," -compact -offset 15n
+.It Li ".Ev DISPLAY"
+.Ev DISPLAY
+.It Li ".Ev PATH ."
+.Ev PATH .
+.It Li ".Ev PRINTER ) ) ,"
+.Ev PRINTER ) ) ,
+.El
+.Pp
+.
+デフォルト幅は 15n です。
+.
+.Ss フラグ
+.
+.Ql .Fl
+マクロはコマンド行のフラグを扱います。
+フラグの前にはダッシュ
+.Ql \-
+が挿入されます。
+対話的なコマンドのフラグでは、ダッシュがフラグの前には
+挿入されませんが、
+.Ql .Cm
+(コマンド修飾子) マクロは、ダッシュを付けないことを除いて
+同じ働きをします。
+.Pp
+.Dl 使い方: .Fl Ao argument Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Fl\ xyz\ )\ ," -compact -offset 15n
+.It Li .Fl
+.Fl
+.It Li ".Fl cfv"
+.Fl cfv
+.It Li ".Fl cfv ."
+.Fl cfv .
+.It Li ".Cm cfv ."
+.Cm cfv .
+.It Li ".Fl s v t"
+.Fl s v t
+.It Li ".Fl \- ,"
+.Fl \- ,
+.It Li ".Fl xyz ) ,"
+.Fl xyz ) ,
+.It Li ".Fl |"
+.Fl |
+.El
+.Pp
+引数なしで
+.Ql .Fl
+マクロを指定すると、標準入力/標準出力を意味するダッシュとなります。
+.Ql .Fl
+マクロにダッシュを 1 つ与えると、2 つダッシュとなることに
+注意して下さい。
+.Pp
+デフォルト幅は 12n です。
+.
+.Ss "関数の宣言"
+.
+.Ql .Fd
+マクロは
+.Sx SYNOPSIS
+セクションにおいて、セクション 2 または 3 の関数の説明で使われます。
+このマクロは呼び出し不可能であり、解析されることもありません。
+.Pp
+.Dl 使い方: .Fd Ao argument Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Fd\ X#include\ <sys/types.h>X" -compact -offset 15n
+.It Li ".Fd \*[q]#include <sys/types.h>\*[q]"
+.Fd "#include <sys/types.h>"
+.El
+.Pp
+.Sx SYNOPSIS
+セクションでは、
+関数がすでに示されており、改行がまだされていない場合には
+.Ql .Fd
+リクエストは改行を入れます。
+これによって前の関数呼び出しと次の関数の宣言の間に
+最適な行間が設定されます。
+.
+.Pp
+.Ql .In
+.Li ( #include
+statement)
+マクロは、以上の例を短く記述したものです。
+このマクロは C プログラム中でインクルードされる
+C ヘッダファイルを指定します。
+このマクロも改行を挿入し、
+呼び出し不可能であり、解析されることもありません。
+.Pp
+.Dl 使い方: .In Ao header file Ac
+.Pp
+.Bl -tag -xwidth ".Li .In\ stdio.h" -compact -offset 15n
+.It Li ".In stdio.h"
+.In stdio.h
+.El
+.
+.Ss "関数の型"
+.
+このマクロは
+.Sx SYNOPSIS
+セクションで使うものです。
+マニュアルページ中の他の場所でも問題なく使うことができますが、
+セクション 2 と 3 の
+.Sx SYNOPSIS
+セクションにおいてカーネルの通常の形式で関数の型を示すことが
+このマクロの目的です
+(このマクロは関数名が次の行に置かれるように改行を挿入します)。
+.Pp
+.Dl 使い方: .Ft Ao type Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Ft\ struct\ stat" -compact -offset 15n
+.It Li ".Ft struct stat"
+.Ft struct stat
+.El
+.
+.Ss "関数 (ライブラリルーチン)"
+.
+.Ql .Fn
+マクロは
+.Tn ANSI\~C
+の記法を規範としています。
+.Pp
+.Dl 使い方: .Fn Ao function Ac Oo Ao parameter Ac Oc ...
+.Pp
+.Bl -tag -xwidth ".Li .Fn\ align\ Xchar\ *ptrX\ ," -compact -offset 15n
+.It Li ".Fn getchar"
+.Fn getchar
+.It Li ".Fn strlen ) ,"
+.Fn strlen ) ,
+.It Li ".Fn align \*[q]char *ptr\*[q] ,"
+.Fn align "char *ptr" ,
+.El
+.Pp
+他のマクロを呼び出すと
+.Ql .Fn
+呼び出しの終了を意味することに注意してください
+(閉じ括弧がその時点で挿入されます)。
+.Pp
+多くのパラメータをとる関数 (これは滅多にないことですが) では、
+.Ql .Fo
+マクロ (関数オープン) と
+.Ql .Fc
+マクロ (関数クローズ) を
+.Ql .Fa
+(関数引数) と共に使って、この制限を回避することができます。
+.Pp
+使用例:
+.
+.Bd -literal -offset indent
+\&.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
+.Ed
+.Pp
+.
+生成結果:
+.
+.Bd -ragged -offset indent
+.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
+.Ed
+.Pp
+.
+.Sx SYNOPSIS
+セクションでは、関数は常に行の先頭から開始されます。
+.Sx SYNOPSIS
+セクションにおいて複数の関数が示されており、関数の型が
+示されない場合、改行が挿入され、現在の関数名とその前の
+関数名の間に最適な改行量が設定されます。
+.Pp
+.Ql .Fn
+および
+.Ql .Fo
+のデフォルト幅の値はそれぞれ 12n と 16n です。
+.
+.Ss "関数の引数"
+.
+.Ql .Fa
+マクロは関数の引数 (パラメータ) を
+マニュアルの
+.Sx SYNOPSIS
+のセクション外で参照する場合、あるいは
+.Ql .Fn
+の代わりに
+.Ql .Fo
+および
+.Ql .Fc
+囲いマクロを使用した場合には
+.Sx SYNOPSIS
+のセクション内で参照する場合にも使われます。
+.Ql .Fa
+は構造体のメンバを参照する場合にも使われます。
+.Pp
+.Dl 使い方: .Fa Ao function argument Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Fa\ d_namlen\ )\ )\ ," -compact -offset 15n
+.It Li ".Fa d_namlen ) ) ,"
+.Fa d_namlen ) ) ,
+.It Li ".Fa iov_len"
+.Fa iov_len
+.El
+.Pp
+.
+デフォルト幅は 12n です。
+.
+.Ss "戻り値"
+.
+.Ql .Rv
+マクロは
+.Sx RETURN VALUES
+のセクションで使うテキストを生成します。
+.Pp
+.Dl 使い方: .Rv Oo -std Oc Ao function Ac ...
+.Pp
+例えば、
+.Ql ".Rv -std atexit"
+は次のテキストを生成します。
+.
+.Bd -ragged -offset indent
+\# a small hack to suppress a warning message
+.ds section-old "\*[section]
+.ds section 2
+.Rv -std atexit
+.ds section "\*[section-old]
+.Ed
+.Pp
+.
+.Fl std
+オプションはセクション 2 と 3 のマニュアルページでのみ有効です。
+現在のところ、このマクロは
+.Fl std
+フラグなしで使用しても何も起こりません。
+.
+.Ss "対話的なコマンド"
+.
+.Ql .Ic
+マクロは対話的なコマンド、もしくは内部コマンドを指定します。
+.Pp
+.Dl 使い方: .Ic Ao argument Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Ic\ setenv\ ,\ unsetenv" -compact -offset 15n
+.It Li ".Ic :wq"
+.Ic :wq
+.It Li ".Ic \*[q]do while {...}\*[q]"
+.Ic "do while {...}"
+.It Li ".Ic setenv , unsetenv"
+.Ic setenv , unsetenv
+.El
+.Pp
+.
+デフォルト幅は 12n です。
+.
+.Ss "ライブラリ名"
+.
+.Ql .Lb
+マクロは、関数がどのライブラリに組み込まれるかを指定します。
+.Pp
+.Dl 使い方: .Lb Ao argument Ac ...
+.Pp
+.Ql .Lb
+マクロに対して使用可能な引数と結果は次の通りです:
+.
+.Pp
+.Bl -tag -xwidth ".Li libossaudio" -compact -offset indent
+.It Li libarm32
+.Lb libarm32
+.It Li libc
+.Lb libc
+.It Li libcompat
+.Lb libcompat
+.It Li libcrypt
+.Lb libcrypt
+.It Li libcurses
+.Lb libcurses
+.It Li libedit
+.Lb libedit
+.It Li libi386
+.Lb libi386
+.It Li libipsec
+.Lb libipsec
+.It Li libkvm
+.Lb libkvm
+.It Li libm
+.Lb libm
+.It Li libmenu
+.Lb libmenu
+.It Li libossaudio
+.Lb libossaudio
+.It Li libposix
+.Lb libposix
+.It Li libresolv
+.Lb libresolv
+.It Li libtermcap
+.Lb libtermcap
+.It Li libutil
+.Lb libutil
+.It Li libz
+.Lb libz
+.El
+.Pp
+.
+ローカルマシンや OS 特有の追加項目については、ファイル
+.Pa mdoc.local
+で見つかります。
+.Ql str-Lb-XXX
+という名前の文字列を検索してください。そのため
+.Ql XXX
+は
+.Ql .Lb
+マクロとともに使用されるキーワードを示すことになります。
+.
+.Ss リテラル
+.
+リテラルマクロ
+.Ql .Li
+は特殊文字や変数定数、その他タイプされた通りに表示する必要があるものに
+使用することができます。
+.Pp
+.Dl 使い方: .Li Ao argument Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Li\ cntrl-D\ )\ ," -compact -offset 15n
+.It Li ".Li \een"
+.Li \en
+.It Li ".Li M1 M2 M3 ;"
+.Li M1 M2 M3 ;
+.It Li ".Li cntrl-D ) ,"
+.Li cntrl-D ) ,
+.It Li ".Li 1024 ..."
+.Li 1024 ...
+.El
+.Pp
+.
+デフォルト幅は 16n です。
+.
+.Ss 名称
+.
+.Ql .Nm
+マクロは文書のタイトルやサブジェクト名を指定するために使われます。
+このマクロは呼び出された時の第 1 引数を覚えておくという
+変わった特性を持っており、
+それは常にそのページのサブジェクト名であるべきです。
+引数なしで呼び出されると
+.Ql .Nm
+は作者の作業を少なくするためだけの目的で、最初の名称を出力します。
+注:
+セクション 2 または 3 のドキュメントの関数名は
+.Sx NAME
+セクションにおいて
+.Ql .Nm
+で指定され、
+.Sx SYNOPSIS
+セクションや残りのセクションでは
+.Ql .Fn
+で指定されます。
+.Xr csh 1
+での
+.Ql while
+コマンドのキーワードのような対話的なコマンドでは
+.Ql .Ic
+マクロを使う必要があります。
+.Ql .Ic
+はほとんど
+.Ql .Nm
+と同一ですが、
+それが使われたときの第 1 引数を記憶することはできません。
+.Pp
+.Dl 使い方: .Nm Oo Ao argument Ac Oc ...
+.Pp
+.Bl -tag -xwidth ".Li .Nm\ groff_mdoc" -compact -offset 15n
+.It Li ".Nm groff_mdoc"
+.Nm groff_mdoc
+.It Li ".Nm \e-mdoc"
+.Nm \-mdoc
+.It Li ".Nm foo ) ) ,"
+.Nm foo ) ) ,
+.It Li ".Nm :"
+.Nm :
+.El
+.Pp
+.
+デフォルト幅は 10n です。
+.
+.Ss オプション
+.
+.Ql .Op
+マクロはコマンド行の残りのすべての引数を
+オプションであることを示す角括弧で囲み、
+末尾の句読点は角括弧の外に置きます。
+.Ql .Oo
+マクロと
+.Ql .Oc
+マクロ (それぞれ開き角括弧と閉じ角括弧を生成します) は
+複数行に渡って使うことができ、また閉じ括弧の正確な位置を
+指定するのに使うことができます。
+.Pp
+.Dl 使い方: .Op Oo Ao option Ac Oc ...
+.Pp
+.Bl -tag -xwidth ".Li .Op\ Fl\ c\ Ar\ objfil\ Op\ Ar\ corfil\ ," -compact -offset 15n
+.It Li .Op
+.Op
+.It Li ".Op Fl k"
+.Op Fl k
+.It Li ".Op Fl k ) ."
+.Op Fl k ) .
+.It Li ".Op Fl k Ar kookfile"
+.Op Fl k Ar kookfile
+.It Li ".Op Fl k Ar kookfile ,"
+.Op Fl k Ar kookfile ,
+.It Li ".Op Ar objfil Op Ar corfil"
+.Op Ar objfil Op Ar corfil
+.It Li ".Op Fl c Ar objfil Op Ar corfil ,"
+.Op Fl c Ar objfil Op Ar corfil ,
+.It Li ".Op word1 word2"
+.Op word1 word2
+.It Li ".Li .Op Oo Ao option Ac Oc ..."
+.Li .Op Oo Ao options Ac Oc ...
+.El
+.Pp
+これは、
+.Ql .Oo
+マクロと
+.Ql .Oc
+マクロを使った典型的な例です:
+.
+.Bd -literal -offset indent
+\&.Oo
+\&.Op Fl k Ar kilobytes
+\&.Op Fl i Ar interval
+\&.Op Fl c Ar count
+\&.Oc
+.Ed
+.Pp
+.
+出力結果:
+.
+.Bd -filled -offset indent
+.Oo
+.Op Fl k Ar kilobytes
+.Op Fl i Ar interval
+.Op Fl c Ar count
+.Oc
+.Ed
+.Pp
+.
+.Ql .Op
+マクロおよび
+.Ql .Oo
+マクロのデフォルト幅はそれぞれ
+14n と 10n です。
+.
+.Ss パス名
+.
+.Ql .Pa
+マクロはパス名もしくはファイル名を整形します。
+引数なしで呼ばれた場合、
+.Sq Pa
+文字列が出力となり、これは現在のユーザのホームディレクトリを
+表しています。
+.Pp
+.Dl 使い方: .Pa Oo Ao pathname Ac Oc ...
+.Pp
+.Bl -tag -xwidth ".Li .Pa\ /tmp/fooXXXXX\ )\ ." -compact -offset 15n
+.It Li .Pa
+.Pa
+.It Li ".Pa /usr/share"
+.Pa /usr/share
+.It Li ".Pa /tmp/fooXXXXX ) ."
+.Pa /tmp/fooXXXXX ) .
+.El
+.Pp
+.
+デフォルト幅は 32n です。
+.
+.Ss 規格
+.
+.Ql .St
+マクロは、規格の短縮名称を正式名称に置換します。
+.Pp
+.Dl 使い方: .St Ao abbreviation Ac ...
+.Pp
+使用可能な
+.Dq 短縮名称/正式名称
+の組は次の通りです:
+.
+.Pp
+.Tn ANSI/ISO C
+.Pp
+.Bl -tag -xwidth ".Li -iso9945-1-90" -compact -offset indent
+.It Li -ansiC
+.St -ansiC
+.It Li -ansiC-89
+.St -ansiC-89
+.It Li -isoC
+.St -isoC
+.It Li -isoC-99
+.St -isoC-99
+.El
+.Pp
+.
+.Tn POSIX
+パート 1: System API
+.Pp
+.Bl -tag -xwidth ".Li -p1003.1g-2000" -compact -offset indent
+.It Li -iso9945-1-90
+.St -iso9945-1-90
+.It Li -iso9945-1-96
+.St -iso9945-1-96
+.It Li -p1003.1
+.St -p1003.1
+.It Li -p1003.1-88
+.St -p1003.1-88
+.It Li -p1003.1-90
+.St -p1003.1-90
+.It Li -p1003.1-96
+.St -p1003.1-96
+.It Li -p1003.1b-93
+.St -p1003.1b-93
+.It Li -p1003.1c-95
+.St -p1003.1c-95
+.It Li -p1003.1g-2000
+.St -p1003.1g-2000
+.It Li -p1003.1i-95
+.St -p1003.1i-95
+.El
+.Pp
+.
+.Tn POSIX
+パート 2: シェルとユーティリティ
+.Pp
+.Bl -tag -xwidth ".Li -p1003.1g-2000" -compact -offset indent
+.It Li -iso9945-2-93
+.St -iso9945-2-93
+.It Li -p1003.2
+.St -p1003.2
+.It Li -p1003.2-92
+.St -p1003.2-92
+.It Li -p1003.2a-92
+.St -p1003.2a-92
+.El
+.Pp
+.
+X/Open
+.Bl -tag -xwidth ".Li -p1003.1g-2000" -compact -offset indent
+.Pp
+.It Li -susv2
+.St -susv2
+.It Li -svid4
+.St -svid4
+.It Li -xbd5
+.St -xbd5
+.It Li -xcu5
+.St -xcu5
+.It Li -xcurses4.2
+.St -xcurses4.2
+.It Li -xns5
+.St -xns5
+.It Li -xns5.2
+.St -xns5.2
+.It Li -xpg3
+.St -xpg3
+.It Li -xpg4
+.St -xpg4
+.It Li -xpg4.2
+.St -xpg4.2
+.It Li -xsh5
+.St -xsh5
+.El
+.Pp
+.
+その他
+.Pp
+.Bl -tag -xwidth ".Li -p1003.1g-2000" -compact -offset indent
+.It Li -ieee754
+.St -ieee754
+.It Li -iso8802-3
+.St -iso8802-3
+.El
+.
+.Ss "変数の型"
+.
+.Ql .Vt
+マクロは型を参照するときにはいつでも使用することができます。
+.Sx SYNOPSIS
+セクションでは改行が挿入されます
+(古いスタイルの変数宣言では便利です)。
+.Pp
+.Dl 使い方: .Vt Ao type Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Vt\ extern\ char\ *optarg\ ;" -compact -offset 15n
+.It Li ".Vt extern char *optarg ;"
+.Vt extern char *optarg ;
+.It Li ".Vt FILE *"
+.Vt FILE *
+.El
+.
+.Ss 変数
+.
+一般的な変数への参照です。
+.Pp
+.Dl 使い方: .Va Ao variable Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Va\ Xchar\ sX\ ]\ )\ )\ ," -compact -offset 15n
+.It Li ".Va count"
+.Va count
+.It Li ".Va settimer ,"
+.Va settimer ,
+.It Li ".Va \*[q]int *prt\*[q] ) :"
+.Va "int *prt" ) :
+.It Li ".Va \*[q]char s\*[q] ] ) ) ,"
+.Va "char s" ] ) ) ,
+.El
+.Pp
+.
+デフォルト幅は 12n です。
+.
+.Ss "マニュアルページのクロスリファレンス"
+.
+.Ql .Xr
+マクロは最初の引数にマニュアルページの名称をとります。
+オプションである第 2 引数は、文字列
+(マニュアルセクションを定義します) であれば
+括弧で囲われます。
+.Pp
+.Dl 使い方: .Xr Ao man page name Ac Oo Ao section Ac Oc ...
+.Pp
+.Bl -tag -xwidth ".Li .Xr\ xinit\ 1x\ ;" -compact -offset 15n
+.It Li ".Xr mdoc"
+.Xr mdoc
+.It Li ".Xr mdoc ,"
+.Xr mdoc ,
+.It Li ".Xr mdoc 7"
+.Xr mdoc 7
+.It Li ".Xr xinit 1x ;"
+.Xr xinit 1x ;
+.El
+.Pp
+.
+デフォルト幅は 10n です。
+.
+.
+.Sh "一般テキスト領域"
+.
+.Ss "AT&T マクロ"
+.
+.Pp
+.Dl 使い方: .At Oo Ao version Ac Oc ...
+.Pp
+.Bl -tag -xwidth ".Li .At\ v6\ ." -compact -offset 15n
+.It Li .At
+.At
+.It Li ".At v6 ."
+.At v6 .
+.El
+.Pp
+.Ao version Ac
+には次の値をとることができます:
+.Pp
+.Dl 32v, v1, v2, v3, v4, v5, v6, v7, V, V.1, V.2, V.3, V.4
+.
+.Ss "BSD マクロ"
+.
+.Pp
+.Dl "使い方: .Bx" Bro -alpha | -beta | -devel Brc ...
+.Dl " .Bx" Oo Ao version Ac Oo Ao release Ac Oc Oc ...
+.Pp
+.Bl -tag -xwidth ".Li .Bx\ -devel" -compact -offset 15n
+.It Li .Bx
+.Bx
+.It Li ".Bx 4.3 ."
+.Bx 4.3 .
+.It Li ".Bx \-devel"
+.Bx -devel
+.El
+.Pp
+.Ao version Ac
+が文字列
+.Sq Bx
+の前につきます。
+.Ao release Ac
+には次の値をとることができます:
+.Pp
+.Dl Reno, reno, Tahoe, tahoe, Lite, lite, Lite2, lite2
+.
+.Ss "NetBSD マクロ"
+.
+.Pp
+.Dl 使い方: .Nx Oo Ao version Ac Oc ...
+.Pp
+.Bl -tag -xwidth ".Li .Nx\ 1.4\ ." -compact -offset 15n
+.It Li .Nx
+.Nx
+.It Li ".Nx 1.4 ."
+.Nx 1.4 .
+.El
+.Pp
+.Ao version Ac
+にとり得る値については前述の
+.Sx "タイトルマクロ"
+セクションの
+.Ql .Os
+リクエストの説明を参照してください。
+.
+.Ss "FreeBSD マクロ"
+.
+.Pp
+.Dl 使い方: .Fx Oo Ao version Ac Oc ...
+.Pp
+.Bl -tag -xwidth ".Li .Fx\ 2.2\ ." -compact -offset 15n
+.It Li .Fx
+.Fx
+.It Li ".Fx 2.2 ."
+.Fx 2.2 .
+.El
+.Pp
+.Ao version Ac
+にとり得る値については前述の
+.Sx "タイトルマクロ"
+セクションの
+.Ql .Os
+リクエストの説明を参照してください。
+.
+.Ss "OpenBSD マクロ"
+.
+.Pp
+.Dl 使い方: .Ox Oo Ao version Ac Oc ...
+.Pp
+.Bl -tag -xwidth ".Li .Ox\ 1.0" -compact -offset 15n
+.It Li ".Ox 1.0"
+.Ox 1.0
+.El
+.
+.Ss "BSD/OS マクロ"
+.
+.Pp
+.Dl 使い方: .Bsx Oo Ao version Ac Oc ...
+.Pp
+.Bl -tag -xwidth ".Li .Bsx\ 1.0" -compact -offset 15n
+.It Li ".Bsx 1.0"
+.Bsx 1.0
+.El
+.
+.Ss "UNIX マクロ"
+.
+.Pp
+.Dl 使い方: .Ux ...
+.Pp
+.Bl -tag -xwidth ".Li .Ux" -compact -offset 15n
+.It Li .Ux
+.Ux
+.El
+.
+.Ss "強調マクロ"
+.
+テキストは
+.Ql .Em
+マクロを用いて強調することができます。
+通常強調に用いられるフォントはイタリック体です。
+.Pp
+.Dl 使い方: .Em Ao argument Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Em\ vide\ infra\ )\ )\ ," -compact -offset 15n
+.It Li ".Em does not"
+.Em does not
+.It Li ".Em exceed 1024 ."
+.Em exceed 1024 .
+.It Li ".Em vide infra ) ) ,"
+.Em vide infra ) ) ,
+.El
+.Pp
+.
+デフォルト幅は 10n です。
+.
+.Ss "フォントモード"
+.
+.Ql .Bf
+フォントモードは
+.Ql .Ef
+マクロで終了しなくてはなりません (後者のマクロは引数をとりません)。
+フォントモードは別のフォントモード内に入れ子にできます。
+.Pp
+.Ql .Bf
+は次の文法をもっています:
+.Pp
+.Dl .Bf Ao font mode Ac
+.Pp
+.Ao font mode Ac
+は次の 3 種類のうちのいずれかでなくてはなりません。
+.Pp
+.Bl -tag -xwidth ".Sy \&Sy | Fl symbolic" -compact -offset indent
+.It Sy \&Em | Fl emphasis
+.Ql .Em
+マクロがテキスト全体のブロックに対して使用された場合と
+同じになります。
+.Ql .Em
+.It Sy \&Li | Fl literal
+.Ql .Li
+マクロがテキスト全体のブロックに対して使用された場合と
+同じになります。
+.It Sy \&Sy | Fl symbolic
+.Ql .Sy
+マクロがテキスト全体のブロックに対して使用された場合と
+同じになります。
+.El
+.Pp
+いずれのマクロも呼び出し不可能であり、解析もされません。
+.
+.Ss "囲い/クォートマクロ"
+.
+囲いの概念はクォートと似たものです。
+1 つ以上の文字列が引用符や括弧のような文字のペアで囲まれている
+オブジェクトを指します。
+クォートと囲いという用語はこの文書を通して同じ意味で使われます。
+ほとんどの 1 行の囲いマクロはクォートのヒントとするために、
+小文字の
+.Ql q
+で終了しますが、いくつかの例外があります。
+各々の囲いマクロに対し、開始マクロと終了マクロのペアもあり、
+それぞれ小文字の
+.Ql o
+と
+.Ql c
+で終了します。
+.Pp
+\# XXX
+.if t \
+. ne 10
+.
+.Bd -filled -offset 4n
+.Bl -column "クォート" "終了" "開始" "カギ括弧による囲い" "`文字列' もしくは 文字列"
+.Em クォート Ta Em 開始 Ta Em 終了 Ta Em 機能 Ta Em 結果
+.No .Aq Ta .Ao Ta .Ac Ta "カギ括弧による囲い" Ta Ao 文字列 Ac
+.No .Bq Ta .Bo Ta .Bc Ta "角括弧による囲い" Ta Bo 文字列 Bc
+.No .Brq Ta .Bro Ta .Brc Ta "中括弧による囲い" Ta Bro 文字列 Brc
+.No .Dq Ta .Do Ta .Dc Ta "2 重引用符" Ta Do 文字列 Dc
+.No .Eq Ta .Eo Ta .Ec Ta "囲い文字列 (XX による)" Ta XX文字列XX
+.No .Pq Ta .Po Ta .Pc Ta "括弧による囲い" Ta Po 文字列 Pc
+.No .Ql Ta Ta Ta "クォートされたリテラル" Ta So 文字列 Sc もしくは Li 文字列
+.No .Qq Ta .Qo Ta .Qc Ta "まっすぐな 2 重引用符" Ta Qo 文字列 Qc
+.No .Sq Ta .So Ta .Sc Ta "1 重引用符" Ta So 文字列 Sc
+.El
+.Ed
+.Pp
+.Sq q
+および
+.Sq o
+で終わるマクロはすべてデフォルト幅が 12n です。
+.
+.Bl -tag -xwidth ".Li .Ec , .Eo"
+.It Li .Eo , .Ec
+これらのマクロはそれぞれ第 1 引数に囲い始めに使う文字列と
+囲い終わりに使う文字列をとります。
+.It Li .Es , .En
+オリジナルの troff プログラムでは、引数の数が 9 つまでという
+制限がありましたので、これらのマクロの他に 2 つマクロが
+実装されています。現在は非推奨になっています。
+.Ql .Es
+は第 1 引数と第 2 引数に左囲い文字列および右囲い文字列を
+とります。この文字列は、
+.Ql .En
+の引数を囲うのに使用されます。
+デフォルト幅は、どちらのマクロも 12n です。
+.It Li .Eq
+このマクロの第 1、第 2 引数はそれぞれ囲い始めに使う文字列と
+囲い終わりに使う文字列であり、この文字列の後に
+囲われる引数が続きます。
+.It Li .Ql
+クォートされたリテラルマクロは troff モードと nroff モードで
+違った挙動をします。
+.Xr nroff
+で整形された場合、
+クォートされたリテラルは常にクォートされます。
+troff で整形された場合、その要素の幅が 3 固定幅文字の幅よりも
+小さいときのみクォートされます。
+これにより、リテラル (固定幅) フォントへフォントを変更すると
+目立たなくなってしまうような短い文字列がより見やすくなります。
+.Pp
+デフォルト幅は 16n です。
+.It Li .Pf
+プレフィックスマクロは第 1 引数と第 2 引数の間の
+ホワイトスペースをなくします:
+.
+.Bl -tag -xwidth ".Li .Pf\ (\ Fa\ name2" -offset indent
+.It Li ".Pf ( Fa name2"
+.Pf ( Fa name2
+.El
+.Pp
+.
+デフォルト幅は 12n です。
+.Pp
+.Ql .Ns
+マクロ (後述参照) はサフィックス機能と同等です。
+.It Li .Ap
+.Ql .Ap
+マクロはアポストロフィを追加し、特別なテキストモードから
+抜けます。そして
+.Ql .No
+を続けます。
+.El
+.Pp
+.
+クォートの例:
+.
+.Pp
+.Bl -tag -xwidth ".Li .Bq\ Em\ Greek\ ,\ French\ ." -compact -offset indent
+.It Li .Aq
+.Aq
+.It Li ".Aq Pa ctype.h ) ,"
+.Aq Pa ctype.h ) ,
+.It Li .Bq
+.Bq
+.It Li ".Bq Em Greek , French ."
+.Bq Em Greek , French .
+.It Li .Dq
+.Dq
+.It Li ".Dq string abc ."
+.Dq string abc .
+.It Li ".Dq \'^[A-Z]\'"
+.Dq \'^[A-Z]\'
+.It Li ".Ql man mdoc"
+.Ql man mdoc
+.It Li .Qq
+.Qq
+.It Li ".Qq string ) ,"
+.Qq string ) ,
+.It Li ".Qq string Ns ),"
+.Qq string Ns ),
+.It Li .Sq
+.Sq
+.It Li ".Sq string"
+.Sq string
+.It Li ".Em or Ap ing"
+.Em or Ap ing
+.El
+.Pp
+.
+囲いマクロの入れ子についての良い例については、
+オプションマクロ
+.Ql .Op
+を参照してください。
+このマクロは上でリストされているような囲いマクロと同じベースの上に
+作られています。
+.Ql .Xo
+と
+.Ql .Xc
+拡張引数リストマクロについては後で述べます。
+.
+.Ss "no\-op もしくは通常テキストマクロ"
+.
+.Ql .No
+マクロは、マクロコマンド行において整形されては
+.Em ならない
+パラメータ用に使用できます。
+英単語 (かつ、マクロでないもの) をパラメータとして
+本当に使いたい場合は、その単語
+.Ql \&No
+に
+.Ql \e&
+を足すように注意してください。
+.Pp
+.Dl 使い方: .No Ao argument Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .No\ test\ Ta\ with\ Ta\ tabs" -compact -offset 15n
+.It Li ".No test Ta with Ta tabs"
+.No test Ta with Ta tabs
+.El
+.Pp
+.
+デフォルト幅は 12n です。
+.
+.Ss "空白なしマクロ"
+.
+.Ql .Ns
+マクロは、現在の位置とマクロの第 1 パラメータとの間に
+空白を挿入するのを抑止します。
+例えば、フラグと引数の間に空白を含まない古いスタイルの
+引数リストを使う場合に便利です:
+.Pp
+.Dl "使い方:" ... Ao argument Ac \&Ns Oo Ao argument Ac Oc ...
+.Dl " " .Ns Ao argument Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Op\ Fl\ I\ Ns\ Ar\ directory" -compact -offset 15n
+.It Li ".Op Fl I Ns Ar directory"
+.Op Fl I Ns Ar directory
+.El
+.Pp
+注:
+.Ql .Ns
+マクロは他のマクロ名が続かなければ、スペースを除去したあとに
+.Ql .No
+マクロを常に起動します。
+リクエストとして使用される場合 (つまり、
+.Sq 使い方
+の行での 2 番目の形式です)、
+.Ql .Ns
+マクロは
+.Ql .No
+と同一です。
+.
+.Ss "セクションのクロスリファレンス"
+.
+.Ql .Sx
+マクロは同一文書内でのセクションのヘッダへの参照を指定します。
+.Pp
+.Dl 使い方: .Sx Ao section reference Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Sx\ FILES" -offset 15n
+.It Li ".Sx FILES"
+.Sx FILES
+.El
+.Pp
+.
+デフォルト幅は 16n です。
+.
+.Ss 記号
+.
+記号体強調マクロは、記号の意味でも伝統的な英語の
+使い方においても通常はボールド体マクロとなっています。
+.Pp
+.Dl 使い方: .Sy Ao symbol Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Sy\ Important\ Notice" -compact -offset 15n
+.It Li ".Sy Important Notice"
+.Sy Important Notice
+.El
+.Pp
+.
+デフォルト幅は 6n です。
+.
+.Ss 数式記号
+.
+数式記号やそれに似たものについては、このマクロを使用して
+ください。
+.Pp
+.Dl 使い方: .Ms Ao math symbol Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Ms\ sigma" -compact -offset 15n
+.It Li ".Ms sigma"
+.Ms sigma
+.El
+.Pp
+.
+デフォルト幅は 6n です。
+.
+.Ss "参考文献と引用"
+.
+次のマクロは多少なりとも参考文献を扱えるようにと意図したものです。
+これらのマクロは、せいぜい
+.Xr refer 1
+スタイルの参考文献のサブセットを手動で
+作成しやすくする程度です。
+.Pp
+.Bl -tag -width 6n -offset indent -compact
+.It Li .Rs
+参考文献の開始 (引数はとりません)。
+.Sx "SEE ALSO"
+セクションでは改行を挿入し、参考文献の終了マクロが
+読み込まれるまで参考文献の情報を収集します。
+.It Li .Re
+参考文献の終了 (引数はとりません)。
+参考文献が表示されます。
+.It Li .%A
+参考文献の作者名。1 回の呼び出しにつき、作者名をひとつ指定します。
+.It Li .%B
+書籍のタイトル。
+.It Li .%C
+市 / 場所 (まだ実装されていません)。
+.It Li .%D
+日付。
+.It Li .%I
+発行者/出版社名。
+.It Li .%J
+定期刊行物の名称。
+.It Li .%N
+発行番号。
+.It Li .%O
+追加情報。
+.It Li .%P
+ページ番号。
+.It Li .%Q
+組織内部、あるいは外部の著者。
+.It Li .%R
+報告書の名称。
+.It Li .%T
+記事のタイトル。
+.It Li .%V
+巻数。
+.El
+.Pp
+.Ql %
+で始まるマクロは呼び出し不可能ですが、
+通常の方法で複数の引数をとることができます。
+パラメータとしては
+.Ql .Tn
+マクロのみ扱います。その他のマクロを使うと
+奇妙な出力が得られてしまいます。
+.Ql .%B
+および
+.Ql .%T
+を
+.Ql .Rs/.Re
+環境の外側では使用することができます。
+.Pp
+使用例:
+.
+.Bd -literal -offset indent
+\&.Rs
+\&.%A "Matthew Bar"
+\&.%A "John Foo"
+\&.%T "Implementation Notes on foobar(1)"
+\&.%R "Technical Report ABC-DE-12-345"
+\&.%Q "Drofnats College, Nowhere"
+\&.%D "April 1991"
+\&.Re
+.Ed
+.Pp
+出力結果
+.
+.Bd -ragged -offset indent
+.Rs
+.%A "Matthew Bar"
+.%A "John Foo"
+.%T "Implementation Notes on foobar(1)"
+.%R "Technical Report ABC-DE-12-345"
+.%Q "Drofnats College, Nowhere"
+.%D "April 1991"
+.Re
+.Ed
+.
+.Ss "商標名 (頭字語とタイプ名)"
+.
+商標名マクロは、引数をより小さなフォントで出力します。
+意図される使い方は、大文字の頭字語用に小さな大文字フォントを
+似せて作ることです。
+.Pp
+.Dl 使い方: .Tn Ao symbol Ac ...
+.Pp
+.Bl -tag -xwidth ".Li .Tn\ ASCII" -compact -offset 15n
+.It Li ".Tn DEC"
+.Tn DEC
+.It Li ".Tn ASCII"
+.Tn ASCII
+.El
+.Pp
+.
+デフォルト幅は 10n です。
+.
+.Ss "拡張引数"
+.
+.Li .Xo
+と
+.Li .Xc
+マクロによって、
+.Ql .It
+マクロ (後述) についてマクロ境界での引数リストを
+拡張することができます。
+.Li .Xo
+と
+.Li .Xc
+マクロは囲いを開いたり閉じたりする他のすべてのマクロに
+対して同じように実装されている (もちろん文字は挿入しません)
+ということに注意してください。
+つまり、次の例もこれらのマクロには当てはまります。
+.Pp
+次は、スペーシングをオフにするために
+空白モードマクロを使った
+.Ql .Xo
+の使用例です。
+.
+.Bd -literal -offset indent
+\&.Sm off
+\&.It Xo Sy I Ar operation
+\&.No \een Ar count No \een
+\&.Xc
+\&.Sm on
+.Ed
+.Pp
+.
+これは以下のような結果になります。
+.Bd -filled -offset indent
+.Bl -tag -compact
+.Sm off
+.It Xo Sy I Ar operation
+.No \en Ar count No \en
+.Xc
+.Sm on
+.El
+.Ed
+.Pp
+.
+例をもうひとつ:
+.
+.Bd -literal -offset indent
+\&.Sm off
+\&.It Cm S No / Ar old_pattern Xo
+\&.No / Ar new_pattern
+\&.No / Op Cm g
+\&.Xc
+\&.Sm on
+.Ed
+.Pp
+.
+これは以下のような結果になります。
+.
+.Bd -filled -offset indent
+.Bl -tag -compact
+.Sm off
+.It Cm S No \&/ Ar old_pattern Xo
+.No \&/ Ar new_pattern
+.No \&/ Op Cm g
+.Xc
+.Sm on
+.El
+.Ed
+.Pp
+.
+囲いマクロを使った
+.Ql .Xo
+の他の例:
+変数の値をテストして下さい。
+.
+.Bd -literal -offset indent
+\&.It Xo
+\&.Ic .ifndef
+\&.Oo \e&! Oc Ns Ar variable Oo
+\&.Ar operator variable ...
+\&.Oc Xc
+.Ed
+.Pp
+.
+結果は以下の通りです。
+.
+.Bd -filled -offset indent
+.Bl -tag -width flag -compact
+.It Xo
+.Ic .ifndef
+.Oo \&! Oc Ns Ar variable Oo
+.Ar operator variable ...
+.Oc Xc
+.El
+.Ed
+.Pp
+.
+.
+.Sh "ページ構造領域"
+.
+.Ss "セクションヘッダ"
+.
+次の
+.Ql .Sh
+セクションヘッダマクロは、すべてのマニュアルページで必須のものです。
+残りのセクションヘッダはマニュアルページの作者の裁量において、
+推奨されているものです。
+.Ql .Sh
+マクロは解析されますが、一般的には呼び出し不可能です。
+.Ql .Sh
+を呼び出すときだけは、このマクロは引数として使用することができます。
+この場合、
+.Ql .Sh
+用のデフォルトフォントを再度有効にします。
+.Pp
+デフォルト幅は 8n です。
+.
+.Bl -tag -xwidth ".Li .Sh\ RETURN\ VALUES"
+.It Li ".Sh NAME"
+.Ql ".Sh NAME (訳注: 名称)"
+マクロは必須です。
+これが指定されていないと、ヘッダとフッタ、それにデフォルトの
+ページレイアウトが設定されず、結果はかなり好ましくないものに
+なるでしょう。
+.Sx NAME
+セクションは最低 3 つの項目からなります。
+最初のものは名称マクロ
+.Ql .Nm
+であり、マニュアルページのサブジェクトとなります。
+2 番目のものは名称説明マクロ
+.Ql .Nd
+であり、サブジェクト名を 3 つめの項目、
+すなわちその名称の説明と分離します。
+説明に割り当てられるスペースは小さいものですので、
+できるだけ簡潔で分かりやすいものでなければなりません。
+.Pp
+.Ql .Nd
+最初の表示
+.Ql - ,
+そして引数すべて
+.
+.It Li ".Sh LIBRARY"
+このセクションは、セクション 2 および 3 の関数呼び出しの
+ためにあります。
+このセクションには、
+.Ql .Lb
+マクロ呼び出し 1 つのみが含まれている必要があります。
+.Sx "ライブラリ名"
+を参照してください。
+.
+.It Li ".Sh SYNOPSIS"
+.Sx SYNOPSIS (訳注: 書式)
+セクションはそのマニュアルページのサブジェクトとなっている項目の
+典型的な使用法を説明します。
+.Ql .Nm ,
+.Ql .Cd ,
+あるいは
+.Ql .Fn
+です
+(他には
+.Ql .Fo ,
+.Ql .Fc ,
+.Ql .Fd ,
+.Ql .Ft
+のマクロも必要な場合があります)。
+関数名マクロ
+.Ql .Fn
+はセクション 2 と 3 のマニュアルページにおいて必須のもので、
+コマンドと一般名称マクロ
+.Ql .Nm
+はセクション 1, 5, 6, 7, 8 で必須の項目です。
+セクション 4 のマニュアルでは
+.Ql .Nm
+か
+.Ql .Fd
+、もしくは設定デバイス使用法マクロ
+.Ql .Cd
+が必要です。
+その他のいくつかのマクロが次に示すような書式行を生成するために
+必要なことがあります:
+.
+.Bd -filled -offset indent
+.Nm cat
+.Op Fl benstuv
+.Op Fl
+.Ar
+.Ed
+.Pp
+.
+次のマクロが使われています:
+.Pp
+.Dl ".Nm cat"
+.Dl ".Op Fl benstuv"
+.Dl ".Op Fl"
+.Dl .Ar
+.
+.It Li ".Sh DESCRIPTION"
+ほとんどの場合、
+.Sx "DESCRIPTION (訳注: 解説)"
+での最初のテキストはそのコマンド、関数もしくは
+ファイルについての短い段落で、オプションの構文リストと
+それぞれの説明がそれに続きます。
+そのようなリストを作成するには
+.Ql .Bl
+(リスト開始マクロ)、
+.Ql .It
+(リスト項目マクロ)、
+.Ql .El
+(リスト終了マクロ)
+を使用します (後述の
+.Sx リストと列
+セクションを参照)。
+.
+.It Li ".Sh IMPLEMENTATION NOTES (訳注: 実装上の注意)"
+実装に特化した情報はここに置く必要があります。
+.
+.It Li ".Sh RETURN VALUES (訳注: 戻り値)"
+セクション 2, 3, 9 の関数の戻り値はここに来る必要があります。
+.Ql .Rv
+を使用して、セクション 2 および 3 のライブラリ関数の
+.Sx RETURN VALUES
+セクションを生成することができます。
+.Sx "戻り値"
+を参照してください。
+.El
+.Pp
+.
+次の
+.Ql .Sh
+セクションヘッダはマニュアルページの好ましいレイアウトの一部であり、
+一貫性を保つために適切に使われなければなりません。
+これらは使われる順番にリストされています。
+.
+.Bl -tag -xwidth ".Li .Sh\ COMPATIBILITY (訳注: 互換性)"
+.It Li ".Sh ENVIRONMENT (訳注: 環境変数)"
+.Sx ENVIRONMENT
+セクションでは関連する環境変数および
+それらの振るまいや使用方法に関する手がかりを明らかにする
+必要があります。
+.
+.It Li ".Sh FILES (訳注: 関連ファイル)"
+マニュアルページのサブジェクトによって使用されるか生成されるファイルで、
+.Sx FILES
+セクション中でマクロ
+.Ql .Pa
+によってリストする必要があります。
+.
+.It Li ".Sh EXAMPLES (訳注: 使用例)"
+使用例を生成するにはいくつか方法があります。
+詳細は後述の
+.Sx 使用例
+セクションを参照してください。
+.
+.It Li ".Sh DIAGNOSTICS (訳注: 診断)"
+コマンドからの診断メッセージはこのセクションに置く必要があります。
+.
+.It Li ".Sh COMPATIBILITY (訳注: 互換性)"
+知られている互換性の問題 (例えば、非推奨になったオプションや
+パラメータ) をここにリストする必要があります。
+.
+.It Li ".Sh ERRORS (訳注: エラー)"
+特定のエラーハンドリング、特にライブラリ関数
+(マニュアルページのセクション 2, 3, 9) でのエラーハンドリングは
+ここで説明する必要があります。
+.Ql .Er
+マクロはエラー (errno) を指定するのに使用されます。
+.
+.It Li ".Sh SEE ALSO (訳注: 関連項目)"
+.Sx "SEE ALSO"
+セクションには、そのマニュアルページの題材に関する資料への参照と
+他の関連するマニュアルページへのクロスリファレンスが記載されます。
+クロスリファレンスは
+.Ql .Xr
+マクロによって指定されます。
+現在、
+.Xr refer 1
+スタイルのリファレンスには適合していません。
+.Pp
+クロスリファレンスはセクション番号順に並べ、
+同一セクション中ではカンマで区切ってアルファベット順に並べることを
+推奨します。
+以下に例を示します:
+.Pp
+.Xr ls 1 ,
+.Xr ps 1 ,
+.Xr group 5 ,
+.Xr passwd 5
+.
+.It Li ".Sh STANDARDS (訳注: 規格)"
+コマンドやライブラリ関数やファイルが、
+.St -p1003.2
+や
+.St -ansiC
+のような特定の実装によるものであれば、ここで記述します。
+もしコマンドがどの規格にも基づいていなければ、その歴史は
+.Sx HISTORY
+のセクションで説明されなければなりません。
+.
+.It Li ".Sh HISTORY (訳注: 歴史)"
+特定の規格に基づいていないコマンドは、
+このセクションでその歴史の概要を説明する必要があります。
+.
+.It Li ".Sh AUTHORS (訳注: 作者)"
+クレジットはここに置く必要があります。
+人物名を指定するには
+.Ql .An
+マクロを使用する必要があります。
+.
+.It Li ".Sh BUGS (訳注: バグ)"
+あきらかな問題はここで記述します。
+.El
+.Pp
+.
+ユーザ指定の
+.Ql .Sh
+セクションを追加することができます。
+例えば、このセクションは以下のように設定されています。
+.
+.Bd -literal -offset 15n
+\&.Sh "ページ構造領域"
+.Ed
+.
+.Ss "サブセクションヘッダ"
+.
+サブセクションヘッダはセクションヘッダとまったく同じ文法を
+しています。
+.Ql .Ss
+は解析されますが、一般的に呼び出し不可能です。
+このマクロは、
+.Ql .Ss
+の呼び出し時にのみ引数として使用できます。このとき、
+.Ql .Ss
+のデフォルトフォントが再度有効になります。
+.Pp
+デフォルト幅は 8n です。
+.
+.Ss "段落と行スペース"
+.
+.Bl -tag -xwidth ".Li .Pp"
+.It Li .Pp
+.Ql .Pp
+段落コマンドは必要な場合に行スペースを指定するために使われます。
+このマクロは
+.Ql .Sh
+マクロや
+.Ql .Ss
+マクロの後、ならびに
+.Ql .Bl
+マクロや
+.Ql .Bd
+マクロの前では必要ありません
+(いずれのマクロも
+.Fl compact
+フラグが指定されていなければ垂直方向の距離を宣言します)。
+.Pp
+このマクロは呼び出し不可能であり、解析もされません。そして
+引数をとりません。別名は
+.Ql .Lp
+です。
+.El
+.
+.\" XXX
+.
+.\" This worked with version one, need to redo for version three
+.\" .Pp
+.\" .Ds I
+.\" .Cw (ax+bx+c) \ is\ produced\ by\ \&
+.\" .\".Cw (ax+bx+c) \&.Va_by_) \&_and_\& \&[?/]m_b1_e1_f1[?/]\&
+.\" .Cl Cx \t\t
+.\" .Li \&.Cx\ (
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Va ax
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Sy \+
+.\" .Cx
+.\" .Cl Cx \&(\&
+.\" .Va ax
+.\" .Cx +
+.\" .Va by
+.\" .Cx +
+.\" .Va c )
+.\" .Cx \t
+.\" .Em is produced by
+.\" .Cx \t
+.\" .Li \&.Va by
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Sy \+
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Va c )
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Cx
+.\" .Cx
+.\" .Cw
+.\" .De
+.\" .Pp
+.\" This example shows the same equation in a different format.
+.\" The spaces
+.\" around the
+.\" .Li \&+
+.\" signs were forced with
+.\" .Li \e :
+.\" .Pp
+.\" .Ds I
+.\" .Cw (ax\ +\ bx\ +\ c) \ is\ produced\ by\ \&
+.\" .\".Cw (ax+bx+c) \&.Va_by_) \&_and_\& \&[?/]m_b1_e1_f1[?/]\&
+.\" .Cl Cx \t\t
+.\" .Li \&.Cx\ (
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Va a
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Sy x
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Cx \e\ +\e\ \e&
+.\" .Cx
+.\" .Cl Cx \&(\&
+.\" .Va a
+.\" .Sy x
+.\" .Cx \ +\ \&
+.\" .Va b
+.\" .Sy y
+.\" .Cx \ +\ \&
+.\" .Va c )
+.\" .Cx \t
+.\" .Em is produced by
+.\" .Cl Cx \t\t
+.\" .Li \&.Va b
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Sy y
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Cx \e\ +\e\ \e&
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Va c )
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Cx
+.\" .Cx
+.\" .Cw
+.\" .De
+.\" .Pp
+.\" The incantation below was
+.\" lifted from the
+.\" .Xr adb 1
+.\" manual page:
+.\" .Pp
+.\" .Ds I
+.\" .Cw \&[?/]m_b1_e1_f1[?/]\& is\ produced\ by
+.\" .Cl Cx \t\t
+.\" .Li \&.Cx Op Sy ?/
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Nm m
+.\" .Cx
+.\" .Cl Cx Op Sy ?/
+.\" .Nm m
+.\" .Ad \ b1 e1 f1
+.\" .Op Sy ?/
+.\" .Cx \t
+.\" .Em is produced by
+.\" .Cx \t
+.\" .Li \&.Ar \e\ b1 e1 f1
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Op Sy ?/
+.\" .Cx
+.\" .Cl Cx \t\t
+.\" .Li \&.Cx
+.\" .Cx
+.\" .Cw
+.\" .De
+.\" .Pp
+.
+.Ss キープ
+.
+現在実装されているキープは単語に対するものだけです。
+マクロは
+.Ql .Bk
+(キープ開始)
+と
+.Ql .Ek
+(キープ終了) です。
+現在
+.Ql .Bk
+が受け付けるオプションは
+.Fl words
+のみで (オプションを何も与えていなければこれがデフォルトでもあります)
+オプションの途中で改行が入らないようにするのに便利です。
+make コマンド行の引数を生成する例 (
+.Sx この名前には何が...?
+セクションを参照) において、キープは
+.Xr nroff
+がフラグと引数を別の行に分けないように使われています。
+.Pp
+いずれのマクロも呼び出し不可能であり、解析もされません。
+.Pp
+キープマクロについてはもっと仕事をする必要があります。
+特に
+.Fl line
+オプションは追加する必要があるでしょう。
+.
+.Ss "例示とディスプレイ"
+.
+ディスプレイには 7 つのタイプがあります。
+.Pp
+.Bl -tag -xwidth ".Li .D1"
+.It Li .D1
+(D-いちです)
+インデントされたテキストを 1 行表示します。
+このマクロは解析されますが、呼び出し不可能です。
+.Pp
+.D1 Fl ldghfstru
+.Pp
+これは次の指定で生成されたものです:
+.Li ".D1 Fl ldghfstru"
+.
+.It Li .Dl
+(D-エルです)
+インデントされた
+.Em リテラル
+テキストを 1 行表示します。
+.Ql .Dl
+マクロの例は本ファイル中にわたって使われています。
+これによって 1 行のテキストのインデント (表示) が可能になります。
+デフォルトフォントは固定幅 (リテラル) に設定されます。
+.Ql .Dl
+は解析されますが、呼び出し不可能です。
+.Pp
+.Dl % ls -ldg /usr/local/bin
+.Pp
+これは、次の指定で生成されたものです:
+.Li ".Dl % ls -ldg /usr/local/bin"
+.
+.It Li .Bd
+ディスプレイ開始。
+.Ql .Bd
+ディスプレイは
+.Ql .Ed
+マクロで終了しなければなりません。
+これは、次の書式をとります:
+.Pp
+.Bl -tag -xwidth ".Li .Bd" -offset indent
+.It Li .Bd Xo
+.Bro \-literal | \-filled | \-unfilled | \-ragged | \-centered Brc
+.Oo \-offset Ao string Ac Oc Oo \-file Ao file name Ac Oc Oo \-compact Oc Xc
+.El
+.Pp
+.
+.Bl -tag -xwidth ".Fl file Ao Ar file name Ac " -compact
+.It Fl ragged
+行詰めされますが、右マージンは調整しません (左マージンのみです)。
+.It Fl centered
+現在の左マージンと右マージン間の中央線です。
+線それぞれが中央揃えになるということに注意してください。
+.It Fl unfilled
+行詰めしません。テキストのブロックを入力されたままの状態で
+表示します。改行もユーザが指定した通りに使われます。
+このため、何の警告メッセージも出さずに長過ぎる行を
+生成する可能性があります。
+.It Fl filled
+行詰めされたブロックを表示します。
+テキストブロックが整形されます (つまり、
+テキストは左右どちら側にも揃えられます)。
+.It Fl literal
+リテラルフォント (通常固定幅) でブロックを表示します。
+ソースコードや、単純にタブもしくは空白で整えられた
+テキストには便利です。
+.It Fl file Ao Ar ファイル名 Ac
+.Fl file
+フラグに続いた名前を持ったファイルが読み込まれ、
+指定されたディスプレイタイプで
+.Ql .Bd
+と
+.Ql .Ed
+マクロで囲まれたデータよりも前に表示されます。
+ファイル中の
+.Xr troff/ Ns Nm \-mdoc
+コマンドはどんなものでも処理されます。
+.It Fl offset Ao Ar 文字列 Ac
+.Fl offset
+が以下の文字列のいずれかとともに指定されていると、
+その文字列は次のテキストのブロックのインデントのレベルを示すものとして
+解釈されます。
+.
+.Pp
+.Bl -tag -xwidth ".Ar indent-two" -compact
+.It Ar left
+ブロックを現在の左マージンに揃えます。
+これは
+.Ql .Bd
+のデフォルトのモードです。
+.It Ar center
+ブロックを中央揃えにします。
+残念ながら現時点では、
+単にブロックの左側を仮想的な中央マージンに揃えるだけです。
+.It Ar indent
+デフォルトのインデント値もしくはタブの分だけインデントします。
+デフォルトのインデント値は
+.Ql .D1
+および
+.Ql .Dl
+マクロでも使われていますので、この 2 種類のディスプレイを
+使った場合行が揃うことが保証されています。
+インデント値は通常 6n つまり約 2/3 インチ (定幅文字 6 つ分) です。
+.It Ar indent-two
+デフォルトのインデント値の 2 倍分インデントします。
+.It Ar right
+これはブロックをページの右端から約 2 インチ離して
+.Em 左
+揃えします。
+このマクロはちゃんと動作する必要があるのですが、
+.Xr troff
+ではまったくちゃんと動作してくれていません。
+.El
+.Pp
+.
+その代わりに
+.Ao 文字列 Ac
+が正しい数値表現をしている場合
+.Pf ( Sq Em u
+.Em 以外のスケール指示子を伴う)、
+インデント用にその値を使用します。
+スケール指示子のなかで最も役に立つものは
+.Sq m
+および
+.Sq n
+です。これらはいわゆる
+.Em \&Em
+と
+.Em "En square"
+を指定します。
+これは、現在のフォントでの文字
+.Sq m
+および文字
+.Sq n
+の幅とほぼ同じです ( nroff の出力については、
+どちらのスケール指示子でも同じ値が得られます )。
+.Ao 文字列 Ac
+が数値表現をしていない場合、文字列は
+.Nm \-mdoc
+マクロ名であるかどうか検査され、このマクロに関連する
+デフォルトのオフセット値が使われます。
+最終的にすべてのテストが失敗した場合
+the width of
+.Ao 文字列 Ac
+の幅
+(固定幅フォントでのタイプセット) がオフセットと見なされます。
+.It Fl compact
+ディスプレイを開始するときに垂直方向の空白を挿入しないようにします。
+.El
+.
+.It Li .Ed
+ディスプレイの終了 (引数はとりません)。
+.El
+.
+.Ss "リストと列"
+.
+リスト開始マクロ
+.Ql .Bl
+で開始できるリストには何種類かあります。
+リスト中の項目は項目マクロ
+.Ql .It
+で指定され、各リストは
+.Ql .El
+マクロで終了しなければなりません。
+リストはリスト自身やディスプレイの中で入れ子にすることができます。
+リスト中で列を使ったり、列の中でリストを使ったりすることに
+ついては検証されていません。
+.Pp
+さらに、タグ幅、リストのオフセット、コンパクトの度合
+(項目間の空白行が許されているかどうか) のような
+リストの属性をいくつか指定することができます。
+本ドキュメントのほとんどはタグ
+.Pf ( Fl tag )
+スタイルリストで整形されています。
+.Pp
+このマクロは次の文法規則を持っています:
+.
+.Pp
+.Bl -tag -xwidth ".Li .Bl" -offset indent -compact
+.It Li .Bl Xo
+.Bro \-hang | \-ohang | \-tag | \-diag | \-inset Brc
+.Oo \-width Ao string Ac Oc Oo \-xwidth Ao command Ac Oc
+.Oo \-offset Ao string Ac Oc Oo \-compact Oc Xc
+.It Li .Bl Xo
+.No \-column Oo \-offset Ao string Ac Oc
+.Ao string1 Ac Ao string2 Ac ... Xc
+.It Li .Bl Xo
+.Bro \-item | \-enum Oo \-nested Oc | \-bullet | \-hyphen | \-dash Brc
+.Oo \-offset Ao string Ac Oc Oo \-compact Oc Xc
+.El
+.Pp
+.
+次に、このリストタイプの詳細な解説を行います。
+.
+.Pp
+.Bl -tag -xwidth ".Fl column" -compact
+.It Fl bullet
+ビュレットリストです。
+.
+.Bd -literal -offset indent
+\&.Bl -bullet -offset indent -compact
+\&.It
+1 つ目のビュレットはここにきます。
+\&.It
+2 つ目のビュレットはここにきます。
+\&.El
+.Ed
+.Pp
+.
+生成結果は次の通りです:
+.
+.Pp
+.Bl -bullet -offset indent -compact
+.It
+1 つ目のビュレットはここにきます。
+.It
+2 つ目のビュレットはここにきます。
+.El
+.Pp
+.
+.It Fl dash No ( または Fl hyphen )
+ハイフンによるリストです。
+.
+.Bd -literal -offset indent
+\&.Bl -dash -offset indent -compact
+\&.It
+1 つ目のハイフンはここにきます。
+\&.It
+2 つ目のハイフンはここにきます。
+\&.El
+.Ed
+.Pp
+.
+生成結果は次の通りです:
+.
+.Pp
+.Bl -dash -offset indent -compact
+.It
+1 つ目のハイフンはここにきます。
+.It
+2 つ目のハイフンはここにきます。
+.El
+.Pp
+.
+.It Fl enum
+箇条書きリストです。
+.
+.Bd -literal -offset indent
+\&.Bl -enum -offset indent -compact
+\&.It
+1 つ目の項目はここにきます。
+\&.It
+2 つ目の項目はここにきます。
+\&.El
+.Ed
+.Pp
+.
+生成結果は次の通りです:
+.
+.Pp
+.Bl -enum -offset indent -compact
+.It
+1 つ目の項目はここにきます。
+.It
+2 つ目の項目はここにきます。
+.El
+.Pp
+.
+箇条書きリストを入れ子にしたい場合、
+.Fl nested
+フラグを使用してください
+(第 2 レベルのリストが開始されます):
+.
+.Bd -literal -offset indent
+\&.Bl -enum -offset indent -compact
+\&.It
+1 つ目の項目はここにきます。
+\&.Bl -enum -nested -compact
+\&.It
+2 つ目の項目はここにきます。
+\&.It
+3 つ目の項目はここにきます。
+\&.It
+\&.El
+\&.It
+4 つ目の項目はここにきます。
+\&.El
+.Ed
+.Pp
+.
+生成結果は次の通りです:
+.
+.Pp
+.Bl -enum -offset indent -compact
+.It
+1 つ目の項目はここにきます。
+.Bl -enum -nested -compact
+.It
+2 つ目の項目はここにきます。
+.It
+3 つ目の項目はここにきます。
+.El
+.It
+4 つ目の項目はここにきます。
+.El
+.Pp
+.
+.It Fl item
+リストの印をつけない
+.Fl item
+タイプのリストです。
+.
+.Bd -literal -offset indent
+\&.Bl -item -offset indent
+\&.It
+1 つ目の項目はここにきます。
+1 つ目の項目はここにきます。
+1 つ目の項目はここにきます。
+\&.It
+2 つ目の項目はここにきます。
+2 つ目の項目はここにきます。
+2 つ目の項目はここにきます。
+\&.El
+.Ed
+.Pp
+.
+生成結果は次の通りです:
+.
+.Pp
+.Bl -item -offset indent
+.It
+1 つ目の項目はここにきます。
+1 つ目の項目はここにきます。
+1 つ目の項目はここにきます。
+.It
+2 つ目の項目はここにきます。
+2 つ目の項目はここにきます。
+2 つ目の項目はここにきます。
+.El
+.Pp
+.
+.It Fl tag
+タグつきリストです。
+タグ幅を指定するには
+.Fl width
+あるいは
+.Fl xwidth
+を使用してください。
+.
+.Pp
+.Bl -tag -width "PPID" -compact -offset indent
+.It SL
+プロセスが sleep している時間 (ブロックされた秒数)
+.It PAGEIN
+そのプロセスによって、まだメモリにロードされていないページへの参照が
+起こることにより生じたディスク
+.Tn I/O
+の回数
+.It UID
+数値表記によるプロセス所有者のユーザ ID
+.It PPID
+数値表記による親プロセスの ID、プロセスの優先度
+(割り込み不可の待機状態のときには、正でない値になる)
+.El
+.Pp
+.
+元のテキストは次の通りです:
+.
+.Bd -literal -offset indent
+\&.Bl -tag -width "PPID" -compact -offset indent
+\&.It SL
+プロセスが sleep している時間 (ブロックされた秒数)
+\&.It PAGEIN
+そのプロセスによって、まだメモリにロードされていないページへの参照が
+起こることにより生じたディスク
+\&.Tn I/O
+の回数
+\&.It UID
+数値表記によるプロセス所有者のユーザ ID
+\&.It PPID
+数値表記による親プロセスの ID、プロセスの優先度
+(割り込み不可の待機状態のときには、正でない値になる)
+\&.El
+.Ed
+.Pp
+.
+.It Fl diag (診断)
+診断リストはセクション 4 の診断リストを生成するもので、
+呼び出し可能なマクロが無視されることを除き、inset リストと似ています。
+フラグ
+.Fl width
+および
+.Fl xwidth
+は、この文脈では意味がありません。
+.Pp
+使用例:
+.
+.Bd -literal -offset indent
+\&.Bl -diag
+\&.It ここで Sy を使うことはできません。
+このメッセージはすべて出力されます。
+\&.El
+.Ed
+.Pp
+.
+生成結果
+.
+.Bl -diag
+.It ここで Sy を使うことはできません。
+このメッセージはすべて出力されます。
+.El
+.Pp
+.
+.It Fl hang
+ぶら下がりタグつきリストです。
+.
+.Bl -hang -offset indent
+ラベル幅よりもラベルが小さい場合には
+.It Em ぶら下げられた
+ラベルはタグつきリストと同じように見えます。
+.It Em ラベル幅より長いぶら下がりリストのラベル
+は、タグつき段落ラベルとは違い、段落に溶け込みます。
+.El
+.Pp
+以上の文章を生成した、整形前のテキストは
+次の通りです:
+.
+.Bd -literal -offset indent
+\&.Bl -hang -offset indent
+ラベル幅よりもラベルが小さい場合には
+\&.It Em ぶら下げられた
+ラベルはタグつきリストと同じようにみえます。
+\&.It Em ラベル幅より長いぶら下がりリストのラベル
+は、タグつき段落ラベルとは違い、段落に溶け込みます。
+\&.El
+.Ed
+.Pp
+.
+.It Fl ohang
+オーバハングタグ (overhanging tags) を用いたリストは
+項目に対してインデントを使いません。
+タグは別の行に出力されます。
+.Pp
+.Bl -ohang -offset indent
+.It Sy SL
+プロセスが sleep している時間 (ブロックされた秒数)
+.It Sy PAGEIN
+そのプロセスによって、まだメモリにロードされていないページへの参照が
+起こることで生じたディスク
+.Tn I/O
+の回数
+.It Sy UID
+数値表記によるプロセス所有者のユーザ ID
+.It Sy PPID
+数値表記による親プロセスの ID、プロセスの優先度
+(割り込み不可の待機状態のときには、正でない値になる)
+.El
+.Pp
+.
+元のテキストは次の通りです:
+.
+.Bd -literal -offset indent
+\&.Bl -ohang -offset indent
+\&.It Sy SL
+プロセスが sleep している時間 (ブロックされた秒数)
+\&.It Sy PAGEIN
+そのプロセスによって、まだメモリにロードされていないページへの参照が
+起こることで生じたディスク
+\&.Tn I/O
+の回数
+\&.It Sy UID
+数値表記によるプロセス所有者のユーザ ID
+\&.It Sy PPID
+数値表記による親プロセスの ID、プロセスの優先度
+(割り込み不可の待機状態のときには、正でない値になる)
+\&.El
+.Ed
+.Pp
+.
+.It Fl inset
+次は、inset ラベルの例です:
+.Bl -inset -offset indent
+.It Em tag
+タグリスト (タグ段落とも呼びます) は
+バークレーのマニュアルで使われている最も一般的な
+種類のリストです。
+後で述べるように、
+.Fl width
+属性を使用してください。
+.It Em diag (診断)
+診断リストはセクション 4 の診断リストを生成し、
+呼び出し可能なマクロを無視するという点を除けば
+inset リストと似ています。
+.It Em hang (ぶら下がり)
+ぶら下がりラベルは気分の問題です。
+.It Em ohang
+オーバハングラベルは空白に制限がある場合には良いです。
+.It Em inset
+inset ラベルは段落ブロックを制御するのに便利で、
+.Nm \-mdoc
+マニュアルを別のフォーマットに変換するのに有用です。
+.El
+.Pp
+上の例を生成したソーステキストはこうなっています:
+.
+.Bd -literal -offset indent
+\&.Bl -inset -offset indent
+\&.It Em tag
+タグリスト (タグ段落とも呼びます) は
+バークレーのマニュアルで使われている最も一般的な
+種類のリストです。
+後で述べるように、
+\&.Fl width
+属性を使用してください。
+\&.It Em diag (診断)
+診断リストはセクション 4 の診断リストを生成し、
+呼び出し可能なマクロを無視するという点を除けば
+inset リストと似ています。
+\&.It Em hang (ぶら下がり)
+ぶら下がりラベルは気分の問題です。
+\&.It Em ohang
+オーバハングラベルは空白に制限がある場合には良いです。
+\&.It Em inset
+inset ラベルは段落ブロックを制御するのに便利で、
+\&.Nm \-mdoc
+マニュアルを別のフォーマットに変換するのに有用です。
+\&.El
+.Ed
+.Pp
+.
+.It Fl column
+この種類のリストは複数列を生成します。
+列の数および各列の幅は
+.Fl column
+リストへの引数によって決定されます。
+.Ql .It
+引数はそれぞれ解析され行を生成します。
+行中の各列はタブや
+.Ql .Ta
+マクロで分けられた引数です。
+.Pp
+次の表、
+.
+.Bl -column -offset indent 文字列 nroff troff
+.It Sy 文字列 Ta Sy nroff Ta Sy troff
+.It Li <= Ta <= Ta \*(<=
+.It Li >= Ta >= Ta \*(>=
+.El
+.Pp
+.
+は次のようにして生成されています:
+.
+.Bd -literal -offset indent
+\&.Bl -column -offset indent 文字列 nroff troff
+\&.It Sy 文字列 Ta Sy nroff Ta Sy troff
+\&.It Li <= Ta <= Ta \e*(<=
+\&.It Li >= Ta >= Ta \e*(>=
+\&.El
+.Ed
+.El
+.Pp
+.
+その他のキーワード:
+.
+.Bl -tag -xwidth ".Fl indent Ao Ar 文字列 Ac"
+.It Fl width Ao Ar 文字列 Ac
+.Ao 文字列 Ac
+が正当な数値表現である場合
+.Pf ( Sq Em u
+.Em 以外のスケール指示子を伴う
+)、
+インデント用にその値を使用します。
+最も有用なスケール指示子は
+.Sq m
+と
+.Sq n
+です。これらはいわゆる
+.Em \&Em
+および
+.Em "En square"
+を指定します。
+これは、現在のフォントでの文字
+.Sq m
+および文字
+.Sq n
+の幅とほぼ同じです (nroff の出力については、
+どちらのスケール指示子でも同じ値が得られます)。
+.Ao 文字列 Ac
+が数値表現をしていない場合、文字列は
+.Nm \-mdoc
+マクロ名であるかどうか検査され、このマクロに関連する
+デフォルトのオフセット値が使われます。
+最終的にすべてのテストが失敗した場合
+.Ao 文字列 Ac
+の幅
+(固定幅フォントでのタイプセット) がオフセットと見なされます。
+.Pp
+タグリストタイプ用に幅が指定されていない場合、
+.Ql .It
+が起動される度に適切な幅を決定しようと試みます。
+.Ql .It
+の第 1 引数が呼び出し可能なマクロである場合、
+そのマクロのデフォルト幅が使われます。
+そうでなければ、
+.Ql .No
+のデフォルト幅が使われます。
+.It Fl xwidth Ao Ar 文字列 Ac
+.Ao 文字列 Ac
+を解釈し、その結果の幅を使います。
+本ドキュメントのほとんどすべてのリストは
+このオプションを使用しています。
+.Pp
+使用例:
+.
+.Bd -literal -offset indent
+\&.Bl -tag -xwidth ".Fl test Ao Ar 文字列 Ac"
+\&.It Fl test Ao Ar 文字列 Ac
+これは、
+\&.Fl xwidth
+フラグをタグリストと一緒に使うとどのように
+働くかを見るためのもっと長い文です。
+\&.El
+.Ed
+.Pp
+.
+生成結果:
+.
+.Bl -tag -xwidth ".Fl test Ao Ar 文字列 Ac"
+.It Fl test Ao Ar 文字列 Ac
+これは、
+.Fl xwidth
+フラグをタグリストと一緒に使うとどのように
+働くかを見るためのもっと長い文です。
+.El
+.Pp
+.
+.Ao 文字列 Ac
+が解釈される前に現在の
+.Nm \-mdoc
+の状態が保存されることに注意してください。
+文字列が解釈された後ですべての変数が再度復元されます。
+しかし、ボックス (囲いに使用される) は
+.Tn GNU
+.Xr troff 1
+では保存されません。結果としては、醜いエラーを防ぐためには
+引数は常に
+.Em 平衡がとれて
+いなくてはなりません。
+例えば、本当に開きカギ括弧だけが必要である場合には
+.Ql ".Ao string"
+と書いてはだめで、代わりに
+.Ql ".Ao string Xc"
+と書かなくてはなりません。
+.It Fl offset Ao Ar 文字列 Ac
+.Ao 文字列 Ac
+が
+.Ar indent
+である場合、デフォルトのインデント値 (通常 6n に設定されており、
+.Ql .Dl
+または
+.Ql .Bd
+で使われる値と似ています)
+が使われます。
+.Ao 文字列 Ac
+が正当な数値表現である場合
+.Pf ( Sq Em u
+以外のスケール指示子を伴う )、
+その値をインデントに使用します。
+最も有用なスケール指示子は
+.Sq m
+と
+.Sq n
+であり、これらはいわゆる
+.Em \&Em
+および
+.Em "En square"
+です。
+これは、それぞれ現在のフォントでの
+.Sq m
+と
+.Sq n
+の幅とほぼ同じです (nroff の出力については、
+どちらのスケール指示子も同じ値をとります)。
+.Ao 文字列 Ac
+が数値表現でない場合、その文字列が
+.Nm \-mdoc
+のマクロ名であるかどうか検査され、このマクロに関連する
+デフォルトのオフセット値が使われます。
+最終的にすべてのテストが失敗した場合、
+.Ao 文字列 Ac
+の幅 (固定幅フォントでのタイプセット) がオフセットとして
+とられます。
+.It Fl compact
+リストの前およびリスト項目間に垂直方向の空白を挿入しないように
+します。
+.El
+.
+.
+.Sh "その他のマクロ"
+.
+ここには、いままでのセクションにはうまく当てはまらなかった
+残りのマクロのリストがあります。
+次のマクロに対しては本物の使用例を見つけられませんでした。
+それは
+.Ql .Me
+と
+.Ql .Ot
+です。この 2 つについても完璧を期するためにここに
+文書化はしています。もしこの 2 つのマクロの
+適切な使い方をご存知であれば
+.Mt bug-groff@gnu.org
+までメールを送ってください (例つきで)。
+.
+.Bl -tag -xwidth ".Li .Bt"
+.It Li .Bt
+は
+.
+.Bd -ragged -offset indent
+.Bt
+.Ed
+を表示します。
+.Pp
+このマクロは呼び出し不可能であり、解析もされません。
+また引数もとりません。
+.
+.It Li .Fr
+.Pp
+.Dl 使い方: .Fr Ao function return value Ac ...
+.Pp
+このマクロは使わないでください。
+このマクロは戻り値 (通常は数字 1 個) の直前での
+改行を許してしまいます。
+印刷時の振る舞いとしては悪いことです。
+直前の単語と戻り値とを結合させるには
+.Ql \e~
+を使用してください。
+.
+.It Li .Hf
+(ヘッダ) ファイルをそのまま含めるにはこのマクロを
+使ってください。
+このマクロは、最初に
+.Ql File:
+とファイル名を表示し、その後で
+.Ao file Ac
+の内容を表示します。
+.Pp
+.Dl 使い方: .Hf Ao file Ac
+.Pp
+このマクロは呼び出し不可能であり、解析もされません。
+.
+.It Li .Lk
+将来書かれる予定です。
+.
+.It Li .Me
+正確な使用方法は分かりません。
+.Nm \-mdoc
+ソースファイル中の記述では
+.Dq "メニューエントリ"
+となっています。
+.Pp
+デフォルト幅は 6n です。
+.
+.It Li .Mt
+将来書かれる予定です。
+.
+.It Li .Ot
+正確な使用方法は分かりません。
+.Nm \-mdoc
+ソースファイル中の記述では
+.Dq "古い関数タイプ (fortran)"
+となっています。
+.
+.It Li .Sm
+空白モードを有効に (トグル) します。
+.Pp
+.Dl 使い方: .Sm Oo on | off Oc ...
+.Pp
+空白モードが off の場合、マクロ引数の間に空白は
+挿入されません。引数なしで呼ばれた場合 (あるいは
+次の引数が
+.Ql on
+でも
+.Ql off
+でもない場合)
+.Ql .Sm
+マクロは空白モードに入ります。
+.
+.It Li .Ud
+マクロは
+.
+.Bd -ragged -offset indent
+.Ud
+.Ed
+を表示します。
+.Pp
+このマクロは呼び出し不可能であり解析もされません。
+また引数もとりません。
+.El
+.
+.
+.Sh "定義済み文字列"
+.
+次の文字列が定義済みです:
+.Pp
+.Bl -column 文字列 infinity "troff " "右向きダブルクォート" -offset indent
+.It Sy 文字列 Ta Sy nroff Ta Sy troff Ta Sy 意味
+.It Li <= Ta <= Ta \*[<=] Ta "以下"
+.It Li >= Ta >= Ta \*[>=] Ta "以上"
+.It Li Rq Ta '' Ta \*[Rq] Ta "右向きダブルクォート"
+.It Li Lq Ta `` Ta \*[Lq] Ta "左向きダブルクォート"
+.It Li ua Ta ^ Ta \*[ua] Ta "上向き矢印"
+.It Li aa Ta \' Ta \*[aa] Ta "高アクセント"
+.It Li ga Ta \` Ta \*[ga] Ta "低アクセント"
+.It Li q Ta \&" Ta \*[q] Ta "ダブルクォート"
+.It Li Pi Ta pi Ta \*[Pi] Ta "ギリシャ語のパイ"
+.It Li Ne Ta != Ta \*[Ne] Ta "不等号"
+.It Li Le Ta <= Ta \*[Le] Ta "以下"
+.It Li Ge Ta >= Ta \*[Ge] Ta "以上"
+.It Li Lt Ta < Ta \*[Lt] Ta "小なり"
+.It Li Gt Ta > Ta \*[Gt] Ta "大なり"
+.It Li Pm Ta +\- Ta \*[Pm] Ta "プラス/マイナス"
+.It Li If Ta infinity Ta \*[If] Ta "無限大"
+.It Li Na Ta \*[Na] Ta \*[Na] Ta "非数字"
+.It Li Ba Ta \*[Ba] Ta \*[Ba] Ta "垂直線"
+.El
+.Pp
+列の名前
+.Sy nroff
+と
+.Sy troff
+は少々誤解を招くものです。
+.Sy nroff
+は
+.Tn ASCII
+文字を表示しますが、
+.Sy troff
+では利用可能なもののうち一番良いグリフ形式を
+表示します。
+例えば、Unicode を有効にした
+.Tn TTY
+デバイスではすべての文字列に対して適切なグリフ表現を
+持っていますが、それに対して Latin1 に対して機能を強化した
+.Tn TTY
+デバイスではプラス/マイナス記号しかありません。
+.Pp
+文字を 2 つ含んだ文字列名は
+.Ql \e*(xx
+として表記できます。
+文字を 1 文字だけ含んだ文字列名は
+.Ql \e*x
+と表記できます。
+どのような長さの文字列名に対しても、一般的な文法は
+.Ql \e*[xxx]
+となります ( これは
+.Tn GNU
+.Xr troff 1
+拡張です)。
+.
+.
+\#
+\#=====================================================================
+\#
+.Sh 診断
+.
+以前のバージョンの
+.Nm \-mdoc
+パッケージでは利用可能だったデバッグ用マクロ
+.Ql .Db
+は取り除かれました。なぜなら、
+.Tn GNU
+.Xr troff 1
+ではパラメータをチェックするのにもっと良いファシリティを
+提供しているからです。さらに、このマクロパッケージには
+エラーや警告メッセージが多数追加されており、よりロバストで
+饒舌なものになっています。
+.Pp
+唯一残ったデバッグ用マクロは
+.Ql .Rd
+であり、これはすべてのグローバルレジスタならびに文字列の
+レジスタダンプを出力するものです。
+通常のユーザが使う必要は決してないでしょう。
+.
+.
+.Sh "GROFF, TROFF, および NROFF を使用した整形"
+.
+デフォルトでは、このパッケージでは
+.Sq latin1
+や
+.Sq unicode
+のような
+.Tn TTY
+デバイスで表示する場合には改ページやヘッダ、フッタは
+禁止されており、マニュアルをオンラインで効率良く
+見ることができるようになっています。
+この振る舞いは、
+.Xr groff
+を呼んでいるときにレジスタ
+.Ql cR
+に 0 を指定することで変更することができます
+(例えば、
+.Tn TTY
+出力のハードコピーを作成したいときなど)。
+.Pp
+.Dl groff -Tlatin1 -rcR=0 -mdoc foo.man > foo.txt
+.Pp
+両面印刷用には、レジスタ
+.Ql D
+を 1 に設定してください:
+.Pp
+.Dl groff -Tps -rD1 -mdoc foo.man > foo.ps
+.Pp
+ドキュメントのフォントサイズを 11pt や 12pt に変更したい
+場合は、レジスタ
+.Ql S
+をそれに合わせて設定してください:
+.Pp
+.Dl groff -Tdvi -rS11 -mdoc foo.man > foo.dvi
+.Pp
+レジスタ
+.Ql S
+は
+.Tn TTY
+デバイスに対しては無視されます。
+.
+.
+.Sh 関連ファイル
+.
+.Bl -tag -width mdoc/doc-ditroff -compact
+.It Pa doc.tmac
+主なマニュアル用マクロパッケージです。
+.It Pa mdoc.tmac
+.Pa doc.tmac
+を呼ぶラッパファイルです。
+.It Pa mdoc/doc-common
+共通する文字列、定義、および印刷出力に関連する項目です。
+.It Pa mdoc/doc-nroff
+.Tn TTY
+出力デバイス用に使用される定義です。
+.It Pa mdoc/doc-ditroff
+その他すべてのデバイス用に使用される定義です。
+.It Pa mdoc.local
+ローカルマシンでの追加項目およびカスタマイズ項目です。
+.It Pa andoc.tmac
+このファイルは
+.Nm \-mdoc
+パッケージと
+.Nm \-man
+パッケージのどちらを使用すべきかをチェックします。
+.El
+.
+.
+.Sh "関連項目"
+.
+.Xr groff 1 ,
+.Xr man 1 ,
+.Xr troff 1 ,
+.Xr groff_man 7
+.
+.
+.Sh バグ
+.
+セクション 3f はヘッダルーチンには追加されていません。
+.Pp
+.Ql \&.Nm
+.Sx NAME
+セクションにおいては、フォントを変更するべきです。
+.Pp
+行の長さが短すぎる場合に行が分割されるのを防ぐために
+.Ql \&.Fn
+がチェックを行う必要があります。
+ときどき、最後の括弧が分割されることがあり、
+行詰めモードであるときにおかしな結果になることがあります。
+.Pp
+リストマクロおよびディスプレイマクロは何のキープも
+行いませんが、これはキープを行うべきです。
+.\" Note what happens if the parameter list overlaps a newline
+.\" boundary.
+.\" to make sure a line boundary is crossed:
+.\" .Bd -literal
+.\" \&.Fn struct\e\ dictionarytable\e\ *dictionarylookup struct\e\ dictionarytable\e\ *tab[]
+.\" .Ed
+.\" .Pp
+.\" produces, nudge nudge,
+.\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] ,
+.\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] ,
+.\" nudge
+.\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] .
+.\" .Pp
+.\" If double quotes are used, for example:
+.\" .Bd -literal
+.\" \&.Fn \*qstruct dictionarytable *dictionarylookup\*q \*qchar *h\*q \*qstruct dictionarytable *tab[]\*q
+.\" .Ed
+.\" .Pp
+.\" produces, nudge nudge,
+.\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" ,
+.\" nudge
+.\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" ,
+.\" nudge
+.\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" .
+.\" .Pp
+.\" Not a pretty sight...
+.\" In a paragraph, a long parameter containing unpaddable spaces as
+.\" in the former example will cause
+.\" .Xr troff
+.\" to break the line and spread
+.\" the remaining words out.
+.\" The latter example will adjust nicely to
+.\" justified margins, but may break in between an argument and its
+.\" declaration.
+.\" In
+.\" .Xr nroff
+.\" the right margin adjustment is normally ragged and the problem is
+.\" not as severe.
+.\" .SH 履歴
+.\" Yoshiteru Kageyama <yt-kage@cb3.so-net.ne.jp> 2001/06/10 mdoc.samples.7
+.\" を参考に翻訳