GROFF

Section: Environments, Tables, and Troff Macros (7)
Updated: 1 May 2003
索引 jman
 

索引

名称

groff - GNU roff 言語の簡易リファレンス  

索引

解説

groff という名前は、 GNU roff を表しており、roff 清書システムをフリーで実装したものです。 groff システムの概観ならびに背景については roff(7) を参照してください。 このドキュメントでは、groff 内で使用される、あらかじめ定義された roff 言語要素を簡潔に説明しているだけです。 古くからある機能と groff 拡張機能についての両方とも扱っています。 歴史的に、 roff 言語troff と呼ばれています。 groff は、古くからあるシステムと互換性を持ちつつ、独自の拡張機能も 提供しています。 そのため GNU 版では、 roff, troff, groff 言語 という術語は同義として使うこともできるでしょう。 しかし、 troff は、どちらかと言えば古くからの機能に対して適用されるという 傾向があり、それに対して、 groff は GNU 拡張に重きを置いています。 そして、 roff は、この言語の一般的な術語になっています。 このファイルは、 groff info(1) ファイルにある完全なドキュメントの簡易版に過ぎません。 info ファイルの方がより詳細で実情に近く、正確な情報を含んでいます。 groff ドキュメントを書くために使う一般的な文法は比較的 やさしいのですが、 roff 言語の拡張機能を書くのは少々骨が折れるかもしれません。 roff 言語は、行指向の言語です。 行には、制御行とテキスト行の 2 種類しかありません。 制御行は制御文字で始まります。 制御文字は、デフォルトではピリオド @m] "@s]R]" あるいはシングルクォート @m] "@s]R]" です。 そのほかの文字で始まる行はすべてテキスト行です。 制御行 は、コマンドを表し、オプションで引数を取ることもあります。 制御行は、次のような文法になります。 先頭の制御文字の後には、コマンド名を続けることができます。 引数は、もしあれば、コマンド名や他の引数と空白で分けられます。 例えば、次のようにします。
インデント用に、先頭の制御文字とコマンド名との間にはスペースや タブ文字をいくつ入れても良いですが、制御文字は行の先頭になくては なりません。 テキスト行 は、表示される部分のことです。 テキスト行はエスケープシーケンスで変更することができます。 エスケープシーケンスは先頭にバックスラッシュ @m] "@s]R]" を置くことで認識されます。 これらは、行や単語の一部に含まれ、整形要素となったり 関数となったりします。 エスケープシーケンスには、シングルクォート @m] "@s]R]" で区切られた引数を取るものもありますし、 開き括弧 @m] "@s]R]" に続いて符号化され長さの一定なものや、角括弧 @m] "@s]R]" と @m] "@s]R]" で括られているものもあります。 roff 言語は、マクロなど、言語拡張機能を書くための柔軟な手段を 提供しています。 マクロ定義を解釈する際に、roff システムは コピーモード と呼ばれる特別なモードに入ります。 コピーモードの振る舞いはとても扱いにくいものでもありますが、 確実に安全に使えるようにするルールがいくつかあります。
1.
表示可能なバックスラッシュは と記述しなくてはなりません。 もっと正確に言えば、 は現在のエスケープ文字を表します。 バックスラッシュのグリフを得るには または を使用してください。
2.
バックスラッシュはすべて 2 重にしてください。
3.
テキスト行はすべて、スペースをとらない特殊文字 で始めてください。 このやり方は、一番効率の良いコードが生成できる というわけではありませんが、最初の一歩としては使えるはずです。 さらに良いやり方については groff info ファイルおよび groff_tmac(5) を参照してください。 roff ソースファイルを読むのはこれよりは簡単です。 すべてのマクロ定義部分で 2 重になっているバックスラッシュを 1 つに置き換えればよいだけです。
 

索引

groff 要素

