GROFF_MM(7) | Miscellaneous Information Manual | GROFF_MM(7) |
groff_mm - groff mm マクロ
groff -mm [ options... ] [ files... ]
groff mm マクロは、DWB mm マクロと互換であるように設計されています。 しかし、以下のような制限があります:
mm は、国際化されて設計されています。 そのため、各国語対応用の短いマクロファイルを書き換えて、 英語のテキストを好みの言語対応に置き換えることができます。 mmse を例として用いてください。
大域変数の初期化後に locale か lang_locale という ファイルを読み込みます。そのため、企業名などについてのマクロを ローカライズすることができます。
このマニュアルでは、角括弧は省略可能な引数を表示するのに用いられます。
数値レジスタと文字列変数
多くのマクロを数値レジスタと文字列変数によって制御することが出来ます。
数値レジスタは、nr
コマンドによって、代入が出来ます。
.nr XXX [+-]n [i]
XXX
はレジスタの名前です。
n
は、代入されるべき値です。
そして、i
は、自動増加に使われる増分値です。
もし現在値の増減が必要ならば、n
には、
前に接頭辞として正符号や負符号をつけることが出来ます。
(自動増加や自動減少が行なわれるのは、
数値レジスタが正符号か負符号とともに用いられた時のことで、
\n+[XXX] か \n-[XXX]
の様になります。)
文字列変数は、ds
により定義されます。
.ds YYY string
文字列 string
としては、空白も含めて行末までの全部が割り当てられます。
string
の中の最初の空白は、二重引用符が前につけられなければなりません。
(テキストの中では、文字列変数は
\*[YYY]
の様に使われます。)
数値レジスタの特殊な形式
数値レジスタというものは、形式が何も指定されなければ、
通常の数字で表示されます。
形式は af
によって設定出来ます:
.af R c
R
はレジスタの名前で、c
はその形式です。
形式
数の並び 1
0, 1, 2, 3, ... 001
000, 001, 002, 003, ... i
0, i, ii, iii, iv, ... I
0, I, II, III, IV, ... a
0, a, b, c, ..., z, aa, ab, ... A
0, A, B, C, ..., Z, AA, AB, ...
マクロ:
数字の型 1
アラビア数字 (デフォルト) A
大文字 (A-Z) a
小文字 (a-z) I
大文字 ローマ数字 i
小文字 ローマ数字
text-indent
はインデントを設定し、Li
よりも優先されます。
3
番目の引数は、各項目の前に空行を出力することを禁止します。
配置 0
公開論文形式 (MT 4) の場合には、 アブストラクトは第 1 ページと表紙に印字されます。 それ以外の場合には、表紙はなく、第 1 ページに印字されます。 1
アブストラクトは表紙だけに印字されます (MT 4 の場合のみ)。 2
アブストラクトは表紙だけに印字されます
(MT 4
以外の場合のみ)。
表紙の印字には、CS
は必要ありません。
外部へのレター形式
(MT 5)
では、アブストラクトは全く印字されません。
indent
は両側マージンのインデントを制御します。
指定されない時は、通常のテキストのインデントが用いられます。
.COVER .TL .AF .AU .AT .AS .AE .COVENDしかし、必ず必要なのは .TL と .AU だけです。
De レジスタ
0
特別なことは何もありません。これがデフォルトです。 1
十分な空白がある場合、
ディスプレイが印字された後で改ページが行われます。
そうでない場合、ディスプレイは文書の最後に印字されます。
Df レジスタ
0
(セクション - ページの番号付けが有効な時は) 各セクションの最後に、 そうでない時には文書の最後に、ディスプレイは印字されます。 1
充分な余地があれば、新しいディスプレイは現在のページに印字されます。 そのような余地がなければ、ディスプレイは文書の最後に印字されます。 2
1 つのディスプレイが、各ページの、又は (多段組のモードでは) 各カラムの一番上に印字されます。 3
もし充分な余地があるならば、1 つのディプレイを印字します。 余地がなければ、ディスプレイは次ページか次のカラムの一番上に印字されます。 4
新しいページまたはカラムに、入るだけのディスプレイを印字します。 もし De が 0 でなければ、各ディスプレイの間に改ページが出力されます。 5
現在のページをディスプレイで満たします。
そして、残りは、新しいページまたはカラムから始めます。(これがデフォルトです)。
もし De が 0
でなければ、各ディスプレイの間に改ページが出力されます。
format
""
インデントしません。 none
インデントしません。 L
インデントしません。 I
数値レジスタ Si の値だけテキストをインデントします。 C
各行を中央揃えします。 CB
ディスプレイ全体をブロックとして中央揃えします。 R
行を右揃えします。 RB
ディスプレイ全体をブロックとして右揃えします。
L, I, C, CB は 0, 1, 2, 3 とも指定できます。これは互換性の理由からです。 (この機能は使用しないでください。:-)
fill
""
行詰め機能を無効にします。 none
行詰め機能を無効にします。 N
行詰め機能を無効にします。 F
行詰め機能を有効にします。
N と F は 0 と 1 とも指定できます。 通常は空行がディスプレイの前と後に印字されます。 数値レジスタ Ds に 0 を設定すればこれを抑止出来ます。 rindent を指定すれば、行の長さをその量だけ短く出来ます。
flag
none
override は、番号の接頭辞となります。 0
override は、番号の接頭辞となります。 1
override は、番号の接尾辞となります。 2
番号は override
に置き換えられます。
EC は数値レジスタの
Ec
をカウンタとして使います。
番号の形式を変更する為に、.af
を用いることが出来ます。
もし数値レジスタの
Of が 1
であれば、題目の形式として番号の後にはドット
の代わりにダッシュが使われます。
文字列変数の Le
は、式一覧 (List of Equations)
の題目を
制御します。
式一覧は、数値レジスタ
Le が 1
の場合のみ表示されます。
デフォルトは 0
です。
これは、デフォルトでは
LIST OF EQUATIONS です。
数値レジスタの Liec
は単語 Equation
を含みます。
この文字列は番号の前に印字されます。
もし refname
が指定されている時には、数式番号が
.SETR によって
保存されます。これは、.GETST
refname
によって取り出せます。
EC が DS/DE
の内部で使用されている場合、
特別な表題処理を行います。
DS
の書式には影響されません。
EOP
に利用できる文字列変数
EOPf
PF からの引数。 EOPef
EF からの引数。 EOPof
OF からの引数。
arg hyphen adjust indent ljust 0 no yes yes left 1 yes yes yes left 2 no no yes left 3 yes no yes left 4 no yes no left 5 yes yes no left 6 no no no left 7 yes no no left 8 no yes yes right 9 yes yes yes right 10 no no yes right 11 yes no yes right11 以上の引数は、引数 0 と見なされます。mm でのデフォルトは 10 です。
H の直後に置かれた段落 P は、無視されます。 H によって、行送りとインデントの処理が行われます。
見出しの前のページ切り替え
数値レジスタの Ej
は見出しの前のページ切り替えを制御します。
通常、レベル 1
の見出しは、その前に
2
行の空行が印字されます。
それより高次のレベルの見出しの前では
1 行になります。
数値レジスタの Ej
が 1 であれば、各第 1
レベルの見出しの前で
新しいページが排出されます。
レベルが Ej
の値以下の見出しすべてについて、ページが切り替えられます。
Ej
のデフォルト値は 0
です。
見出しの行区切りレベル
もし見出しレベルが数値レジスタ
Hb 以下ならば、
見出しの後で行区切りが起こります。
このレジスタのデフォルト値は
2 です。
見出しの空白行のレベル
もし見出しレベルが数値レジスタ
Hs 以下ならば、
空白行が見出しの後に挿入されます。
このレジスタのデフォルト値は
2 です。
もしレベルが Hb と Hs の両方より大きければ、 テキストは同じ行で見出しの後に続きます。
見出しの後のインデント
見出しの後のテキストのインデントは数値レジスタの
Hi によって制御
されます。
このレジスタのデフォルト値は
0 です。
Hi
0
テキストは左揃えされます。 1
テキストのインデントは数値レジスタの Pt の値に従います。 P を参照してください。 2
テキストは見出しの最初の単語に合わせて
1
列に並べられます。
セクション見出しの中央揃え
そのレベルが数値レジスタの
Hc 以下で、かつ Hb
又は Hs
以下の見出しはすべて、中央揃えされます。
見出しのフォントの管理
各見出しレベルでのフォントは文字列変数の
HF
を用いて管理されています。
この変数には各レベルでのフォント番号又はフォント名が入れられています。
デフォルトでは
2 2 2 2 2 2 2
(すべての見出しでイタリック体)
です。 これをまた
I I I I I I I
の様にも書くことが出来ます。
省略された値はすべて
1
であると推定されます。
ポイントサイズの管理
各見出しのポイントサイズは、フォントが
HF
により管理されるのと同様な
方法で、文字列変数の
HP
により管理されます。
値 0
は、デフォルトのポイントサイズを選びます。
デフォルト値は
0 0 0 0 0 0 0
です。
ポイントサイズのみが変わるのであって、垂直サイズではないことに気をつけてください。
垂直サイズはユーザにより指定されるマクロ
HX や HZ によって
管理出来ます。
見出しカウンタ
H1 から H7
迄の名前をつけられた
7
個の数値レジスタには
各見出しレベルのカウンタが入れられています。
それらの値はアラビア数字を使って印字されます。
これらは、マクロの
HM (下記参照)
によって変えられます。
すべての記号は印字する前に結合されます。
これを避ける為には、数値レジスタの
Ht に 1
を代入してください。
これにより各見出しでは、現在の見出しのカウンタだけが印字されます。
自動の目次
その見出しレベルが数値レジスタ
Cl
以下の見出しは、
目次に印字する為に保存されます。
このレジスタのデフォルト値は
2 です。
見出しの特別な管理、ユーザ定義マクロ
これから記述するマクロは垂直行送り、フォント、または他の機能を細かく
制御するためにユーザが定義できるものです。
引数 level は H
へのレベル引数です。
しかし、これは番号無し見出しでは
0 になります (HU
を参照してください)。
引数 rlevel
は実際のレベルです。
これは、番号無し見出しの為に数値レジスタ
Hu
に代入されます。
引数 heading-text は、H や
HU
へのテキスト引数です。
HX level rlevel heading-text
HX
は見出し印字の直前に呼び出されます。
以下のようなレジスタが
HX
に利用出来ます。
HX は }0, }2, ;3
を変更してもかまいません。
文字列変数 }0
もし rlevel が非 0
であれば、見出し記号と
2
個のスペースが入っています。
そうでなければ、空です。
数値レジスタ ;0
見出しの後のテキストの位置が入っています。
0
はテキストが見出しと同じ行に続くはずであることを意味しています。
1
はテキストの前で行区切りが生ずるはずであることを意味します。
2
は空白行が見出しとテキストを分離するはずであることを
意味します。
文字列変数 }2
数値レジスタの ;0
が 0
であれば、このレジスタには
2
個のスペースが入ります。
これは見出しからテキストを分離するのに使われます。
もし ;0 が非 0
であれば、この文字列変数は空です。
数値レジスタ ;3
これには見出しの後に必要とされる行送りが単位付きで入ります。
デフォルトは 2v
です。
これらは番号付け
(}0)、垂直行送り
(}2)、そして
見出しの後に必要な行送りの様な事柄を変更するのに使用出来ます。
HY dlevel rlevel heading-text
HY
はサイズとフォントの計算の後に呼び出されます。
インデントを変更するために使えるでしょう。
HZ dlevel rlevel heading-text
HZ
は見出しの印字の後で、H
又は HU
が終了する直前に、
呼ばれます。
これは、セクション見出しに従いページヘッダを変更する為に使うことが出来るでしょう。
引数
1
アラビア数字 0001
ひとつ以上の 0 を先行したアラビア数字 A
大文字のアルファベット a
小文字のアルファベット I
大文字のローマ数字 i
小文字のローマ数字 空
アラビア数字
各行を整形する責任のあるマクロを生成することも可能です。 マクロの名前を第 3 引数として追加してください。 このマクロは、インデックスを引数として呼び出されます。
type
N
ページ番号 H
ヘッダマーク B
ページ番号とヘッダマークの両方をタブで区切ります
pad と mark-indent は項目記号を置く所を指定します。 項目記号は記号領域に配置されます。 mark-indent はこの領域の前のスペースの数を設定します。 これは通常 0 です。 記号領域はテキストが始まる所で終ります。 それでもなお、テキストの開始は text-indent により決められます。
もし pad が 0 ならば、項目記号は記号領域の中で左揃えされます。 もしpad が 0 より大きければ、その時は mark-indent は無視されます。 そして項目記号はテキストに対しスペースで pad 個分前に配置されます。 この操作では、項目記号は右揃えされます。
もし type が 0 であれば、リストはハンギングインデントになるか、又は 引数の mark が与えられていたら、文字列の mark が項目記号 となります。
もし type が 0 より大きければ、自動的な番号付けが行われます。 更に mark が空であれば、番号はアラビア数字となります。 この時、mark には 1, A, a, I, i のどれでも指定出来ます。
type
には項目記号を表示するため
6
通りの可能な方法の中から
1 つを選べます。
type
1
x. 2
x) 3
(x) 4
[x] 5
<x> 6
{x}
リストの各項目の前には LI-space 行の空行が置かれます。 デフォルトは 1 です。
LB 自体には LB-space 行の空行が印字されます。 デフォルトは 0 です。
通常はリスト項目の前に空行が印字されます。 この挙動は数値レジスタの Ls を用いて制御出来ます。 Ls 以下のすべてのリストレベルで先行する行送りが生成されます。 このレジスタのデフォルト値は 99 です。 (リストの入れ子は無制限です。:-)
インデントは数値レジスタの Li によって変えられます。 デフォルトは 6 です。
すべてのリストはリスト初期化マクロの
LB
により始まります。
しかし、リストを使いやすくする為に予め定義されているリストの形式が
7 つあります。
これらの形式はすべて異なったデフォルト値で
LB
を呼び出します。
AL
自動増加番号リスト ML
記号付きリスト VL
可変項目リスト BL
黒丸リスト DL
ダッシュリスト RL
参照文献リスト BVL
変則可変リスト
これらのリストについてはこのマニュアルのほかの所に記述してあります。
関連項目は LB
です。
形式 BL
ブロック形式。日付欄、返送先アドレス、著者のアドレスと結辞は行の中央から始まります。 他のすべての行は左マージンから始まります。 SB
半ブロック形式。ブロック形式と同様ですが、 各段落の最初の行が スペース 5 個分インデントされます。 FB
全ブロック形式。すべての行が左マージンから始まります。 SP
簡易形式。全ブロック形式とほぼ同じです。
主題と著者の身分がすべて大文字で印字されます。
機密表記。 日付欄の下 2 行目に CONFIDENTIAL を印字します。 任意の引数で CONFIDENTIAL を置き換えられます。 関連項目は文字列変数 LetCN です。 RN
参考文献表記。 In reference to: と引数を日付欄の 2 行下に印字します。 関連項目は文字列変数 LetRN です。 AT
気付。ATTENTION: と引数を内部アドレスの下に印字します。 関連項目は文字列変数 LetAT です。 SA
頭辞。To Whom It May Concern: か、又はもし指定されていた時には引数を 印字します。 頭辞は内部アドレスの 2 行下に印字されます。 関連項目は LetSA です。 SJ
主題欄。
レター形式 SP
以外の場合には、主題として
SUBJECT: を
接頭辞として付けた引数を内部アドレスの
2
行下に印字します。
レター形式 SP
の場合には、主題は接頭辞なしで、すべて大文字で印字されます。
関連項目は文字列変数の
LetSJ です。
通常の覚書。形式は印字されません 1
MEMORANDUM FOR FILE が印字される覚書。 2
PROGRAMMER'S NOTES が印字される覚書。 3
ENGINEER'S NOTES が印字される覚書。 4
公開論文形式。 5
外部へのレター形式。
関連項目は、もっと柔軟な表題紙
COVER/COVEND です。
arg 注釈 なし Copy To "" Copy To 1 Copy To (with att.) to 2 Copy To (without att.) to 3 Att. 4 Atts. 5 Enc. 6 Encs. 7 Under separate cover 8 Letter to 9 Memorandum to 10 Copy (with atts.) to 11 Copy (without atts.) to 12 Abstract Only to 13 Complete Memorandum to 14 CC
P への引数として 1 を指定する代わりに、数値レジスタ Pt に 段落の形式を設定することも可能です。 0 と 1 を設定することは、その値を P に与えることと同じになります。 値 2 により、すべての段落がインデントされます。 ただし見出し、リスト、ディスプレイの後は例外です。
段落間の間隔は数値レジスタの Ps により制御され、 デフォルトでは 1 です(1 行の空白行)。
もし arg1 が 1 ならば参考文献カウンタは再初期化されません。
引数 arg2 により
RP
に対しページ切り替えが行われるか否か
を指定出来ます。
arg2
0
参考文献ページは別のページに印字されます。 これがデフォルトです。 1
リストの後でページを切り替えません。 2
ページの前でページを切り替えません。 3
リストの前後でページを切り替えません。
参考文献の項目は空行で分離されます。
数値レジスタの Ls
を 0
に設定すれば、この空行は抑止出来ます。
文字列変数の Rp には参考文献ページの題名が入っています。 この題名は通常は REFERENCES に設定されています。
引数の残りのものは、目次の前に中央揃えで印字されます。
もし TC が多くて 4 個の引数を伴って呼び出されるならば、ユーザ定義の マクロ TX と TY が使われます。 TX は CONTENTS の印字の前に呼び出されます。 そして TY は CONTENTS を印字する代わりに呼び出されます。
等価のマクロを、図一覧、表一覧、式一覧、エクジビット一覧用に定義可能です。 これは TXxx または TYxx を定義することにより行い、 xx は Fg, TB, EC, EX のいずれかです。
文字列変数 Ci を各見出しレベルのインデントを制御するために 設定できます。 インデントには .ds Ci .25i .5i .75i 1i 1i の様に 単位を付けなければなりません。 インデントは通常各レベルの見出しの最大長によって制御されます。
すべてのテキストは再定義が出来ます。 新しい文字列変数の Lifg, Litb, Liex, Liec, Licon にはそれぞれ 「Figure」、「TABLE」、「Exhibit」、「Equation」及び「CONTENTS」 が入っています。 これらの変数は、他の言語に再定義できます。
説明 1
エスケープ文字 (\) を無効にします。 通常、これは冗長出力の間は働いています。 2
冗長テキストの前に空行を付加します。 4
冗長テキストの後に空行を付加します。 8
冗長テキストに行番号を振って印字します。 これにより各行の先頭に数字幅のスペースが 4 個付加されます。 文字列変数の Verbnm でより微妙な調節が可能です。 この変数には、troff コマンドの .nm に指定できる すべての引数が入ります。 通常は「1」が指定されています。 16
冗長テキストを 5
個の「n」だけインデントします。
これは数値変数の
Verbin (単位付き)
により管理されます。
デフォルトのモードを設定します。 -WF, -FF, -WD 及び FB です。 WF
広い脚注です。2 段組モードでもやはり広い脚注です。 -WF
通常の脚注の幅です。段組モードに従います。 FF
すべての脚注は最初に出現した脚注と同じ幅になります。 -FF
通常の脚注です。幅は WF と -WF に従います。 WD
広いディスプレイです。2 段組モードでもやはり広いディスプレイです。 -WD
通常のディスプレイの幅です。段組モードに従います。 FB
フローティングディスプレイが現在のページに印字された時には 行区切りを生成します。 -FB
フローティングディスプレイは行区切を生成しません。
mm で用いられている文字列変数:
変数名 値 Letns!0 Copy to Letns!1 Copy (with att.) to Letns!2 Copy (without att.) to Letns!3 Att. Letns!4 Atts. Letns!5 Enc. Letns!6 Encs. Letns!7 Under separate cover Letns!8 Letter to Letns!9 Memorandum to Letns!10 Copy (with atts.) to Letns!11 Copy (without atts.) to Letns!12 Abstract Only to Letns!13 Complete Memorandum to Letns!14 CC Letns!copy Copy " Letns!to " to
値 意味 co 目次 fg 図一覧 tb 表一覧 ec 式一覧 ex エクジビット一覧 ap 付録
mm で使用されている数値変数:
説明 0
.PH, .PF, .OH, .EH, .OF, .OE が実行された時だけ、ポイントサイズが現在の設定に変更されます。 1
ポイントサイズは
.S
のたびに変更されます。
これがデフォルトです。
レターマクロではレターの形式により決まる種々の副マクロが使用されています。 副マクロの名前にはレターの形式が接尾辞として入っています。 そのため他のレターの形式の定義を、 その国のマクロファイル内や、局所的な追加として行うことが可能です。 .LT は数値変数の Pt と Pi を 0 と 5 に設定します。 新しいレター形式については、 以下の文字列変数とマクロを定義しなければなりません:
.LO が包括的なオプションマクロとして実装されています。 .LO には Lettype という名前の文字列変数が 定義されていることが必要とされます。 ここで、type はレターの形式です。 そのとき、.LO は引数を文字列変数 let*lo-type に 割り当てます。
Jorgen Hagg, Lund, Sweden <jh@axis.se>
6 August 2001 | Groff Version 1.17.2 |