スポンサーリンク

GROFF_MS

名称
書式
解説
使用法
troff ms との違い
命名規則
関連ファイル
関連項目
作者

名称

groff_ms − groff ms マクロ

書式

groff −ms [ options... ] [ files... ]
groff −m ms
[ options... ] [ files... ]

解説

このマニュアルページは GNU バージョンの ms マクロの解説をします。このマ クロは、 groff 文書整形システムの一部分です。この ms マクロは、4.3 BSD Unix ms マクロの文書化された機能と互換であるように設計されています (詳 細は後述の troff ms との違いを参照してください)。 ms マクロは、報告書、 手紙、書籍、技術文書に適しています。

使用法

ms マクロパッケージは、ファイルにある程度の構造があることを期待していま す。最も単純な文書は、段落マクロで開始し、段落マクロか単なる空行で区 切 られたテキストからなります。長い文書は、次の構造を持ちます:

文書タイプ

文 書の先頭に RP (報告書) マクロを置くと、 groff は表紙の情報を そのページに印字します。そうでない場合は、この情報は最初の ペー ジ に印字され、直後に文書のテキストが続きます。 AT&T troff の他 の文書書式は AT&T か Berkeley 固有であり、 groff ms ではサ ポー トされていません。

書式とレイアウト

数 値 レジスタを設定することで、文書の活字 (フォントと大きさ)、 マージン、間隔、ヘッダ、フッタ、脚注を変えられます。詳細は後 述 の 文書制御レジスタを参照してください。

表紙

表紙ページは、タイトル、省略可能な著者名と組織名、アブス トラクト、日付からなります。さらなる詳細は後述の 表紙ページマク ロを参照してください。

本文

表紙ページに、あなたの文書が続きます。これは、段落、見出 し、リストからなります。

目次

長い文書は、通常、目次を含みます。これは、文書の最後に TC マクロを置くことで可能となります。

文書制御レジスタ

次 の表は、文書制御レジスタを列挙しています。一貫性のために、マージンに 関するレジスタは、文書の先頭で、もしくは RP マクロの直後で設定してく だ さい。

マージン設定

テキスト設定

段落設定

脚注設定

他の設定

表紙ページマクロ

次のマクロを次の順序で使用することで、文書の表紙ページを作成してくだ さ い。

.RP [no]

文 書の報告書書式を指定します。報告書書式は、独立した表紙ページ を作成します。 RP マクロを指定しないと、 groff は、表紙の サ ブ セットを文書のページ 1 に印字します。

省 略可能な no 引数を使用すると、 groff は表紙ページを印字します が、表紙ページ情報 (タイトル、著者、アブストラクト等) を文 書 の ページ 1 に続けません。

.P1

(P に数字の 1) ページ 1 にヘッダを印字します。デフォルト は、ヘッダを抑制します。

.DA [xxx]

(省略可能) 現在の日付かマクロに引数があればそれを、表紙ページ ( 指定されていれば) とフッタに印字します。これは nroff のデフォル トです。

.ND [xxx]

(省略可能) 現在の日付かマクロに引数があればそれを、表紙ページ ( 指 定されていれば) に印字しますが、フッタには印字しません。これ は troff のデフォルトです。

.TL

文書のタイトルを指定します。 groffTL マクロから著者 か アブストラクトまでのテキストを集め、タイトルとします。

.AU

著者名を指定します。複数の著者を指定するには、各著者に対し て AU マクロを使用します。

.AI

著者の組織を指定します。複数の組織を指定可能です。

.AB [no]

アブストラクトを開始します。デフォルトでは、語 ABSTRACT を中 央 寄 せイタリックにて、アブストラクトのテキストの上に印字します。 オプションの no は、この見出しを抑制します。

.AE

アブストラクトの終了です。

段落

インデント付きの段落を作成するには PP マクロを使用し、初期インデント 無 しの段落を作成するには LP マクロを使用します。

QP マクロは、すべてのテキストを、左および右のマージンに対してインデント します。効果は、HTML の <BLOCKQUOTE> 要素と同じです。次段落や見出しは、 マージンを通常に戻します。

XP マクロは、拡張段落を生成します。段落の最初の行は左マージンから開始 し、続く行がインデントされます (PP の逆です)。

見出し

文書に階層構造を作成するには、見出しを使用します。 ms マクロでは、本 文 と同じフォントファミリで同じポイントサイズの ボールドにて、見出しを印字 します。

次の見出しマクロが使用可能です:

.NH xx

数字付き見出し。引数 xx は、見出しのレベルを示す数値 引 数 であるか、 S xx xx "..." という形式の明示的なセクション番号 です。順番からは外れた見出しレベル、例えば .NH 1 の後 に .NH 3 を指定すると、 groff は標準エラーに警告を表示します。