roff 言語の要素は、テキストファイルに整形用情報を 付加するものです。 基本的な要素は、あらかじめ定義されたコマンド および変数であり、 この要素のおかげで roff は本格的なプログラミング言語に なっているのです。 roff コマンドには 2 種類あります。 コマンドは引数を取ることもあります。 リクエスト は、ドット @m] "@s]R]" あるいは @m] "@s]R]" で始まる行に書かれるものです。 これに対して エスケープシーケンス は、 バックスラッシュ @m] "@s]R]" で始まる、行埋め込み式の関数や単語中の整形要素です。 ユーザは独自の整形コマンドを リクエストを使って定義することができます。 これらのコマンドは マクロ と呼ばれていますが、実際にはリクエストとまったく同様に使われます。 マクロパッケージは groff 言語で書かれた定義済みのマクロセットです。 ユーザが独自にエスケープシーケンスを作成できる場合というのは 非常に限られており、特殊文字のみマップすることができます。 groff 言語は、異なるインタフェースを持ついくつかの種類の変数を 提供しています。 定義済みの変数もありますが、ユーザも同様に自分で変数を定義できます。 文字列 変数は文字列を格納します。 この変数は リクエストで設定され、値は エスケープシーケンスを使って取り出します。 文字列は、変数を持つことができます。 レジスタ 変数は数値、スケールファクタつき数字、 場合によっては文字列に似たオブジェクトを格納できます。 リクエストで設定され、値は エスケープシーケンスを使って取り出します。 環境 を使うことによって、行の長さやフォントサイズなどのような グローバルな整形パラメータを、後で再利用できるように ユーザが一時的に格納することができます。 これは リクエストによって行われます。 フォント は、名前もしくは内部番号のどちらかで判別されます。 現在のフォントは リクエストもしくは エスケープシーケンスで選択されます。 デバイスごとに特別フォントがありますが、次のフォントはすべての デバイスで利用可能です。 R は標準フォント、ローマン体です。 B はその ボールド体 です。 イタリック体 フォントは I と呼ばれておりどこででも利用可能ですが、テキストデバイスでは ローマン体フォントに下線がついたものとして表示されます。 グラフィカルの出力デバイスに対しては、次のフォントの固定幅の 修飾文字が存在します。 CR, CI, および CB です。 テキストデバイスでは、いずれにしても文字はすべて固定幅です。 さらに、roff の拡張要素がいくつかあります。 ディバージョン は、後で利用できるように情報をマクロに格納します。 トラップ は、ページの先頭から何行目とか、ディバージョンや入力において 何行目というような位置条件です。 アクションの中には、条件が揃ったときに自動的に起動するように 指示できるものがあります。 これより詳細な情報と例については、groff info ファイルに示されています。  

索引

制御文字

