スポンサーリンク

GROFF

名称
解説
groff 要素
制御文字
数式
条件式
リクエスト
エスケープシーケンス
レジスタ
互換性
バグ
作者
関連項目

名称

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 種類しか ありません。制御行は制御文字で始まります。制御文字は、デフォルトでは ピ リオド “.” あるいはシングルクォート “” です。そのほかの文字で始まる行 はすべてテキスト行です。

制御行は、コマンドを表し、オプションで引数を取ることもあります。制御 行 は、 次のような文法になります。先頭の制御文字の後には、コマンド名を続け ることができます。引数は、もしあれば、コマンド名や他の引数と空白で分 け られます。例えば、次のようにします。

.command_name arg1 arg2

イ ンデント用に、先頭の制御文字とコマンド名との間にはスペースやタブ文字 をいくつ入れても良いですが、制御文字は行の先頭になくてはなりません。

テキスト行は、表示される部分のことです。テキスト行はエスケープシーケ ン ス で 変 更することができます。エスケープシーケンスは先頭にバックスラッ シュ ‘\’ を置くことで認識されます。これらは、行や単語の一部に含まれ、整 形 要素となったり関数となったりします。エスケープシーケンスには、シング ルクォート “” で区切られた引数を取るものもありますし、開き括弧 ‘(’ に 続 いて符号化され長さの一定なものや、角括弧 ‘[’ と ‘]’ で括られているも のもあります。

roff 言語は、マクロなど、言語拡張機能を書くための柔軟な手段を提供してい ま す。マクロ定義を解釈する際に、roff システムは コピーモードと呼ばれる 特別なモードに入ります。

コピーモードの振る舞いはとても扱いにくいものでもありますが、確実に安 全 に使えるようにするルールがいくつかあります。

1.

表示可能なバックスラッシュは \e と記述しなくてはなりませ ん。もっと正確に言えば、 \e は現在のエスケープ文字を表しま す。 バックスラッシュのグリフを得るには \(rs または \[rs] を使用して ください。

2.

バックスラッシュはすべて 2 重にしてください。

3.

テキスト行はすべて、スペースをとらない特殊文字 \& で始め て ください。

こ のやり方は、一番効率の良いコードが生成できるというわけではありません が、最初の一歩としては使えるはずです。さらに良いやり方については groff info ファイルおよび groff_tmac(5) を参照してください。

roff ソースファイルを読むのはこれよりは簡単です。すべてのマクロ定義部分 で 2 重になっているバックスラッシュを 1 つに置き換えればよいだけです。

groff 要素

roff 言語の要素は、テキストファイルに整形用情報を付加するものです。基本 的 な要素は、あらかじめ定義されたコマンドおよび変数であり、この要素のお かげで roff は本格的なプログラミング言語になっているのです。

roff コマンドには 2 種類あります。コマンドは引数を取ることもあります。 リ クエストは、ドット ‘.’ あるいは “” で始まる行に書かれるものです。こ れに対して エスケープシーケンスは、バックスラッシュ ‘\’ で始まる、行 埋 め込み式の関数や単語中の整形要素です。

ユー ザは独自の整形コマンドを de リクエストを使って定義することができま す。これらのコマンドは マクロと呼ばれていますが、実際にはリクエス ト と まったく同様に使われます。マクロパッケージは groff 言語で書かれた定義済 みのマクロセットです。ユーザが独自にエスケープシーケンスを作成できる 場 合というのは非常に限られており、特殊文字のみマップすることができます。

groff 言語は、異なるインタフェースを持ついくつかの種類の変数を提供して います。定義済みの変数もありますが、ユーザも同様に自分で変数を定義で き ます。

文 字列変数は文字列を格納します。この変数は ds リクエストで設定され、値 は \* エスケープシーケンスを使って取り出します。文字列は、変数を持つ こ とができます。

レ ジスタ変数は数値、スケールファクタつき数字、場合によっては文字列に似 たオブジェクトを格納できます。 nr リクエストで設定され、値は \n エ ス ケープシーケンスを使って取り出します。

環 境を使うことによって、行の長さやフォントサイズなどのようなグローバル な整形パラメータを、後で再利用できるようにユーザが一時的に格納するこ と ができます。これは ev リクエストによって行われます。

フォ ントは、名前もしくは内部番号のどちらかで判別されます。現在のフォン トは ft リクエストもしくは \f エスケープシーケンスで選択されます。デ バ イ スごとに特別フォントがありますが、次のフォントはすべてのデバイスで利 用可能です。 R は標準フォント、ローマン体です。 B はその ボールド 体 で す。 イタリック体フォントは I と呼ばれておりどこででも利用可能ですが、 テキストデバイスではローマン体フォントに下線がついたものとして表示さ れ ま す。グラフィカルの出力デバイスに対しては、次のフォントの固定幅の修飾 文字が存在します。 CR, CI, および CB です。テキストデバイスでは、いずれ にしても文字はすべて固定幅です。

さ らに、roff の拡張要素がいくつかあります。 ディバージョンは、後で利用 できるように情報をマクロに格納します。 トラップは、ページの先頭から何行 目 とか、ディバージョンや入力において何行目というような位置条件です。ア クションの中には、条件が揃ったときに自動的に起動するように指示できる も のがあります。

これより詳細な情報と例については、groff info ファイルに示されています。

制御文字

ある条件下で特別な制御タスクをもつ文字がいくつかあります。

.

ドットは、行の先頭あるいは if, ie, el および while リクエ ス ト 中の条件の後にある場合のみ特別です。その位置では、リクエスト (あるいはマクロ) を導入する制御文字になります。 \. エスケー プ を 使うと、この特別な動作を遅らせることができます。 cc リクエス トを使うことで、この制御文字を別の文字に設定して、ドット ‘.’ を 特殊文字でなくすることができます。

他の位置にドットがあるときは、ただのドット文字以上の意味はあ りません。テキスト段落の中では、文はそれぞれ新しい行で始める ほ うが有利です。

シングルクォートには 2 つの制御機能があります。行の先頭およ び条件リクエスト内では、シングルクォートは非ブレーク制御文字 に な ります。これは、ドットのようにリクエストを導入しますが、リク エストが行を折り返さないような追加のプロパティをつける も の で す。 c2 リクエストを用いると、非ブレーク制御文字を別の文字に設 定することができます。

2 つめのタスクとして、シングルクォートは、いくつかの関数エ ス ケー プシーケンスの中で引数の区切り文字としてよく使用されます ( 引数に含まれない文字のペアならどれでも良いのですが)。その他の場 所 にあれば、シングルクォート文字あるいはアポストロフィ文字にな ります。 groff は、表示用の表記としてエスケープシーケンス \(cq を提供しています。

"

ダブルクォートはリクエスト、マクロ、文字列の中で引数を括ると きに使用されます。 ds および as リクエスト内では、引数の先頭 に く るダブルクォートは取り除かれ、その後に続くダブルクォート以外 の文字を定義文字列とします (先頭に空白が来るのを有効にします)。 エ スケープされたダブルクォート \" はコメントの開始になります。 それ以外は、ダブルクォートには特別な機能はありま せ ん。 groff は、 表示用の表記としてエスケープシーケンス \(dq を提供していま す。

\

バックスラッシュは、通常エスケープシーケンスの開始を意味して います (この文字は、 ec リクエストによって変更できます)。表示用 のエスケープ文字は、エスケープシーケンス \e で、バッ ク ス ラッ シュのグリフは \(rs で得られます。

(

開き括弧は、エスケープシーケンス内で、ちょうど 2 文字ででき たエスケープ名あるいは引数を導入したときのみ特別な意味を持ち ま す。 groff では、この動作は [] の組で置き換えることができます。

[

開き角括弧は、groff のエスケープシーケンス内でのみ特別な意味 を 持ちます。これは、長いエスケープシーケンス名やエスケープシー ケンスの引数を導入するときに使用します。それ以外の場合は、例 え ばマクロ呼び出しなどでも特別な意味はありません。

]

閉じ角括弧は、groff のエスケープシーケンス内でのみ特別な意味 を持ちます。これは、長いエスケープシーケンス名やエスケープ シー ケ ンスの引数を終わらせます。それ以外の場合は、特別な意味はあり ません。

space

空白文字は、機能的な働きしか持たない文字です。これは、リ ク エスト、マクロ、文字列の引数の区切り文字、およびテキスト行に おける単語の区切り文字です。また、空白文字は groff の単語間の水 平 方向の空白計算に作用します。定義された空白幅を得たい場合は、 ‘\ ’ (エスケープ文字とそれに続いた空白文字)、 \|, \^, あるい は \h のようなエスケープシーケンスを使う必要があります。

newline

テ キストの段落においては、改行は空白文字とほぼ同じような作用を します。連結された行は、エスケープした改行で指定できます。つ ま り、行の最後の文字に ‘\’ を指定するのです。

tab

テキスト中にタブ文字があれば、インタプリタは次の定義済みの タブ位置へ水平方向にインデントを作ります。タブ位置の調整には 洗 練されたインタフェースが存在します。

数式

数 値は、符号つき整数、符号なし整数、浮動小数点実数のいずれか、およびそ れに単位指定子を付加したものです。 単位指定子は、計測単位を表す 1 文 字 の 略語です。単位指定子が後についた数字は、サイズに関する値を意味してい ます。デフォルトでは、数値は単位指定を持ちません。つまり、単なる数字 に すぎません。

roff 言語では、次の単位指定子を定義しています。

c

センチメートル

i

インチ

P

パイカ = 1/6 インチ

p

ポイント = 1/72 インチ

m

エム(em) = ポイント値でのフォントサイズ (文字 ‘m’ の幅)

M

エム(em) の 100 倍

n

エヌ(en) = em/2

u

実際の出力デバイスでの基本単位

v

基本単位での行送り幅スケールされたポイン ト 数 = 1 ポイントの 1/sizescale 倍 (フォントの DESC ファイルで 定義)

f

65536 倍

数式は、先に定義された数値と、昔から troff で定義されていた次に示す算術 演算子の組合せです。

+

加算

減算

*

乗算

/

除算

%

剰余

=

等号

==

複数等号

<

より小さい

>

より大きい

<=

以下

>=

以上

&

論理積

:

論理和

!

論理否定

(

式のグループ化

)

現在の式グループを閉じる

さらに、 groff は、数式に対して次の演算子を追加しました。

e1>?e2

e1e2 の最大値

e1<?e2

e1e2 の最小値

(c;e)

c をデフォルトの単位指定子として e を評価

詳細は groff info ファイルを参照してください。

条件式

条件式は、リクエスト if, ie および while での判定文で出てきます。次の表 にいろいろな種類の条件式を示します。

N

数式 N は値が 0 より大きければ真を返します。

!N

N の値が 0 以下であれば真です。

s1s2

文字列 s1 が文字列 s2 と同一であれば真です。

!’s1s2

文字列 s1 が文字列 s2 と同一でなければ真で す。

cch

文字 ch が利用可能であれば真です。

dname

name という文字列、マクロ、ディバージョン、 リ クエストが存在すれば真です。

e

現在のページ番号が偶数なら真です。

o

現在のページ番号が奇数なら真です。

mname

name という色があるなら真です。

n

フォーマッタが nroff なら真です。

rreg

reg というレジスタがあれば真です。

t

フォーマッタが troff なら真です。

リクエスト

こ のセクションでは、定義済みのリクエストについて短いリファレンスを与え ます。 groff では、リクエストとマクロの名前を任意の長さにすることができ ます。長い名前に対して括弧で括ったりマークをつける必要はありません。

たいていのリクエストは 1 つ、ないしは複数の引数をとります。引数は空白文 字で区切られます (タブではありません!)。引数の長さや数について、固有 の 制 限はありません。引数はダブルクォートで括ることができます。引数に空白 文字が含まれる場合にとても便利です。例えば、 "arg with space" は 1 つの 引数を表しています。

リ クエストの中には、引数を与えると、引数なしの場合と異なった動きをする ものがあります。その詳細すべてについては、ここでは説明しませ ん。 詳 細 は、groff info ファイルと groff_diff(7) を参照してください。

後 に述べるリクエストの説明では、引数の名前の多くはその意味を表すように 選ばれています。次にあげる表記についてだけは、意味を明らかにする必要 が あるでしょう。

c

1 文字を表します。

font

フォント名あるいはフォント番号で指定されたフォ ント

anything

行末までのすべての文字、あるいは \{\} に囲われた文字

n

評価されると整数値を返す数式

N

符号つきまたは符号なしの任意の数式

±N

符号によって 3 つの意味があります。次に説明をしま す。

±N で定義された式が ‘+’ 符号で始まる場合、この式の結果の値は、関連す る リ クエスト (例えば、数値レジスタ) がすでに持っている値に加算されます。 式が ‘-’ で始まる場合、リクエストが持つ値から、この式の結果の値が減算さ れます。

符号がない場合は、今ある値を N で直接置き換えます。負の値を指定する場合 は、 0 を前に置くか、あるいは負の値を括弧で括ってください。

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

.

空行 (無視されます)。ドキュメントの整形に便利です。

.\" anything

行全体がコメントとなります。

.ab string

string を標準エラー出力に出力し、プログラムを終了します。

.ad

現在の位置揃えモードで出力行の位置揃えを開始します。

.ad c

位置揃えモード c (c=l,r,b,n)。で行の位置揃えを開始 し ます

.af register c

フォーマット c (c=l,i,I,a,A)。をレジスタ register に割り当て ます

.aln alias register

レジスタ register の別名 (alias) を作成します。

.als alias object

リクエスト、文字列、マクロ、ディバージョン object の 別 名 (alias) を作成します。

.am macro

.. が呼ばれるまでのものをマクロ macro に追加しま す。

.am macro end

.end が呼ばれるまでのものをマクロ macro に追加します。

.ami macro

.. が呼ばれるまでのものを文字列レジスタマクロ macro に含まれ ている名前のマクロに追加します。

.ami macro end

マクロに間接追加します。 macroend は文字列レジスタで、そ の内容がそれぞれマクロ名と、end マクロと差し換えられます。

.am1 macro

リクエスト .am と同じですが、マクロ展開の時に互換モードが 無 効になります。

.am1 macro end

リ クエスト .am と同じですが、マクロ展開の時に互換モードが無 効になります。

.as stringvar anything

文字列 anything を文字列変数 stringvar に追加します。

.asciify diversion

ディバージョン diversion に含まれる ASCII 文字、スペース、お よびエスケープシーケンスのいくつかをアンフォーマットします。

.as1 stringvar anything

文字列展開の際に互換モードが無効になることを除き、 .as と 同 じです。

.backtrace

入力のバックトレースを標準エラー出力に出力します。

.bd font N

フォント fontN-1 単位分強調します。

.bd S font N

現在のフォントが font のときに特別フォント S で強調します。

.blm

空行マクロを解除します。

.blm macro

空白行マクロをマクロ macro に設定します。

.box

現在のディバージョンを終了します。

.box macro

macro へ転換します。その際、部分的に行詰めされた行は取り除き ます。

.boxa

現在のディバージョンを終了します。

.boxa macro

macro へ転換し、追加します。その際、部分的に行詰めされた行は 取り除きます。

.bp

現在のページを終了して新しいページを開始します。

.bp ±N

現在のページを終了します。次のページ番号を ±N にしま す。

.br

改行です。

.brp

改行し、出力行を引き延ばします。 \p と同じです。

.break

while ループを終了します。

.c2

非改行制御文字を “” に戻します。

.c2 c

非改行制御文字を c に設定します。

.cc

制御文字を ‘.’ に戻します。

.cc c

制御文字を c に設定します。

.ce

次の入力行をセンタリングします。

.ce N

次に来る N 行の入力行をセンタリングします。

.cf filename

ファイル filename の内容をそのまま標準出力またはディバージョ ンへコピーします。

.cflags mode c1 c2 ...

番号 mode に従って、文字 c1, c2, ... を扱います。

.ch trap N

trap の場所を N に変更します。

.char c anything

文字 c を文字列 anything として定義します。

.chop object

マ クロ、文字列、ディバージョン object の最後の 1 文字をとり 除きます。

.close stream

ストリーム stream をクローズします。

.color

色使用を有効にします。

.color N

N が 0 の場合は、色使用を無効にします。他の値の 場 合は有効にします。

.composite from to

合 成 グリフ名を構築しているときに、グリフ名 from をグリフ名 to にマップします。

.continue

while ループにおける現在の繰り返し処理を終了し ま す。

.cp

互換モードを有効にします。

.cp N

N が 0 なら互換モードを無効にします。それ以外なら有効 にします。

.cs font N M

フォント font の固定文字幅モードを N/36 em に設定します (em は値 M) 。

.cu N

nroff の場合の連続アンダライン。 troff のリクエスト .ul に相当します。

.da

現在のディバージョンを終了します。

.da macro

マクロ macro に転換・追加します。

.de macro

リクエスト .. を見つけるまでマクロ macro を定義 ( 再定義) します。

.de macro end

リ ク エスト .end が呼ばれるまでマクロ macro を定義 (再定義) します。

.de1 macro

リクエスト .de と同じですが、マクロ展開の時に互換モードが 無 効になります。

.de1 macro end

リ クエスト .de と同じですが、マクロ展開の時に互換モードが無 効になります。

.defcolor color scheme component

名前 color で色を定義 (再定義) します。 scheme は、 rgb, cym, cymk, gray, grey の値を取ることができます。 component には、0 から 1 までの範囲の分数 (デフォルトの単位指定子は f) 、 もしくは、 # 1 個の後ろに 1 桁か 2 桁の 16 進数の色要素、 もしくは、 # 2 個の後ろに 4 桁の 16 進数の要素のいずれかを置 くことができます。色 default は再定義できません。

.dei macro

文 字列レジスタ macro に名前が含まれるマクロを、 .. に遭遇す るまで定義 (再定義) します。

.dei macro end

間接的にマクロを定義 (再定義) します。 macro および end は文 字列レジスタであり、この内容がそれぞれマクロ名と終了マクロに 挿入されます。

.di

現在のディバージョンを終了します。

.di macro

マクロ macro に転換します。

.do name

リクエスト .name を、互換モードを無効にして解釈 し ます。

.ds stringvar anything

文字列変数 stringvar に文字列 anything を設定します。

.ds1 stringvar anything

文 字列展開中に互換モードをオフにすることを除けば、 .ds と同 じです。

.dt N trap

ディバージョンのトラップ位置を N に設定します (デフォルト の 単位指定子は v です)。

.ec

エスケープ文字を ‘\’ に戻します。

.ec c

エスケープ文字を c に設定します。

.ecr

.ecs により保存されたエスケープ文字を復元します。

.ecs

現在のエスケープ文字を保存します。

.el anything

if-else リクエスト (ie) の else ブロックです。

.em macro

入力が終わった後にマクロ macro を実行します。

.eo

エスケープ文字の処理を抑制します。

.ev

直前の環境に変更します。

.ev env

環境 env (番号または名前で指定) をプッシュして切り 替えます。

.evc env

環境 env の内容を現在の環境にコピーします。環境 の プッシュまたはポップは行いません。

.ex

roff の処理を終了します。

.fam

以前のフォントファミリを返します。

.fam name

現在のフォントファミリを name に設定します。

.fc

フィールド機構を無効にします。

.fc a

フィールド区切りを a に設定し、パディング文字を空白に します。

.fc a b

フィールド区切りを a に、パディング文字を b に設 定 します。

.fchar c anything

フォールバック文字 c を、文字列 anything として定義します。

.fi

出力行を埋めます。

.fl

出力バッファをフラッシュします。

.fp n font

位置 n にフォント font をマウントします。

.fp n internal external

長い名前 external のフォントを短い名前 internal のフォントと し、位置 n にマウントします。

.fschar f c anything

フォント f に対するフォールバック文字 c を、文字列 anything として定義します。

.fspecial font

font のための特別フォントのリストを空にリセットします。

.fspecial font s1 s2 ...

現 在のフォントが font の場合に、 s1, s2, ... を特別フォント にします。

.ft

直前のフォントに戻します。リクエスト \f[] または \fP と 同じです。

.ft font

フォント名または番号 font に変更します。エスケープ シーケンス \f[font] と同じです。

.ftr font1 font2

フォント font1 をフォント font2 に変換します。

.hc

追加ハイフネーション指定文字を削除します。

.hc c

追加ハイフネーション指定文字として c を設定します。

.hcode c1 code1 c2 code2 ...

文字 c1 のハイフネーションコードを code1 に、文字 c2 の コー ドを code2 のように設定します。

.hla lang

現在のハイフネーション言語を lang に設定します。

.hlm n

ハイフンされた行の最大連続数を n に設定します。

.hpf file

ハイフネーションのパターンをファイル file から読 み込みます。

.hpfa file

ハイフネーションのパターンを file から追加します。

.hpfcode file

.hpf のための入力マッピングを設定します。

.hw words

例外的なハイフネーションをする単語 の リ ス ト を words で指定します。

.hy N

ハイフネーションモードを N に変更します。

.hym n

ハイフネーションの余白を n に設定します (デフォルト の単位指定子は m です)。

.hys n

ハイフネーションの空白を n に設定します。

.ie cond anything

条件式 cond が真ならば anything を処理します。偽の場合はリク エスト .el へ移動します。

.if cond anything

条件式 cond が真ならば anything を処理します。偽の場合は何も しません。

.ig

リクエスト .. に遭遇するまでテキストを無視します。

.ig end

リクエスト .end までの間のテキストを無視します。

.in

インデント量を直前の値に戻します。

.in ±N

引数 ±N に従ってインデント量を変更します (デフォルト の単位指定子は m です)。

.it N trap

次 の 行 から N 行に対し、入力行のカウントトラップを設定しま す。

.itc N trap

\c により行のカウントが中断され 1 行扱いされることを除けば、 .it と同じです。

.kern

ペアワイズカーニングを有効にします。

.kern n

n が 0 ならばペアワイズカーニングを無効にします。 0 でなければ有効にします。

.lc

リーダ繰り返し文字の定義を削除します。

.lc c

リーダ繰り返し文字を c に設定します。

.length register anything

文字列 anything の文字列長をレジスタ register に書き込 み ま す。

.linetabs

行タブモードを有効にします (つまり、出力行に比例 したタブ位置を計算します)。

.linetabs n

n が 0 の場合、行タブモードを無効にします。それ以外 の 場 合 は、行タブモードを有効にします。

.lf N

入力の行番号を N に設定します。

.lf N file

入力する行数を N に、ファイル名を file に設定します。

.lg N

引数 N が 0 より大きければリガチャ (合字) モードにし ます。

.ll

行幅を直前の値に戻します。

.ll ±N

行幅を引数 ±N に従って設定します (デフォルトの大きさ は 6.5i で、デフォルトの単位指定子は m です)。

.ls

追加の行間スキップ量を直前の値に戻します。

.ls N

追加の行間スキップ量を N に設定します。つまり、テキス トの出力行それぞれの後に N -1 行の空白行を挿入します。

.lt ±N

タイトルの長さです (デフォルトの単位指定子は m で す)。

.mc

余白文字を無効にします。

.mc c

それぞれのテキスト行の後、右側余白から現在設定されて いる距離に文字 c を出力します。

.mc c N

余白文字を c に、右側余白からの距離を N に設定し ま す (デフォルトの単位指定子は m です)。

.mk register

現在の垂直位置を register にマークします。

.mso file

リクエスト .so と同じですが、tmac ディレクトリに ある file が検索される点が違います。

.na

出力行の位置揃えを行いません。

.ne

1 行分の行送りが必要であることを指定します。

.ne N

N 行分の行送りが必要であることを指定します (デフォ ル トの単位指定子は v です)。

.nf

出力行に行詰めや位置揃えを行いません。

.nh

ハイフネーションをしません。

.nm

行番号モードを無効にします。

.nm ±N [M [S [I]]]

行番号モードの、行番号、行番号出力間隔、空白、インデントを設 定します。

.nn

次の行に行番号をつけません。

.nn N

次の N 行に行番号をつけません。

.nop anything

anything を常に実行します。

.nr register ±N M

register の値を、インクリメント値 M±N に設定・変更 し ま す。

.nroff

組み込み条件式 n を真に、 t を偽にします。

.ns

空白なしモードにします。

.nx

現在のファイルの末尾に直ちにジャンプします。

.nx filename

次のファイルへ処理を移します。

.open stream filename

ファ イル register filename を書き込みモードでオープンし、名 前 register stream を持つストリームに関連づけます。

.opena stream filename

リクエスト .open と同じですが、追加モードでファイルをオー プ ンします。

.os

リクエスト sv で指定された行送り量を出力します。

.output string

string を直接中間出力に送出します。このとき、 string が、 " で始まる場合は、先頭に空白類文字 (whitespace) を置くことがで きます (" は削除されます)。

.pc

ページ番号文字を ‘%’ に戻します。

.pc c

ページ番号文字を設定します。

.pi program

プログラム program に出力をパイプします (nroff のみ)。

.pl

ページ長をデフォルトの 11i に設定します。現在のページ長 はレジスタ register .p に格納されています。

.pl ±N

ページ長を ±N に変更します (デフォルトの単位指 定 子 は v です)。

.pm

マクロ名とサイズを出力します (サイズは 1 ブロック 128 バイトのブロック数です)。

.pm t

マクロ全体のサイズのみを出力します (サイズは 1 ブロッ ク 128 バイトのブロック数です)。

.pn ±N

次のページ番号を N に設定します。

.pnr

現在定義されている数値レジスタの名前と内容を標準エラー 出力に出力します。

.po

ページオフセットを直前の値に戻します。現在のページオ フ セットはレジスタ register .o に格納されています。

.po ±N

ページオフセットを N に設定します。

.ps

ポイントサイズを直前の値に戻します。

.ps ±N

ポ イントサイズを指定します。エスケープシーケンス \s[±N] と同じです。

.psbb filename

PostScript 画像 filename のための矩形領域を確保します。

.pso command

リクエスト so と同様ですが、 command の標準出力から入力し ま す。

.ptr

すべてのトラップの名前と位置を標準エラー出力に出力しま す (入力行のトラップとディバージョンのトラップは含まれ ま せ ん)。

.pvs

前 の 垂 直方向の後付け行送り量 (post-vertical line spacing) を変更します。

.pvs ±N

垂直方向の後付 け 行 送 り 量 (post-vertical line spacing) を ±N に変更します (デフォルトの単位指定子は p で す)。

.rchar c1 c2 ...

文字定義 c1, c2, ... を削除します。

.rd prompt

標準入力からの入力を読み込みます。

.return

マクロから戻ります。

.rfschar f c1 c2 ...

フォント f における文字 c1, c2, ... の定義を削除します。

.rj n

次の n 行の入力行を右寄せします。

.rm name

name で指定されたリクエスト、マクロ、文字列を削 除 します。

.rn old new

old で指定されたリクエスト、マクロ、文字列の名前を new に変 更します。

.rnn reg1 reg2

レジスタ名 reg1reg2 に変更します。

.rr register

レジスタ register を削除します。

.rs

空白を復活させます。つまり空白なしモードを無効 に し ま す。

.rt ±N

(上方向のみ) 、マークしておいた垂直位置まで戻します (デフォルトの単位指定子は v です)。

.schar c anything

グローバルフォールバック文字 c を文字列 anything に定義し ま す。

.shc

ソフトハイフン文字を \(hy に戻します。

.shc c

ソフトハイフン文字を c に設定します。

.shift n

マクロにおいて、引数を位置 n にシフトします。

.sizes s1 s2 ... sn [0]

ファ イル DESCsizes コマンドと同様に、利用可能なフォント サイズを設定します。

.so filename

ソースファイルをインクルードします。

.sp

1 行スキップします。

.sp N

N の行送りを挿入します。 N の符号によって上下方向が決 まります (デフォルトの単位指定子は v です)。

.special

特別フォントのグローバルリストを空にリセットしま す。

.special s1 s2 ...

フォント s1, s2, などを特別フォントとします。現在のフォン ト にない文字をこれらから検索します。

.spreadwarn

値を変えずに、出力行幅警告のオンオフを切り替えます。

.spreadwarn limit

出 力行の空白が limit 以上に広がった場合に警告を出します (デ フォルトの単位指定子は m です)。

.ss N

空白文字のサイズを N/12 に設定します。単位は 現 在 の フォントの空白幅です。

.ss N M

空白文字のサイズを N/12 に、文の空白サイズを M/12 に設定します。単位は現在のフォントの空白幅 (=1/3 em) です。

.sty n style

位置 n のフォントをスタイル style に関連づけます。

.substring xx n1 n2

名前 xx の文字列を、インデックス n1n2 とで決まる部分文字 列で置換します。

.sv

行送り量を 1v に設定します。

.sv N

リクエスト os で出力される空白行の送り量を N に設定し ます。

.sy command-line

プログラム command-line を実行します。

.ta T N

タブ位置を N の倍数に設定します (デフォルトの単位指 定子は m です)。

.ta n1 n2 ... nn T r1 r2 ... rn

位 置 n1, n2, ..., nn にタブを設定し、さらに、 nn+r1, nn+r2, ..., nn+rn にタブを設定し、それ以降は、 nn+rn+r1, nn+rn+r2, ..., nn+rn+rn のように設定します。

.tc

タブ繰り返し文字を削除します。

.tc c

タブ繰り返し文字を c に設定します。

.ti ±N

次の行を一時的にインデントします (デフォルトの単位指 定子は m です)。

.tkf font s1 n1 s2 n2

フォント font のトラックカーニングを有効にします。

.tl ’leftcenterright

3 つの部位をもつタイトルです。

.tm anything

anything を端末 (UNIX の標準的なメッセージ出力先) に出力しま す。

.tm1 anything

anything を端末 (UNIX の標準的なメッセージ出力先) に出力しま す。その際、 anything" で始まっている場合は、先頭を空 白 で始めることができます (" 自体は取り除かれます)。

.tmc anything

.tm1 と似ていますが、末尾の改行を出力しません。

.tr abcd...

出力で ab に、 cd のように変換します。

.trf filename

ファイル filename の内容をそのまま出力します。

.trin abcd...

リ クエスト asciify が、文字変換前にその文字コード (が存在す る場合、それ) を使用することを除けば、リクエスト tr と同じで す。

.trnt abcd...

リ クエスト tr と同じですが、 \! によってディバージョンへと 出力されるテキストは変換されません。

.troff

組み込み条件式 t を真に、 n を偽に設定します。

.uf font

アンダラインフォントセットを font に設定します (リ クエスト .ul で切り替わります)。

.ul N

入力行を N 行、アンダライン付きにします (troff では イタリック体になります)。

.unformat diversion

diversion 内のフォント情報を保存しつつ、空白文字およびタブ文 字をアンフォーマットします。

.vpt n

n が 0 でなければ垂直位置のトラップを有効にします。 0 ならば無効にします。

.vs

行送りの基準線間隔を直前の値に戻します。

.vs ±N

行送りの基準線間隔を ±N に設定します (デフォルトの単 位指定子は、 p です)。デフォルト値は 12p です。

.warn n

警告コードを n に設定します。

.warnscale si

警告で使用する単位指定子を si に設定します。

.wh N

位置 N の (最初の) トラップを削除します。

.wh N trap

位置によるトラップを設定します。負の値の場合はページ末尾から の指定を表します。

.while cond anything

条件式 cond が真ならば anything を入力として受理します。

.write stream anything

ストリーム streamanything を書き込みます。

.writec stream anything

末尾の改行文字を出力しないことを除けば、 .write と同じです。

.writem stream xx

マクロまたは文字列 xx の内容を、名前 stream のストリームに書 き出します。

これらの基本的な groff リクエストの他にも、マクロの呼び出しがあります。 これらはマクロパッケージ (概要は roff(7) を参照) やプリプロセッサに由来 するものです。

プリプロセッサマクロを認識するのは容易です。これらは独特のマクロの対 で 括られています。

エスケープシーケンス

エスケープシーケンスは、行中の要素であり、通常はバックスラッシュ ‘\’ で 開始され、エスケープ名がそれに続きます。場合によっては、必要な引数を つ け ることもあります。入力処理は、エスケープ文字あるいはその引数の直後か ら再開されます。引数には区切り文字がはさまっているわけではありませ ん。 そのため、エスケープ名や引数の終わりを決定する方法が必要です。

こ れ は、名前 (エスケープ名、および変数名からなる引数) を角括弧 [name] で囲い、定数引数 (数式および文字) をアポストロ フィ (ASCII 0x27) で constant のように囲うことによって実現します。

エスケープ名には短い名前の省略形があります。 2 文字のエスケープ名は開き 括弧で \(xy のように指定され、閉じ括弧は必要ありません。そして、特殊 文 字である ‘[’ と ‘(’ 以外の 1 文字の名前はすべて \c のようにマーカなしで 指定することができます。

長さ 1 の定数の引数もアポストロフィのマーカを省略できますが、 2 文字 の 名前のときには省略できません。

1 文字のエスケープシーケンスは主に行中での関数とシステムに関連したタス ク用に使われるのに対して、 \( の後に付けた 2 文字の名前は、roff シス テ ムで定義済みの特殊文字用に使われます。 2 文字より長い名前を持つエスケー プシーケンス \[name] は、ユーザ定義の名前付き文字を表しています (リクエ スト char を参照してください)。

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

\"

コメントの開始です。行末までのものすべてが無視されます。

\#

次の改行文字までのものすべてが無視されます。これは、コピー モードで解釈されます。 \" と似ていますが、終端の改行文字も無 視 する点が異なります。

\*s

1 文字の名前 s を持った文字列変数に格納されている文字列で す。

\*(st

2 文字の名前 st を持った文字列変数に格納されている文字列 です。

\*[stringvar arg1 arg2 ...]

任意の長さの名前 stringvar を持った文字列変数に格納されている文 字列です。引数 arg1, arg2, ... を取ります。

\$0

現在のマクロが呼び出されている名前。リクエスト als は、1 つのマクロに複数の名前をつけることができます。

\$x

x 番目のマクロ / 文字列の引数。ここで、 x は、1 から 9 ま での数値です。

\$(xy

2 桁の番号 xy 番目のマクロ / 文字列の引数。

\$[nexp]

nexp 番目のマクロ / 文字列の引数。ここで、 nexp は 1 以上の整数 に評価される数値表現です。

\$*

マクロ / 文字列において、引数すべてを空白文字区切りで連結 したもの。

\$@

マクロ / 文字列において、引数すべてをそれぞれダブル クォー トで囲い、空白文字で区切って連結したもの。

\\

バックスラッシュ 1 個に縮退します。コピーモードでエスケープ 文字として解釈されるのを遅らせるときに便利です。表示可能な バッ クスラッシュには、 \e もしくは、 \[rs] を使用してください。現在 のエスケープ文字と独立なのでこちらの方が良いです。

\’

揚音アクセント符号 ´。 \(aa と同じです。エスケープなし: ア ポ ス トロフィ、右クォーテーション記号、シングルクォート (ASCII 0x27)。

\‘

抑音アクセント符号 `。 \(ga と同じです。エスケープなし: 左 クォート、バッククォート (ASCII 0x60)。

\−

現在のフォントでの − 符号。

\.

解釈されないドット (ピリオド)。行頭にあってもそうなります。

\%

デフォルトでのオプションのハイフン文字。

\!

透過行指定子。

\?anything?

ディバージョンでは、そのまま anything を組み込みま す。 コ ピー モー ド では、 anything を読み込みます。エスケープシーケンス \! および \? も参照してください。

\space

パディングされない、空白の大きさを持った空白文字 (改 行 もされません)。

\0

数字の幅の空白。

\|

1/6 em の狭い空白文字。nroff では幅 0 です。

\^

1/12 em のさらに狭い空白文字。nroff では幅 0 です。

\&

表示されない、幅 0 の文字。

\)

\& と同様ですが、文の終わりを認識する目的で、 cflags リクエ ストを用いて透過になるように宣言された文字のように振る舞うと い う点で異なります。

\/

次の文字がローマン体であるときには、それの前の文字の幅を増 やして次の文字との間の空白が修正されるようにします。

\,

前の文字がローマン体であるときには、次の文字の空白を変更 し て前の文字との間の空白が修正されるようにします。

\~

改行されない空白。行を調整するとき、通常の単語間の空白のよ うに引き延ばされます。

\:

幅 0 のブレークポイント (\% と似ていますが、ソフトハイフ ン 文字は使いません)。

\newline

無視される改行。行を連続させるときのためです。

\{

条件入力の開始。

\}

条件入力の終了。

\(sc

2 文字の名前 sc を持つ特殊文字。セクション 特殊文字を参照 してください。

\[name]

任意の長さの名前 name を持つ名前付き文字 (というか、グリフ)。

\[comp1 comp2 ...]

要素 comp1, comp2, ... からなる複合グリフ。

\a

解釈されないリーダ文字。

\A’anything

anything が文字列、マクロ、ディバージョン、レジスタ、環境、ある いはフォント名として受け付けられるものの場合、 1 に展開します。 そうでない場合、 0 になります。

\b’abc...

角括弧を作る関数。

\B’anything

anything が正しい数値表現として受け付けられるものの場合、 1 に 展開します。そうでない場合、 0 になります。

\c

テキスト処理を中断します。

\C’char

char と呼ばれる文字。 \[char] と同じですが、他の roff バージョ ンと互換性があります。

\d

垂直単位で 1/2 em だけ前方 (下) に移動します (nroff で は 1/2 行です)。

\D’charseq

charseq 中の文字で定義されたグラフィカルな要素を描きます。詳細 は groff info ファイルを参照してください。

\e

現在のエスケープ文字を表示する時の表記。

\E

エスケープ文字と等価ですが、コピーモードでは評価さ れ ま せ ん。

\fF

1 文字の名前もしくは 1 個の数字 F を持つフォントに変更しま す。

\fP

元のフォントに戻します。

\f(fo

2 文字の名前もしくは 2 桁の数字 fo を持つフォントに変 更 します。

\f[font]

任 意の長さの名前もしくは数式 font で表されるフォントに変更しま す。

\f[]

元のフォントに戻します。

\Ff

1 文字の名前 f を持つフォントファミリに変更します。

\F(fm

2 文字の名前 fm を持つフォントファミリに変更します。

\F[fam]

任意の長さの名前 fam を持つフォントファミリに変更します。

\F[]

元のフォントファミリに戻します。

\g[reg]

リクエスト .af に適した、名前 reg を持ったレジスタのフォー マッ トを返します。別の形式として \g(xy および \gx があります。

\h’N

局所的な水平移動。右側へ N だけ移動します (負の値のとき は左側へ移動します)。

\H’N

現在のフォントの高さを N に設定します。

\k[reg]

任意の長さの名前 reg を持つレジスタ中の水平入力位置をマークしま す。別の形式では \k(xy\kx です。

\l’Nc

水平線描画関数 (文字 c を用いることも可能です)。

\L’Nc

垂直線描画関数 (文字 c を用いることも可能です)。

\m[color]

color に変更します。他の形式として、 \m(co か、 \mc がありま す。

\m[]

元の色に戻します。

\M[color]

閉じた描画オブジェクトの塗りつぶし色を、色 color に変更します。 他の形式として、 \M(co か、 \Mc があります。

\M

元の塗りつぶし色に戻します。

\nr

1 文字の名前 r を持つレジスタ変数に格納されている数値。

\n(re

2 文字の名前 re を持つレジスタ変数に格納されている数値。

\n[reg]

任意の長さの名前 reg を持つレジスタ変数に格納されている数値。

\N’n

現在のフォントで、コード n で指定された文字を出 力 し ま す。 特別フォントは検索されません。リクエスト char を用いて文字 にフォントを追加するときに便利です。

\o’abc...

文字 a, b, c, などを 2 度打ちします。

\O0

グリフ出力を無効にします。内部使用が主な目的です。

\O1

グリフ出力を有効にします。内部使用が主な目的です。

\p

改行し、その出力行を引き延ばします。

\r

垂直方向に 1 em 逆戻りします (nroff では 1 行逆 戻 り し ま す)。

\R’name ±n

リクエスト .nr name ±n と同じです。

\s[±N]

ポイントサイズを N スケールポイントに設定します。別の書 式として \s±[N], \s’±N, \s±N, \s(±xy, \s±(xy, \s±x が使え る ことに注意してください。これは、リクエスト ps と同じです。

\S’N

出力を N 度傾けます。

\t

解釈されない水平タブ。

\u

垂直方向に 1/2 em 逆戻りします (nroff では 1/2 行逆戻りしま す)。

\v’N

局所的な垂直移動。 N だけ下がります (負の値のときは上 が ります)。

\V[env]

環境変数 env の内容。別の書式では、 \V(xy\Vx が使えます。

\w’string

文字列 string の幅。

\x’N

さらに行送りする関数 (負の値なら前へ、正の値なら後ろへ行 送りします)。

\X’string

string をデバイス制御関数として出力します。

\Y[name]

文字列変数あるいはマクロ name をデバイス制御関数として解釈し な いように出力します。別の書式では、 \Y(xy\Yx になります。

\zc

幅 0 (空白なし) で c を出力します。

\Z’anything

anything を出力し、水平・垂直位置を元に戻します。 anything には タブやリーダを含めてはなりません。

エスケープシーケンス \e, \., \", \$, \*, \a, \n, \t, \g および \newline はコピーモードで解釈されます。

\( あるいは \[ で始まるエスケープシーケンスは 1 文字のエスケープシーケ ンスを表すものではなく、2 つ以上の文字を持ったエスケープ名の開始を示 し ます。

バッ クスラッシュの後に定義済みのエスケープシーケンスを形成しない文字が 続く場合は、バックスラッシュは黙って無視され、文字そのものがマップさ れ ます。

特殊文字

よ く 使 われる特殊文字は、文字 xy を用いた \(xy の形式のエスケープ シーケンスであらかじめ定義されています。特殊文字の中には通常のフォン ト に 含まれているものも一部ありますが、ほとんどは特別フォントでしか利用で きません。最も重要なグリフを抜き出したものを次に示します。完全なリス ト は、 groff_char(7) にあります。

\(bu

中黒

\(co

著作権記号

\(ct

セント記号 (通貨)

\(dd

2 重ダガー

\(de

度記号

\(dg

ダガー

\(rs

印刷可能な二重引用符

\(em

全角ダッシュ

\(hy

ハイフン

\(rg

登録記号

\(rs

印刷可能なバックスラッシュ文字

\(sc

セクション記号

\(ul

アンダライン文字

\(==

等号

\(>=

以上

\(<=

以下

\(!=

不等号

\(->

右矢印

\(<-

左矢印

\(+-

プラスマイナス記号

文字列

文 字列は、リクエスト ds を用いて定義し、エスケープシーケンス \* を用い て値を取り出すことができます。

文字列はマクロと名前空間を共有します。ですから、文字列と引数無しのマ ク ロ はおおむね等価です。文字列をマクロのように呼び出すことも、その逆も可 能です。しかし、このやり方はしばしば予想の付かない結果を招くことにな り ます。 groff では、以下の文字列があらかじめ定義されています。

\*[.T]

コマンド行オプション -T により指定された、現在の出力 デバイス名。

レジスタ

レジスタは値を格納する変数です。 groff では、ほとんどのレジスタは数値を 格 納しますが (前述セクション 数式を参照してください)、なかには文字列値 を保持できるものもあります。

各レジスタには名前が与えられています。任意のレジスタを定義でき、リク エ スト nr register で定義・設定できます。

レ ジスタに格納された値は、エスケープシーケンス \n を用いて取り出すこと ができます。

最も有用なのは、定義済みのレジスタです。次からは、レジスタのことを話 し ているのだということを明確にするため、 name という表記を用いて register name レジスタのことを示します。 \n[] 修飾はレジスタ名の一部ではないこと を気にとめておいてください。

読み込み専用レジスタ

次 のレジスタは、ユーザが書き換えられない定義済みの値を持ったレジスタで す (通常、ドットで始まるレジスタは読み込み専用です)。ほとんどは、現在の 設 定についての情報を提供したり、リクエスト呼び出しからの結果を保存した りするものです。

\n[.$]

現在のマクロの引数の個数。

\n[.a]

最後に \x’N を用いて指定した行送り幅。

\n[.A]

オプション −A が使用されているときに troff 内で 1 が 設定されます。 nroff 内では常に 1 です。

\n[.c]

現在の入力行番号。

\n[.C]

互換モードが有効になっている場合は 1 で、そうでない 場合 0 です。

\n[.cdp]

現在の環境に追加された最後の文字の深さ。最後の文字 が基準線から下に突き出ている場合に正になります。

\n[.ce]

リクエスト ce で設定された、センタリングされる行の 残数。

\n[.cht]

現在の環境に追加された最後の文字の高さ。基準線より も上に文字が突き出ている場合に正になります。

\n[.color]

色機能が有効のとき 1 で、他の場合 0 です。

\n[.csk]

現在の環境に追加された最後の文字の傾き。文字の傾き とは、文字の上についたアクセント記号が文字の中央からどれだけ 右に離れて置かれるかということです。

\n[.d]

現在のディバージョンでの垂直方向の位置です。レジスタ register nl と同じです。

\n[.ev]

現在の環境の名前もしくは番号です (文字列の値です)。

\n[.f]

現在のフォント番号です。

\n[.fam]

現在のフォントファミリです (文字列の値です)。

\n[.fn]

現在の (内部) 実フォント名 (文字列の値です)。

\n[.fp]

次に空いているフォント位置番号。

\n[.g]

GNU troff では常に 1 です。マクロ中で groff で動作し ているかどうかをテストする場合、このレジスタを使用すべ き で しょう。

\n[.h]

現在のページあるいはディバージョンでのテキスト基準線 の最高点です。

\n[.H]

利用可能な水平方向の解像度 (基本単位です)。

\n[.height]

現在のフォントの高さ。これは \H により設定されたもの。

\n[.hla]

リクエスト .hla で設定された現在のハイフネーション 言語。

\n[.hlc]

直前で連続したハイフネーション行数。

\n[.hlm]

連続したハイフネーション行数の許される最大値。これ は、リクエスト hlm で設定されます。

\n[.hy]

現在のハイフネーションフラグ (リクエスト hy で設 定 されます)。

\n[.hym]

現在のハイフネーションの余白 (リクエスト hym で設 定されます)。

\n[.hys]

現在のハイフネーションの空白 (リクエスト hys で 設 定されます)。

\n[.i]

現在のインデント。

\n[.in]

現在の出力行に対して適用されるインデント。

\n[.int]

最後に出力した行に \c が含まれていれば正です。

\n[.kern]

ペアワイズカーニングが有効になっている場合 1 で、 無効になっていれば 0 です。

\n[.l]

現在行の長さです。

\n[.lg]

現在の合字モード (リクエスト lg で設定されます)。

\n[.linetabs]

現在の行タブモード (linetabs リクエストによって設定 さ れ ま す)。

\n[.ll]

現在の出力行に対して適用される行の長さ。

\n[.lt]

タイトルの長さ (リクエスト lt で設定されます)。

\n[.n]

直前の出力行でのテキスト部分の長さ。

\n[.ne]

トラップを生起させる原因となった最後のリクエスト ne が必要とした空白の量。このレジスタは、 register .trunc と 一 緒に使用すると便利です。

\n[.ns]

空白なしモードであれば 1 で、そうでなければ 0 が設 定されます。

\n[.o]

現在のページのオフセット。

\n[.p]

現在のページの長さ。

\n[.pe]

ページ送出 (ejection) 中には 1 で、そうでなければ 0 が設定されます。

\n[.pn]

次ページの番号。これは、リクエスト pn で定義された 値もしくは現在ページに 1 を足した番号のいずれかです。

\n[.ps]

スケールポイントで表した現在のポイントサイズ。

\n[.psr]

最後に要求された、スケールポイントで表したポイント サイズ。

\n[.pvs]

現在の垂直方向の後付け行送り量 (post-vertical line spacing)。

\n[.rj]

リクエスト rj によって設定された右寄せされ る 行 の 数。

\n[.s]

10 進小数での現在のポイントサイズ。

\n[.slant]

現 在 のフォントのスラントの値。これは \S で設定されたもので す。

\n[.sr]

10 進小数での最後に要求されたポイントサイズ (文字列 値)。

\n[.t]

次のトラップまでの距離。

\n[.T]

オプション −T が使われている場合 1 に設定されます。

\n[.tabs]

現在のタブ設定の文字列表現。リクエスト ta に対す る引数として使用するのに適しています。

\n[.trunc]

最近の垂直位置トラップによって切り詰められた垂直スペー ス の 量。リクエスト ne によるトラップが引き起こされた場合は、 .ne リクエストによって生じた垂直移動量をさらにマイナスした値にな り ま す。別の言い方をすれば、トラップが発生した時点での、ト ラップが起きなかった場合の垂直位置と現在の垂直位置との差を表 し て います。レジスタ register .ne と一緒に使用すると便利で す。

\n[.ss]

リクエスト ss の第 1 引数によって設定されたパラメー タの値。

\n[.sss]

リクエスト ss の第 2 引数によって設定されたパラ メータの値。

\n[.u]

行連結モードのときは 1 で、そうでなければ 0 です。

\n[.v]

現在の垂直方向の行送り量。

\n[.V]

利用可能な垂直方向の解像度 (基本単位です)。

\n[.vpt]

垂直位置トラップが有効なら 1 で、無効なら 0 です。

\n[.w]

直前の文字の幅。

\n[.warn]

現在有効になっている警告の番号コードの和。

\n[.x]

メジャーバージョン番号。

\n[.y]

マイナバージョン番号。

\n[.Y]

groff のリビジョン番号。

\n[.z]

現在のディバージョン名。

書き込み可能なレジスタ

次 のレジスタは、ユーザによって読み書き可能です。定義済みのデフォルト値 を持っていますが、ドキュメントをカスタマイズするために変更できます。

\n[%]

現在のページ番号。

\n[c.]

現在の入力行番号。

\n[ct]

文字の種類 (幅関数 \w で指定されます)。

\n[dl]

最後に行われたディバージョンの最大幅。

\n[dn]

最後に行われたディバージョンの高さ。

\n[dw]

現在の曜日 (1-7)。

\n[dy]

現在の日 (1-31)。

\n[hours]

深夜 0 時からの時刻。起動時に初期化されます。

\n[hp]

現在の入力行における水平位置。

\n[llx]

与えられた PostScript 画像 (.psbb で設定され ま す) の左下 x 座標 (PostScript の unit)。

\n[lly]

与えられた PostScript 画像 (.psbb で設定されます) の左下 y 座標 (PostScript 単位)。

\n[ln]

出力行番号。

\n[minutes]

時刻の中の分数。起動時に初期化されます。

\n[mo]

現在の月 (1-12)。

\n[nl]

最後に表示されたテキストの基準線の垂直方向の位置。

\n[rsb]

register sb と同様ですが、文字の高さおよび深さを 勘 定に含めています。

\n[rst]

register st と同様ですが、文字の高さおよび深さを勘 定に含めています。

\n[sb]

文字列の、基準線の下側の深さ (幅関数 \w で生成されま す)。

\n[seconds]

現在の 1 分の中の秒数。起動時に初期化されます。

\n[skw]

\w 引数の最後の文字の中央からの右スキップ幅。

\n[slimit]

0 よりも大きければ、入力スタック上のオブジェクトの最大数。 0 以下であれば、制限はありません。つまり、仮想メモリを使い果た すまで再帰呼び出しし続けることができます。

\n[ssc]

添字の直前にある文字に追加すべき水平方向の空白量 ( 幅関数 \w で生成されます) (負の値になる可能性もあります)。

\n[st]

文字列の、基準線の上の高さ (幅関数 \w で生成さ れ ま す)。

\n[systat]

最 後 の sy リクエストによって実行された system() 関数の戻り 値。

\n[urx]

与えられた PostScript 画像 (.psbb で設定され ま す) の右上 x 座標 (PostScript 単位)。

\n[ury]

与えられた PostScript 画像 (.psbb で設定されます) の右上 y 座標 (PostScript 単位)。

\n[year]

現在の年 (2000 年問題対応済みです)。

\n[yr]

現在の年から 1900 を引いたものです。 2000 年問題対応 に す る にはレジスタ register year を代わりに使用してくださ い。

互換性

groff 言語を、 [CSTR #54] で定義された古典的な troff と比較した際の違い については、 groff_diff(7) に記載されています。

groff システムは互換モードを提供しています。このモードをどのようにして 呼び出すかについては、 groff(1) を参照して下さい。

バグ

バグは groff bug mailing list宛に報告下さい。それ自体で完全な、十分な説明を含み、バグが再 現 可能な例に、どのバージョンの groff を使っていたかも含めて下さるようお願 い致します。

作者

Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.

このドキュメントは、FDL (GNU Free Documentation License) バージョン 1.1 以降の条項のもとに配布されています。システムに FDL のコピーがあるはずで すし、 GNU copyleft siteからオンラインで入手可能です。

本ドキュメントは、 groff すなわち GNU roff ディストリビューションの一部 です。 Bernd Warkenによって書かれ、 Werner Lembergが保守しています。

関連項目

groff 言語の主な情報源は groff info(1) ファイルです。めちゃくちゃ詳しい 説明に加え、例もたくさん含まれています。

groff(1)

groff プログラムの用法と文書へのポインタと groff システムを入手 する方法。

groff_diff(7)

古典的 roff と比較した際の groff 言語の違い。これは、groff 固有 の予め定義された言語要素についての権威ある文書です。

groff_char(7)

予め定義された groff 文字 (グリフ)。

groff_font(5)

フォントと DESC ファイルの仕様。

roff(7)

roff の歴史、roff システムすべてに共通の部分について、更に詳 し い文書へのポインタ。

[CSTR #54]

Nroff/Troff User's Manual by Osanna & Kernighan — 古典的 troff に関するバイブル。

スポンサーリンク