.SH

数字無しの副見出しです。

強調印字

ms マクロには、テキストを強調するための様々な方法があります:

.B [txt [post [pre]]]

最 初 の 引数を ボールドタイプにします。第 2 引数を指定すると、 groff は、それを以前のフォントにて、空白を挟まずに印字します ( 強 調テキストの後に、句読点を強調せずに置けます)。同様に、(存在 すれば) 第 3 引数を以前のフォントにて、最初の引数の に印字 し ます。例えば

.B foo ) (

は次のように印字されます: (foo)

このマクロに引数を指定しないと、次の強調・段落・見出しマクロまで の後続するすべてのテキストを、 groff はボールドで印字します。

.R [txt [post [pre]]]

最初の引数をローマン (通常) タイプにします。他は B マクロと同様 に動作します。

.I [txt [post [pre]]]

最 初の引数を イタリックタイプにします。他は B マクロと同様に動 作します。

.CW [txt [post [pre]]]

最初の引数を等幅フェースにします。他は B マクロと同様に動作しま す。

.BI [txt [post [pre]]]

最初の引数をボールドイタリックタイプにします。他は B マクロと同 様に動作します。

.BX [txt]

引数を印字し、その周りに箱を描きます。空白を含む文字列を箱で 囲 みたい場合、数値幅の空白 (\0) を使用してください。

.UL [txt [post]]

最初の引数を下線付きで印字します。第 2 引数を指定すると、 groff は、それを以前のフォントにて、空白を挟まずに下線付きテキスト の 後に印字します。

.LG

次のフォントサイズ・強調・段落・見出しマクロまでの後続する すべてのテキストを、大きなタイプ (現在のポイントサイズより 2 ポ イ ント大) で印字します。このマクロを複数回指定することで、必要 な大きさになるまでポイントサイズを大きくすることができます。

.SM

次のフォントサイズ・強調・段落・見出しマクロまでの後続する すべてのテキストを、小さなタイプ (現在のポイントサイズより 2 ポ イント小) で印字します。このマクロを複数回指定することで、必 要 な小ささになるまでポイントサイズを小さくすることができます。

.NL

後続するすべてのテキストを通常のポイントサイズ (PS レジス タの値) で印字します。

\*{text\*}

括られた テキストを上付き文字として印字します。

インデント

テキストの一部をインデントする必要があるかもしれません。典型的なイン デ ントの使用法は、入れ子のリストやサブリストを作成することです。

イ ンデントされたテキスト部分の開始と終了には、それぞれ RS および RE の マクロを使用します。 PI レジスタは、インデント量を制御します。

RS および RE の組を入れ子で使用することで、インデントされた部分を必要な だけ深く入れ子にすることができます。

リスト

IP マクロは、すべてのリストの仕事を操作します。この構文は次の通りです:

.IP [marker [width]]

marker は、通常、順番無しリストでは中黒文字 \(bu 、番号付きリス トでは番号 (または自動的に増加する数値レジスタ)、インデント付 き (用語解説スタイル) リストでは語や句です。

width は、各リスト項目の本文用のインデントを指定します。ひとたび 指定すると、次に指定されるまで、文書中のすべてのリスト項目に対し てインデントは同じままです。

タブストップ

必 要に応じてタブストップを設定するには ta リクエストを使用します。タブ ストップをデフォルト (5n 毎) に戻すには TA マクロを使用します。別 の デ フォルトタブストップ集合を作りたい場合には、 TA マクロを再定義します。

ディスプレイとキープ

テ キストベースの例や図 (コードリスト等) を印字するには、ディスプレイを 使用します。ディスプレイはフィルをオフにしますので、各行の間に br リ ク エ ス ト を挿入せずにコードがそのまま印字されます。ディスプレイは、単一 ページ上に キープすることもできますし、ページをまたがった分割を許すこと もできます。

ディスプレイタイプを終了するには DE マクロを使用します。

直後に続く表 (やリストや他の項目) を参照する段落等、テキストを同じ ペー ジに キープするには、 KS および KE のマクロを使用します。 KS マクロは、 単一ページにキープされるべきテキストブロックを開始し、 KE マクロはそ の ブロックを終了します。

フ ローティングキープは、 KF および KE のマクロで指定可能です。このキー プが現在のページに入り切らない場合、 groff はキープの内容を 保 持 し、( ソー ス ファ イル中で) キープに続くテキストで現在のページの残りを埋めま す。改ページ時、すなわち明示的な bp リクエスト時もしくはページの終了 時 に、 groff は新規ページの先頭にフローティングキープを印字します。指定し たその場所に現れる必要が無い大きなグラフィックや表を印字するときに有 用 です。

表、図、式、参照

-ms マクロは標準の groff プリプロセッサ tbl, pic, eqn, refer をサポート します。プリプロセッサ用のテキストは、次のタグの組で括ってください:

.TS [H].TE

tbl プリプロセッサで処理されるべき表を表現します。オプション の H 引数は、 TH マクロまでの情報を使用して、ランニングヘッダを作 成すべきことを groff に指示します。 groff は表の先頭にヘッダ を 印 字 し、表が別のページにまたがるときには次ページにも groff は ヘッダを印字します。

.PS.PE

pic プリプロセッサで処理されるべきグラフィックを表現 し ま す。 pic ファイルは、ウェブから入手可能な AT&T pic マニュアルを参考 にして手動で作成できますし、 xfig のようなグラフィックプログ ラ ムを使用して作成することも可能です。

.EQ [align].EN

eqn プリプロセッサで処理されるべき式を表現します。オプションの align 引数は、 C, L, I のいずれかであり、式をそれぞれ中央寄せ ( デフォルト)、左寄せ、インデントします。

.[.]

refer プ リ プ ロセッサで処理されるべき参照を表現します。 GNU refer(1) マニュアルページは、プリプロセッサの分かり易い参照と、 参考文献データベースの書式を解説しています。

脚注

ms マクロは、柔軟な脚注システムを提供します。数字付き脚注は、 \** エス ケープに、 FS および FE のマクロに括られた脚注テキストを続けること で、 指定可能です。

シ ンボルの脚注は、印の文字 (例えば \(dg はダガー文字) を本文に置き、こ れに続けて FS \(dg および FE のマクロで括られた脚注テキストを続けること で、指定可能です。

groff が 脚注番号を印字する方法は、 FF レジスタを次のように変えること で、制御可能です:

0

脚注番号を上付き文字として印字し、脚注をインデント し ます (デフォルト)。

1

番号に続けてピリオドを印字し (例えば 1.)、脚注をイン デントします。

2

1 に似ていますが、インデントしません。

3

1 に似ていますが、脚注番号をぶら下がり段落として印 字 します。

脚 注は、キープおよびディスプレイ中で安全に使用可能ですが、フローティン グキープ中では、番号付き脚注の使用は避けてください。第 2 の \** を、 \** とこれに対応する .FS の間に置けます。ただし、各 .FS は対応する \** の後に置かれ、 .FS の登場順序は対応する \** の登場順序と同じであるこ と が必要です。

ヘッダとフッタ

ヘッダとフッタを定義する方法が 2 通りあります:

文字列 LH, CH, RH を使用して、左・中央・右のヘッダを設定します。 LF, CF, RF を使用して、左・中央・右のフッタを設定します。奇数ページ と偶数ページを区別しない文書で、もっとも良く動作します。

OHEH のマクロで、偶数ページと奇数ページのヘッダを定義しま す。 OFEF のマクロで、偶数ページと奇数ページのフッタを定義し ま す。 これは、個別の文字列を定義するより柔軟な方法です。これらのマク ロの構文は次の通りです:

.OH ’leftcenterright

クォート (’) は、ヘッダやフッタのテキストに登場しない任意の文字に 置 き換え可能です。

マージン

マー ジンの制御は、数値レジスタを設定することで行います。次の表は、レジ スタ名とデフォルトを列挙します:

右 マージン設定が無いことに注意してください。ページオフセットと行長の組 み合わせが、右マージンを算出する情報を提供します。

複数カラム

ms マクロは、ページにうまく納めるように、テキストを複数カラムに植字可能 で す。次のマクロが使用可能です。複数カラムモードが既に設定済みの場合、 これらは改ページを強制します。しかしながら、現在のモードが単一カラム で あり、複数カラムを開始する場合には、改ページを強制 しません。

.1C

単一カラムモード。

.2C

2 カラムモード。

.MC [width [gutter]]

複 数カラムモード。引数を指定しない場合には、 2C マクロと等価で す。そうでない場合、 width は、各カラムの幅であり、 gutter はカ ラム間の空間です。 MINGW 数値レジスタが、デフォルトのガター幅で す。

目次の作成

目次に登場させたいテキストを XS および XE のマクロで包んでください。 TC マ クロは、目次を文書の最後に印字し、ページ番号を i (ローマ数字の 1) に リセットします。

XS の最初の引数としてページ番号を指定することで、目次を手動で作成可能で す。続くエントリを XA マクロを使用して追加してください。例えば:

.XS 1
Introduction
.XA 2
A Brief History of the Universe
.XA 729
Details of Galactic Formation
...
.XE

ペー ジ番号をリセットせずに、手動で生成された目次を印字するには、 PX マ クロを使用してください。

PX もしくは TC に引数 no を指定すると、 groff\*[TOC] 文字列で指定さ れたタイトルの印字を抑制します。

troff ms との違い

groff ms マクロは、完全な再実装であり、元々の AT&T のコードは使用されて いません。 groff の拡張機能を使用していますので、これらは AT&T の troff では使用できません。他の違いは次の通りです:

groff ms の内部は Unix ms の内部とは同じではありません。したがっ て、Unix ms の実装の細部に依存する書式については groff ms で機能 し ないとしてももっともでしょう。

エラー処理の方針については、 groff ms は、沈黙したままエラーを無 視したりせず、エラーを検出してレポートします。

Bell Labs 方言は実装されていません。

Berkeley 方言、特に、 TMCT マクロは、実装されていません。

groff ms は、互換モードでは機能しません (例えば、 −C オプショ ン など)。

タイプライタ様のデバイスには、サポートはありません。

groff ms では、カットマークは提供しません。

重複した行送りは許されません (代わりに、大きな垂直行送りを使用し て下さい)。

ある Unix ms の文書には、数値レジスタの CWGW とが、それぞ れ カ ラム幅とガター幅を制御する為に使用できると述べられています。これ らの数値レジスタは、groff ms では使用されません。

リセットを引き起こすマクロ (段落や見出し) はインデントを設定しま す。 インデントを変更するマクロはインデントを増減するのではなく、む しろインデントを絶対的に設定します。このことによって、独自のマク ロ を 追加定義している文書に問題が生じるかも知れません。これを解決する には、 in リクエストを用いずに、代わりに RSRE マクロを用いて 下 さい。

数値レジスタの GS は、 groff ms マクロによって 1 に設定されま す。しかし、この数値レジスタは Unix ms マクロでは使用されてい ま せ ん。 こ のレジスタの目的は、 Unix msgroff ms かのどちらによって フォーマットされているのかを判定する必要のある文書によって利用さ れ ることです。

文字列

次 の文字列は、 groff ms マクロを英語以外の言語に適合させるために再定義 することができます:

\*- 文字列は、em ダッシュを印字します — こんな感じです。

テキスト設定

FAM 文字列は、デフォルトのフォントファミリを設定します。この文字列が 初 期化時に未定義の場合、Times に設定されます。

脚 注のポイントサイズ、垂直行送り幅、そして段落間の行送り幅は、数値レジ スタの FPS, FVS, FPD で制御されます。初期化時に、これらは、 そ れ ぞ れ \n(PS-2, \n[FPS]+2, \n(PD/2 に設定されます。しかし、これらのレジスタの いずれかでも初期化前に定義されていれば、初期化マクロはこれらを変更し ま せん。

(hy リクエストによって設定される) ハイフネーションフラグは、 HY レジス タから取られて設定されます。デフォルトは 14 です。

(元々 Berkeley の ms バージョンで定義された) 進歩したアクセント記号は、 文 書の先頭で AM マクロを定義することで使用可能です。対象となる文字の直 後に、アクセントを定義する文字列を指定することで、ほとんどの文字にア ク セ ントを置けます。例えば n\*~ は、n の上にチルダを置いたものを生成しま す。

命名規則

次のような命名規則が、マクロ、文字列そして数値レジスタに適用されてい ま す。 groff ms マクロを使用する文書に利用出来る外部名は、大文字と数字だ けからなります。

内部的には、マクロはモジュールに分割されます。命名規則は次の通りです:

ある一つのモジュールの中だけで使用される名前は、 module*name と いう形をしています。

定義されているモジュールの外部で使用される名前は、 module@name という形をしています。

ある特別の環境に関わる名前は、 environment:name という形をしてい ます。これらの名前は、 par モジュールの中でのみ使われます。

name には、モジュールは接頭辞としてつきません。

組 み 合 わ さ れ た 名前で配列を実装するのに使われるものは、 array!index という形をしています。

以上より groff ms では以下の名前を予約しています:

*, @, : を含んでいる名前。

大文字と数字だけを含んでいる名前。

関連ファイル

/usr/share/tmac/ms.tmac (s.tmac のラッパファイル)
/usr/share/tmac/s.tmac

関連項目

groff(1), troff(1), tbl(1), pic(1), eqn(1), refer(1), Groff: The GNU Implementation of troff by Trent Fisher and Werner Lemberg.

作者

元 々 の マニュアルページを James Clark 等が記述しました。 Larry Kollar (lkollar@despammed.com) が書き直しました。

スポンサーリンク