ある条件下で特別な制御タスクをもつ文字が いくつかあります。
@m] "@s]R]"
ドットは、行の先頭あるいは および リクエスト中の条件の後にある場合のみ特別です。 その位置では、リクエスト (あるいはマクロ) を導入する制御文字になります。 エスケープを使うと、この特別な動作を遅らせることができます。 リクエストを使うことで、この制御文字を別の文字に設定して、 ドット @m] "@s]R]" を特殊文字でなくすることができます。
他の位置にドットがあるときは、ただのドット文字以上の意味はありません。 テキスト段落の中では、文はそれぞれ新しい行で始めるほうが有利です。
@m] "@s]R]"
シングルクォートには 2 つの制御機能があります。 行の先頭および条件リクエスト内では、 シングルクォートは非ブレーク制御文字になります。 これは、ドットのようにリクエストを導入しますが、 リクエストが行を折り返さないような追加のプロパティをつけるものです。 リクエストを用いると、非ブレーク制御文字を別の文字に設定する ことができます。
2 つめのタスクとして、シングルクォートは、 いくつかの関数エスケープシーケンスの中で 引数の区切り文字としてよく使用されます (引数に含まれない文字のペアならどれでも良いのですが)。 その他の場所にあれば、シングルクォート文字 あるいはアポストロフィ文字になります。 groff は、表示用の表記として エスケープシーケンス を提供しています。
@m] "@s]R]"
ダブルクォートはリクエスト、マクロ、文字列の中で引数を括るときに 使用されます。 および リクエスト内では、引数の先頭にくるダブルクォートは取り除かれ、 その後に続くダブルクォート以外の文字を定義文字列とします (先頭に空白が来るのを有効にします)。 エスケープされたダブルクォート はコメントの開始になります。 それ以外は、ダブルクォートには特別な機能はありません。 groff は、表示用の表記として エスケープシーケンス を提供しています。
@m] "@s]R]"
バックスラッシュは、通常エスケープシーケンスの開始を意味しています (この文字は、 リクエストによって変更できます)。 表示用のエスケープ文字は、エスケープシーケンス で、バックスラッシュのグリフは で得られます。
@m] "@s]R]"
開き括弧は、エスケープシーケンス内で、ちょうど 2 文字でできた エスケープ名あるいは引数を導入したときのみ特別な意味を持ちます。 groff では、この動作は CB][]] の組で置き換えることができます。
@m] "@s]R]"
開き角括弧は、groff のエスケープシーケンス内でのみ特別な意味を持ちます。 これは、長いエスケープシーケンス名やエスケープシーケンスの引数を 導入するときに使用します。 それ以外の場合は、例えばマクロ呼び出しなどでも特別な意味はありません。
@m] "@s]R]"
閉じ角括弧は、groff のエスケープシーケンス内でのみ特別な意味を持ちます。 これは、長いエスケープシーケンス名やエスケープシーケンスの引数を 終わらせます。 それ以外の場合は、特別な意味はありません。
CI]space]
空白文字は、機能的な働きしか持たない文字です。 これは、 リクエスト、マクロ、文字列の引数の区切り文字、 およびテキスト行における単語の区切り文字です。 また、空白文字は groff の単語間の水平方向の空白計算に作用します。 定義された空白幅を得たい場合は、 @m] "@s]R]" (エスケープ文字とそれに続いた空白文字)、 あるいは のようなエスケープシーケンスを使う必要があります。
CI]newline]
テキストの段落においては、改行は空白文字とほぼ同じような作用をします。 連結された行は、エスケープした改行で指定できます。 つまり、行の最後の文字に @m] "@s]R]" を指定するのです。
CI]tab]
テキスト中にタブ文字があれば、インタプリタは次の定義済みのタブ位置へ 水平方向にインデントを作ります。 タブ位置の調整には洗練されたインタフェースが存在します。
 

索引

数式

数値 は、符号つき整数、符号なし整数、浮動小数点実数のいずれか、 およびそれに単位指定子を付加したものです。 単位指定子 は、計測単位を表す 1 文字の略語です。 単位指定子が後についた数字は、サイズに関する値を意味しています。 デフォルトでは、数値は単位指定を持ちません。 つまり、単なる数字にすぎません。 roff 言語では、次の単位指定子を定義しています。
c
センチメートル
i
インチ
P
パイカ [eq] 1/6 インチ
p
ポイント [eq] 1/72 インチ
m
エム(em) [eq] R]ポイント値でのフォントサイズ (文字 `CR]mR]' の幅)
M
CR]エム(em)R] の 100 倍
n
エヌ(en) [eq] em/2
u
実際の出力デバイスでの基本単位
v
基本単位での行送り幅 スケールされたポイント数 [eq] 1 ポイントの 1/CI]sizescaleR] 倍 (フォントの I]DESC] ファイルで定義)
f
65536 倍
数式 は、先に定義された数値と、昔から troff で定義されていた 次に示す算術演算子の組合せです。
+
加算
-
減算
*
乗算
/
除算
%
剰余
=
等号
==
複数等号
<
より小さい
>
より大きい
<=
以下
>=
以上
&
論理積
:
論理和
!
論理否定
(
式のグループ化
)
現在の式グループを閉じる
さらに、 groff は、数式に対して次の演算子を追加しました。
@m] "@s]R]"
e1e2 の最大値
@m] "@s]R]"
e1e2 の最小値
@m] "@s]R]"
c をデフォルトの単位指定子として e を評価
詳細は groff info ファイルを参照してください。  

索引

条件式

条件式 は、リクエスト および での判定文で出てきます。 次の表にいろいろな種類の条件式を示します。
N
数式 N は値が~0 より大きければ真を返します。
!N
N の値が~0 以下であれば真です。
's1's2'
文字列~s1 が文字列~s2 と同一であれば真です。
!'s1's2'
文字列~s1 が文字列~s2 と同一でなければ真です。
cch
文字~ch が利用可能であれば真です。
dname
name という文字列、マクロ、ディバージョン、 リクエストが存在すれば真です。
e
現在のページ番号が偶数なら真です。
o
現在のページ番号が奇数なら真です。
mname
name という色があるなら真です。
n
フォーマッタが nroff なら真です。
rreg
reg というレジスタがあれば真です。
t
フォーマッタが troff なら真です。
 

索引

リクエスト

このセクションでは、定義済みのリクエストについて短いリファレンスを 与えます。 groff では、リクエストとマクロの名前を任意の長さにすることができます。 長い名前に対して括弧で括ったりマークをつける必要はありません。 たいていのリクエストは 1 つ、ないしは複数の引数をとります。 引数は空白文字で区切られます (タブではありません!)。 引数の長さや数について、固有の制限はありません。 引数はダブルクォートで括ることができます。 引数に空白文字が含まれる場合にとても便利です。 例えば、 [dq]arg with space[dq] は 1 つの引数を表しています。 リクエストの中には、引数を与えると、引数なしの場合と異なった動きを するものがあります。 その詳細すべてについては、ここでは説明しません。 詳細は、groff info ファイルと groff_diff(7) を参照してください。 後に述べるリクエストの説明では、引数の名前の多くは その意味を表すように選ばれています。 次にあげる表記についてだけは、意味を明らかにする必要があるでしょう。
c
1 文字を表します。
font
フォント名あるいはフォント番号で指定されたフォント
anything
行末までのすべての文字、あるいは と に囲われた文字
n
評価されると整数値を返す数式
N
符号つきまたは符号なしの任意の数式
[+-]N
符号によって 3 つの意味があります。 次に説明をします。
[+-]N で定義された式が @m] "@s]R]" 符号で始まる場合、この式の結果の値は、関連するリクエスト (例えば、数値レジスタ) がすでに持っている値に加算されます。 式が @m] "@s]R]" で始まる場合、リクエストが持つ値から、 この式の結果の値が減算されます。 符号がない場合は、今ある値を N で直接置き換えます。 負の値を指定する場合は、~0 を前に置くか、あるいは負の値を括弧で括ってください。  

リクエストの簡易リファレンス

空行 (無視されます)。 ドキュメントの整形に便利です。 行全体がコメントとなります。 string を標準エラー出力に出力し、プログラムを終了します。 現在の位置揃えモードで出力行の位置揃えを開始します。 位置揃えモード c (CI]c]CR][eq]l,r,b,n])。 で行の位置揃えを開始します フォーマット c (CI]c]CR][eq]l,i,I,a,A])。 をレジスタ register に割り当てます レジスタ register の別名 (alias) を作成します。 リクエスト、文字列、マクロ、ディバージョン object の別名 (alias) を作成します。 .. が呼ばれるまでのものをマクロ macro に追加します。 が呼ばれるまでのものをマクロ macro に追加します。 .. が呼ばれるまでのものを文字列レジスタマクロ macro に含まれている名前のマクロに追加します。 マクロに間接追加します。 macroend は文字列レジスタで、その内容がそれぞれマクロ名と、end マクロと 差し換えられます。 リクエスト と同じですが、マクロ展開の時に互換モードが無効になります。 リクエスト と同じですが、マクロ展開の時に互換モードが無効になります。 文字列 anything を文字列変数 stringvar に追加します。 ディバージョン diversion に含まれる ASCII 文字、スペース、およびエスケープシーケンスの いくつかをアンフォーマットします。 文字列展開の際に互換モードが無効になることを除き、 と同じです。 入力のバックトレースを標準エラー出力に出力します。 フォント fontN-1 単位分強調します。 現在のフォントが font のときに特別フォント S で強調します。 空行マクロを解除します。 空白行マクロをマクロ macro に設定します。 現在のディバージョンを終了します。 macro へ転換します。その際、部分的に行詰めされた行は取り除きます。 現在のディバージョンを終了します。 macro へ転換し、追加します。 その際、部分的に行詰めされた行は 取り除きます。 現在のページを終了して新しいページを開始します。 現在のページを終了します。 次のページ番号を [+-]N にします。 改行です。 改行し、出力行を引き延ばします。 と同じです。 while ループを終了します。 非改行制御文字を @m] "@s]R]" に戻します。 非改行制御文字を c に設定します。 制御文字を @m] "@s]R]" に戻します。 制御文字を c に設定します。 次の入力行をセンタリングします。 次に来る N 行の入力行をセンタリングします。 ファイル filename の内容をそのまま標準出力またはディバージョンへコピーします。 番号 mode に従って、文字 c1, c2, ... を扱います。 trap の場所を N に変更します。 文字 c を 文字列 anything として定義します。 マクロ、文字列、ディバージョン object の最後の 1 文字をとり除きます。 ストリーム stream をクローズします。 色使用を有効にします。 N が 0 の場合は、色使用を無効にします。 他の値の場合は有効にします。 合成グリフ名を構築しているときに、 グリフ名 from をグリフ名 to にマップします。 while ループにおける現在の繰り返し処理を終了します。 互換モードを有効にします。 N が 0 なら互換モードを無効にします。 それ以外なら有効にします。 フォント font の固定文字幅モードを N/36 em に設定します (em は値 M) 。 nroff の場合の連続アンダライン。 troff のリクエスト に相当します。 現在のディバージョンを終了します。 マクロ macro に転換・追加します。 リクエスト .. を見つけるまでマクロ macro を定義 (再定義) します。 リクエスト が呼ばれるまでマクロ macro を定義 (再定義) します。 リクエスト と同じですが、マクロ展開の時に互換モードが無効になります。 リクエスト と同じですが、マクロ展開の時に互換モードが無効になります。 名前 color で色を定義 (再定義) します。 scheme は、 rgb, cym, cymk, gray, grey の値を取ることができます。 component には、0 から 1 までの範囲の分数 (デフォルトの単位指定子は~ 、もしくは、 # 1 個の後ろに 1 桁か 2 桁の 16 進数の色要素、もしくは、 # 2 個の後ろに 4 桁の 16 進数の要素のいずれかを 置くことができます。 色 default は再定義できません。 文字列レジスタ macro に名前が含まれるマクロを、 .. に遭遇するまで定義 (再定義) します。 間接的にマクロを定義 (再定義) します。 macro および end は文字列レジスタであり、この内容がそれぞれマクロ名と終了マクロに 挿入されます。 現在のディバージョンを終了します。 マクロ macro に転換します。 リクエスト を、互換モードを無効にして解釈します。 文字列変数 stringvar に文字列 anything を設定します。 文字列展開中に互換モードをオフにすることを除けば、 と同じです。 ディバージョンのトラップ位置を N に設定します (デフォルトの単位指定子は です)。 エスケープ文字を @m] "@s]R]" に戻します。 エスケープ文字を c に設定します。 により保存されたエスケープ文字を復元します。 現在のエスケープ文字を保存します。 if-else リクエスト ( の else ブロックです。 入力が終わった後にマクロ macro を実行します。 エスケープ文字の処理を抑制します。 直前の環境に変更します。 環境 env (番号または名前で指定) をプッシュして切り替えます。 環境 env の内容を現在の環境にコピーします。 環境のプッシュまたはポップは行いません。 roff の処理を終了します。 以前のフォントファミリを返します。 現在のフォントファミリを name に設定します。 フィールド機構を無効にします。 フィールド区切りを a に設定し、パディング文字を空白にします。 フィールド区切りを a に、パディング文字を b に設定します。 フォールバック文字 c を、文字列 anything として定義します。 出力行を埋めます。 出力バッファをフラッシュします。 位置 n にフォント font をマウントします。 長い名前 external のフォントを短い名前 internal のフォントとし、位置 n にマウントします。 フォント f に対するフォールバック文字 c を、文字列 anything として定義します。 font のための特別フォントのリストを空にリセットします。 現在のフォントが font の場合に、 s1, s2, ... を特別フォントにします。 直前のフォントに戻します。 リクエスト または と同じです。 フォント名または番号 font に変更します。 エスケープシーケンス と同じです。 フォント font1 をフォント font2 に変換します。 追加ハイフネーション指定文字を削除します。 追加ハイフネーション指定文字として~c を設定します。 文字 c1 のハイフネーションコードを code1 に、文字 c2 のコードを code2 のように設定します。 現在のハイフネーション言語を lang に設定します。 ハイフンされた行の最大連続数を n に設定します。 ハイフネーションのパターンをファイル file から読み込みます。 ハイフネーションのパターンを file から追加します。 のための入力マッピングを設定します。 例外的なハイフネーションをする単語のリストを words で指定します。 ハイフネーションモードを N に変更します。 ハイフネーションの余白を n に設定します (デフォルトの単位指定子は~ です)。 ハイフネーションの空白を n に設定します。 条件式 cond が真ならば anything を処理します。 偽の場合はリクエスト へ移動します。 条件式 cond が真ならば anything を処理します。偽の場合は何もしません。 リクエスト .. に遭遇するまでテキストを無視します。 リクエスト までの間のテキストを無視します。 インデント量を直前の値に戻します。 引数 [+-]N に従ってインデント量を変更します (デフォルトの単位指定子は~ です)。 次の行から N 行に対し、入力行のカウントトラップを設定します。 により行のカウントが中断され 1 行扱いされることを 除けば、 と同じです。 ペアワイズカーニングを有効にします。 n が 0 ならばペアワイズカーニングを無効にします。 0 でなければ有効にします。 リーダ繰り返し文字の定義を削除します。 リーダ繰り返し文字を~c に設定します。 文字列 anything の文字列長をレジスタ register に書き込みます。 行タブモードを有効にします (つまり、出力行に比例したタブ位置を計算します)。 n が 0 の場合、行タブモードを無効にします。 それ以外の場合は、行タブモードを有効にします。 入力の行番号を N に設定します。 入力する行数を N に、ファイル名を file に設定します。 引数 N が 0 より大きければリガチャ (合字) モードにします。 行幅を直前の値に戻します。 行幅を引数 [+-]N に従って設定します (デフォルトの大きさは で、デフォルトの単位指定子は です)。 追加の行間スキップ量を直前の値に戻します。 追加の行間スキップ量を N に設定します。 つまり、テキストの出力行それぞれの後に N -1 行の空白行を挿入します。 タイトルの長さです (デフォルトの単位指定子は~ です)。 余白文字を無効にします。 それぞれのテキスト行の後、 右側余白から現在設定されている距離に文字 c を出力します。 余白文字を c に、右側余白からの距離を N に設定します (デフォルトの単位指定子は~ です)。 現在の垂直位置を register にマークします。 リクエスト .so と同じですが、tmac ディレクトリにある file が検索される点が違います。 出力行の位置揃えを行いません。 1 行分の行送りが必要であることを指定します。 N 行分の行送りが必要であることを指定します (デフォルトの単位指定子は~ です)。 出力行に行詰めや位置揃えを行いません。 ハイフネーションをしません。 行番号モードを無効にします。 行番号モードの、行番号、行番号出力間隔、空白、インデントを設定します。 次の行に行番号をつけません。 次の N 行に行番号をつけません。 anything を常に実行します。 register の値を、インクリメント値 M[+-]N に設定・変更します。 組み込み条件式 n を真に、 t を偽にします。 空白なしモードにします。 現在のファイルの末尾に直ちにジャンプします。 次のファイルへ処理を移します。 ファイル を書き込みモードでオープンし、名前 を持つストリームに関連づけます。 リクエスト と同じですが、追加モードでファイルをオープンします。 リクエスト で指定された行送り量を出力します。 string を直接中間出力に送出します。このとき、 string が、 @m] "@s]R]" で始まる場合は、先頭に空白類文字 (whitespace) を置くことが できます ( @m] "@s]R]" は削除されます)。 ページ番号文字を @m] "@s]R]" に戻します。 ページ番号文字を設定します。 プログラム program に出力をパイプします (nroff のみ)。 ページ長をデフォルトの に設定します。 現在のページ長はレジスタ に格納されています。 ページ長を [+-]N に変更します (デフォルトの単位指定子は~ です)。 マクロ名とサイズを出力します (サイズは 1 ブロック 128 バイトのブロック数です)。 マクロ全体のサイズのみを出力します (サイズは 1 ブロック 128 バイトのブロック数です)。 次のページ番号を N に設定します。 現在定義されている数値レジスタの名前と内容を標準エラー出力に 出力します。 ページオフセットを直前の値に戻します。 現在のページオフセットはレジスタ に格納されています。 ページオフセットを N に設定します。 ポイントサイズを直前の値に戻します。 ." ここには . を入れるべき ポイントサイズを指定します。 エスケープシーケンス と同じです。 PostScript 画像 filename のための矩形領域を確保します。 リクエスト と同様ですが、 command の標準出力から入力します。 すべてのトラップの名前と位置を標準エラー出力に出力します (入力行のトラップとディバージョンのトラップは含まれません)。 前の垂直方向の後付け行送り量 (post-vertical line spacing) を変更します。 垂直方向の後付け行送り量 (post-vertical line spacing) を [+-]N に変更します (デフォルトの単位指定子は です)。 文字定義 c1, c2, ... を削除します。 標準入力からの入力を読み込みます。 マクロから戻ります。 フォント f における文字 c1, c2, ... の定義を削除します。 次の n 行の入力行を右寄せします。 name で指定されたリクエスト、マクロ、文字列を削除します。 old で指定されたリクエスト、マクロ、文字列の名前を new に変更します。 レジスタ名 reg1reg2 に変更します。 レジスタ register を削除します。 空白を復活させます。つまり空白なしモードを無効にします。 (上方向のみ) 、マークしておいた垂直位置まで戻します (デフォルトの単位指定子は~ です)。 グローバルフォールバック文字 c を文字列 anything に定義します。 ソフトハイフン文字を に戻します。 ソフトハイフン文字を c に設定します。 マクロにおいて、引数を位置 n にシフトします。 ファイル DESCsizes コマンドと同様に、利用可能なフォントサイズを設定します。 ソースファイルをインクルードします。 1 行スキップします。 N の行送りを挿入します。 N の符号によって上下方向が決まります (デフォルトの単位指定子は です)。 特別フォントのグローバルリストを空にリセットします。 フォント s1, s2, などを特別フォントとします。 現在のフォントにない文字をこれらから検索します。 値を変えずに、出力行幅警告のオンオフを切り替えます。 出力行の空白が limit 以上に広がった場合に警告を出します (デフォルトの単位指定子は です)。 空白文字のサイズを N/12 に設定します。 単位は現在のフォントの空白幅です。 空白文字のサイズを N/12 に、文の空白サイズを M/12 に設定します。 単位は現在のフォントの空白幅 (CR][eq]1/3 em]) です。 位置 n のフォントをスタイル style に関連づけます。 名前 xx の文字列を、インデックス n1n2 とで決まる部分文字列で置換します。 行送り量を に設定します。 リクエスト で出力される空白行の送り量を N に設定します。 プログラム command-line を実行します。 タブ位置を N の倍数に設定します (デフォルトの単位指定子は~ です)。 位置 n1, n2, nn にタブを設定し、さらに、 nn+r1, nn+r2, nn+rn にタブを設定し、それ以降は、 nn+rn+r1, nn+rn+r2, nn+rn+rn のように設定します。 タブ繰り返し文字を削除します。 タブ繰り返し文字を~c に設定します。 次の行を一時的にインデントします (デフォルトの単位指定子は~ です)。 フォント font のトラックカーニングを有効にします。 3 つの部位をもつタイトルです。 anything を端末 (UNIX の標準的なメッセージ出力先) に出力します。 anything を端末 (UNIX の標準的なメッセージ出力先) に出力します。 その際、 anything が @m] "@s]R]" で始まっている場合は、先頭を空白で始めることができます ( @m] "@s]R]" 自体は取り除かれます)。 と似ていますが、末尾の改行を出力しません。 出力で ab に、 cd のように変換します。 ファイル filename の内容をそのまま出力します。 リクエスト asciify が、文字変換前にその文字コード (が存在する場合、それ) を 使用することを除けば、リクエスト と同じです。 リクエスト と同じですが、 によってディバージョンへと出力されるテキストは変換されません。 組み込み条件式 t を真に、 n を偽に設定します。 アンダラインフォントセットを font に設定します (リクエスト で切り替わります)。 入力行を N 行、アンダライン付きにします (troff では イタリック体になります)。 diversion 内のフォント情報を保存しつつ、空白文字およびタブ文字を アンフォーマットします。 n が 0 でなければ垂直位置のトラップを有効にします。 0 ならば無効にします。 行送りの基準線間隔を直前の値に戻します。 行送りの基準線間隔を [+-]N に設定します (デフォルトの単位指定子は、 です)。 デフォルト値は です。 警告コードを n に設定します。 警告で使用する単位指定子を si に設定します。 位置 N の (最初の) トラップを削除します。 位置によるトラップを設定します。 負の値の場合はページ末尾からの指定を表します。 条件式 cond が真ならば anything を入力として受理します。 ストリーム streamanything を書き込みます。 末尾の改行文字を出力しないことを除けば、 と同じです。 マクロまたは文字列 xx の内容を、名前 stream のストリームに書き出します。 これらの基本的な groff リクエストの他にも、 マクロの呼び出しがあります。 これらはマクロパッケージ (概要は roff(7) を参照) やプリプロセッサに由来するものです。 プリプロセッサマクロを認識するのは容易です。 これらは独特のマクロの対で括られています。
プリプロセッサ開始マクロ終了マクロ


eqn.PS.PE
grap.G1.G2
grn.GS.GE
pic.PS.PE
refer.R1.R2
soelimI]なしI]なし
tbl.TS.TE
 

索引

エスケープシーケンス

エスケープシーケンスは、行中の要素であり、通常は バックスラッシュ @m] "@s]R]" で開始され、エスケープ名がそれに続きます。 場合によっては、必要な引数をつけることもあります。 入力処理は、エスケープ文字あるいはその引数の直後から再開されます。 引数には区切り文字がはさまっているわけではありません。 そのため、エスケープ名や引数の終わりを決定する方法が必要です。 これは、名前 (エスケープ名、および変数名からなる引数) を 角括弧 [lB]name[rB] で囲い、定数引数 (数式および文字) を アポストロフィ (ASCII 0x27) で [cq]constant[cq]R] のように囲うことによって実現します。 エスケープ名には短い名前の省略形があります。 2 文字のエスケープ名は開き括弧で のように指定され、閉じ括弧は必要ありません。 そして、特殊文字である @m] "@s]R]" と @m] "@s]R]" 以外の 1 文字の名前はすべて のようにマーカなしで指定することができます。 長さ~1 の定数の引数もアポストロフィのマーカを省略できますが、 2 文字の名前のときには省略できません。 1 文字のエスケープシーケンスは主に行中での 関数とシステムに関連したタスク用に使われるのに対して、 の後に付けた 2 文字の名前は、roff システムで定義済みの特殊文字用に 使われます。 2 文字より長い名前を持つエスケープシーケンス は、ユーザ定義の名前付き文字を表しています (リクエスト を参照してください)。  

1 文字のエスケープシーケンス