スポンサーリンク

GROFF

名称
書式
解説
オプション
GROFF の使用法
環境変数
関連ファイル
使用例
バグ
入手性
作者
関連項目

名称

groff − groff ドキュメントフォーマットシステムのフロントエンド

書式

groff [−abcegilpstzCEGNRSUVXZ] [−d cs] [−f fam] [−F dir] [−I dir] [−L arg] [−m name] [−M dir] [−n num] [−o list] [−P arg] [−r cn] [−T dev] [−w name] [−W name] [file ...]

groff −h | −−help

groff −v | −−version [option ...]

コ マンドラインは、GNU の慣習にしたがって解析されます。コマンドラインオ プションとその引数との間の空白は、省略可能です。オプションは、1 つの (マイナス符号) の後にまとめて記述して構いません。ファイル名として (マ イナス符号) を指定した場合、標準入力を表します。

解説

この文書は、 groff ドキュメントフォーマットシステムの主要フロントエンド プ ログラムである groff プログラムについて記述してあります。 groff プロ グラムとマクロスイートは、フリーソフトウェアコレクション GNUに含まれ る、 roff(7) システムの実装です。 groff システムは、古典的な roff の持つすべ ての特徴を持ち、さらに多くの拡張が追加されています。

groff プログラムによって、 groff システム全体をコマンドラインオプション で制御することができます。これは、(パイプのみを使用していた) 古典的なも のに比べ、とても単純化したものとなっています。

オプション

grofftroff へのラッパプログラムなので、両方のプログラムはオプション の集合を共有します。しかし groff プログラムには、いくつかネイティブオプ ションが追加されており、またいくつかの troff オプションには新しい意味が 与 えられています。また逆に、 troff オプションのすべてが groff へ与えら れるわけではありません、

ネイティブ groff オプション

以下のオプションは、 troff には存在しないか、 groff によって異なった 解 釈をされるものです。

−e

eqn を使って前処理を行います。

−g

grn を使って前処理を行います。

−G

grap を使って前処理を行います。

−h −−help

ヘルプメッセージを表示します。

−I dir

soelim(1) で使用される検索ディレクトリを追加します。こ のオプションは −s オプションを暗黙的に指定します。

−l

印刷のために、出力をスプーラプログラムに送ります。これに 使 われるコマンドは、デバイス記述ファイルの print コマンドによって 指定されます。デバイス記述ファイルについては、 groff_font(5) を 参 照して下さい。このコマンドが存在しない場合、デフォルトで出力 は lpr(1) プログラムへパイプされます。オプション −L−X を 参 照してください。

−L arg

arg をスプーラプログラムへ渡します。複数の引数は、それ ぞれ別の −L オプションで渡す必要があります。 groff は、引数をス プーラプログラムに渡す際に、 arg の前に (マイナス符号) をつけ たりしないことに注意してください。

−N

eqn の区切り文字間に改行が入ることを禁止します。これは eqn−N オプションと同様です。

−p

pic を使って前処理を行います。

−P −option

−P −option −P arg

後 処理プログラムへ −option もしくは −option arg を渡します。オ プションには、必要なマイナス符号 ‘−’ や ‘−−’ を前につけて指定し な ければなりません。というのも、groff は、いかなるダッシュも前 につけて後処理プログラムに渡したり し な い か ら で す。 例 え ば、gxditview 後処理プログラムにタイトルを渡す場合、シェルコマ ンド

sh# groff −X −P −title −P ’groff it’ foo

sh# groff −X −Z foo | gxditview −title ’groff it’ −

と同等です。

−R

refer を使って前処理を行います。 refer に引数を渡す仕組みは 提 供 されていません。というのも、ほとんどの refer オプションに は、文書中で指定できる等価な言語要素があるから で す。 詳 細 は refer(1) を参照してください。

−s

soelim を使って前処理を行います。

−S

より安全なモード。 −S オプションを pic に渡し、次の troff リクエストを無効化します: .open, .opena, .pso, .sy, .pi 。 セ キュリティ上の理由から、安全なモードはデフォルトで有効です。

−t

tbl を使って前処理を行います。

−T dev

出 力 デバイスを dev に設定します。 troff とは違い、 grofftroff の中間出力を最終フォーマットに変換するために後処 理プログラムを呼び出します。 groff の実デバイスは次の通りです。

dvi

TeX DVI フォーマット (後処理プロ グ ラ ム は grodvi です)。

html

HTML 出力 (前処理プログラムは soelimpre-grohtml で、後処理プログラムは post-grohtml です)。

lbp

Canon CAPSL プリンタ (LBP-4 と LBP-8 のシ リーズのレーザプリンタ。後処理 プ ロ グ ラ ム は grolbp です)。

lj4

HP LaserJet4 互換 (または他の PCL5 互換) プ リンタ (後処理プログラムは grolj4 です)。

ps

PostScript 出力 (後処理プログラムは grops で す)。

下 記の TTY 出力デバイス (後処理プログラムは常に grotty です) に 対しては、 −T が出力エンコードを選択します:

ascii

7 ビット ASCII。

cp1047

EBCDIC ホスト用の Latin-1 文字集合。

latin1

ISO 8859-1。

utf8

UTF-8 エンコードの Unicode 文字集合。

下記の引数は gxditview を ‘後処理プログラム’ として選択します ( これはどちらかというと閲覧プログラムですが):

X75

75dpi 解像度の 10pt 文書ベースフォント。

X75-12

75dpi 解像度の 12pt 文書ベースフォント。

X100

100dpi 解像度の 10pt 文書ベースフォント。

X100-12

100dpi 解像度の 12pt 文書ベースフォント。

デフォルトのデバイスは ps です。

−U

安全でないモード。 (古い) 安全でない動作に戻します。 −S オ プションを参照してください。

−v −−version

groff と、groff から起動されるすべてのプログラムのバージョン 情 報 を出力します。つまり、指定されたコマンドラインは通常どおりに 解析され、すべてのサブプログラムに −v を渡します。

−V

実行せずに、(ラッパプログラムとしての) groff によって実行さ れるパイプラインを出力します。

−X

通常の後処理プログラムの代りに、 gxditview を起動して文書を プレビューします。オプション −l−L で指定されたプリ ン タ ス プーラの動作は、 gxditview(1) の −printCommand オプションへの引 数によって gxditview(1) へと渡されます。これによって、デフォ ル トの Print アクションと対応するメニューエントリとが、その値へと 設定されます。 −X は、 −Tps, −TX75, −TX75-12, −TX100, −TX100-12 が 指 定 された時のみ、よい結果を生成します。 −Tps の出力をプレ ビューする時のデフォルト解 像 度 は 75dpi で す。 こ れ は、 −resolution オプションを gxditview に渡すことで変更可能です。例 えば以下のようにします。

sh# groff −X −P−resolution −P100 −man foo.1

−z

troff からの出力を捨てます。エラーメッセージのみが表示さ れ ます。

−Z

通常 groff から自動的に呼ばれる troff の出力を、後処理しま せん。これによって中間出力は標準出力へと 書 き 出 さ れ ま す。 groff_out(5) を参照してください。

透過オプション

以 下のオプションは、groff から引き続いて呼ばれるフォーマットプログラム troff へと、透過的に引き継がれます。これらのオプションの詳しいこと は、 troff(1) で説明されています。

−a

ASCII 文字のみの近似的な出力を行います。

−b

エラーや警告をバックトレースします。

−c

カラー出力を無効にします。

−C

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

−d cs

−d name=s

文字列を定義します。

−E

troff のエラーメッセージを無効にします。

−f fam

デフォルトのフォントファミリを設定します。

−F dir

フォントファイルと DESC ファイルへのパスを設定します。

−i

指定された入力ファイルの後に、標準入力を処理します。

−m name

マ クロファイル name.tmac (もしくは tmac.name) を取り込みます。 groff_tmac(5) も参照してください。

−M dir

マクロファイルへのパスです。

−n num

最初のページを num とします。

−o list

list 中のページのみ出力します。

−r cn

−r name=n

数値レジスタを設定します。

−w name

警告 name を有効にします。

−W name

警告 name を無効にします。

GROFF の使用法

groff システムは、古典的な roff のインフラストラクチャを実装し て い ま す。 一 般 的 に roff システムがどのように動作しているかを調べるには、 roff(7) を参照してください。 groff システムにはフロントエンドプログラム が 備わっているために、 groff の使用は、 古典的な roff に比べてとても容 易となっています。この節では、groff システムの構成部分について概観し ま す。これは、groff に特化した機能とともに roff(7) を補完するものです。こ の節は、groff システムまわりの文書へのガイドと見ることもできます。

フロントエンド

groff プログラムは、 troff(1) プログラムを包むラッパです。こ れ に よっ て、 コマンドラインオプションからプリプロセッサを指定することができ、ま た指定されたデバイスに適した後処理プログラムを自動的に実行することが で きます。このようにすることで、たまに長々となる古典的な roff(7) のパイプ 機構を避けることができます。

grog(1) プログラムは、ファイルをフォーマットするための適切な groff のコ マンドラインを推測するのに使われます。

groffer(1) プログラムは、groff ファイルや man page 用のオールラウンドの ビュアです。

プリプロセッサ

groff のプリプロセッサは、古典的なプリプロセッサに適度な拡張を施して 再 実装したものです。 groff パッケージで配布されているプリプロセッサは以下 です:

eqn(1)

は、数学の式用。

grn(1)

は、 gremlin(1) 図の取り込み用。

pic(1)

は、作図用。

refer(1)

は、参考文献目録用。

soelim(1)

は、標準位置からのマクロファイル取り込み用。

tbl(1)

は、表作成用。

これらの他にも、いくつかの内部的なプリプロセッサがあり、いくつかのデ バ イ ス に 対して自動的に実行されます。これらは、ユーザからは認識できませ ん。

マクロパッケージ

オプション −m によって、マクロパッケージを取り込めます。 groff システム で は、古典的なすべてのマクロパッケージを互換性を保った形で拡張して実装 し、さらにいくつかの独自のパッケージを追加しています。実際には、以下 の マクロパッケージが groff に付属しています:

man

伝統的な man page 形式。 groff_man(7) を参照してください。 これは、コマンドラインから −man もしくは −m man のように指定 で きます。

mandoc

man page 用の一般的なパッケージです。文書に man 形式か mdoc 形式が使用されているかどうかは自動的に見分けられ、対応する マ ク ロ パッ ケー ジ に 分岐します。これは、コマンドラインから −mandoc もしくは −m mandoc のように指定できます。

mdoc

BSD スタイルの man page 形式です。 groff_mdoc(7) を参照し て く ださい。これは、コマンドラインから −mdoc もしくは −m mdoc のように指定できます。

me

古典的な me 文書形式です。 groff_me(7) を参照してください。 こ れは、コマンドラインから −me もしくは −m me のように指定でき ます。

mm

古典的な mm 文書形式です。 groff_mm(7) を参照してください。 こ れは、コマンドラインから −mm もしくは −m mm のように指定でき ます。

ms

古典的な ms 文書形式です。 groff_ms(7) を参照してください。 こ れは、コマンドラインから −ms もしくは −m ms のように指定でき ます。

www

任意の groff 文書に含めるための HTML に似たマク ロ で す。 groff_www(7) を参照してください。

マクロファイルの命名やそれらの場所についての詳細は、 groff_tmac(5) に書 かれています。

プログラミング言語

すべての roff プログラミング言語に共通する一般的な概念は、 roff(7) に記 述があります。

古典的な troff 言語に対する groff 拡張については、 groff_diff(7) に文書 化されています。

groff 言語の全体は、(未だ不完全ですが) groff info ファイルに記述され て い ます。簡潔な (しかし完全な) リファレンスは、 groff(7) に書かれていま す。

フォーマッタ

groff システムに含まれている中心的な roff フォーマッタは、 troff(1) で す。これは、古典的な troff と nroff の両方の特徴に加え、 groff 拡張も備 えています。コマンドラインオプション −C によって、古典的な roff をで き るだけエミュレートしようとする compatibility mode に、 troff を切り替え ることができます。

古典的な nroff の動作をエミュレートするシェルスクリプト nroff(1) もあり ま す。 こ れは、現在のロケールにしたがって、自動的に適切な出力エンコー ディングを選択しようと試みます。

フォーマッタプログラムは 中間出力を生成します。 groff_out(7) を参照して ください。

デバイス

roff では、出力ターゲットを デバイスと呼びます。デバイスは、プリンタの ようなハードウェアの一部であることもあれば、ソフトウェアのファイル形 式 であることもあります。デバイスはオプション −T で指定します。 groff のデ バイスは以下の通りです:

ascii

ascii(7) 文字集合を用いたテキスト出力。

cp1047

EBCDIC コードページの IBM cp1047 を用いたテキスト出力 ( 例えば OS/390 Unix)。

dvi

TeX の DVI 形式。

html

HTML 出力。

latin1

ISO Latin-1 (ISO 8859-1) 文字集合を用いたテキスト出力。 iso_8859_1(7) を参照してください。

koi8-r

ロシア語の KOI8-R 文字集合を用いたテキスト出力。

lbp

Canon CAPSL プリンタ用出力 (LBP-4 と LBP-8 シリーズの レー ザプリンタ)。

lj4

HP LaserJet4 互換 (または他の PCL5 互換) プリンタ。

ps

PostScript 出力。プリンタや gv(1) のようなプレビュアに適し ています。

utf8

UTF-8 エンコードした Unicode (ISO 10646) 文字集合を用いた テキスト出力。 unicode(7) を参照してください。

X75

xditview(1x) や gxditview(1) のようなプレビュアに適し た、75dpi の X Window System 出力。 12pt 文書のベースフォント用 は X75-12 です。

X100

xditview(1x) や gxditview(1) のようなプレビュアに適し た、100dpi の X Window System 出力。 12pt 文書のベースフォン ト 用は X100-12 です。

デ バイスに対して使用される後処理プログラムは、デバイス記述ファイル中の postpro コマンドで指定されます。 groff_font(5) を参照してください。これ は −X オプションで上書きされます。

デフォルトのデバイスは ps です。

後処理プログラム

groff は 3 つのハードウェア用後処理プログラムを備えています:

grolbp(1)

いくつかの Canon プリンタ用。

grolj4(1)

HP LaserJet 4 互換と PCL5 互換プリンタ用。

grotty(1)

さ まざまなエンコーディングのテキスト出力用。例えばテキスト指向 端末やラインプリンタなど。

現在では、ほとんどの印刷や描画ハードウェアはオペレーティングシステム や デ バイスドライバ、ソフトウェアインタフェースによって扱われているため、 通常 PostScript を受け付けます。したがって、さらに多くのハードウェア デ バイス用後処理プログラムに対する差し迫った要求はないでしょう。

他の文書ファイル形式へ変換する groff ソフトウェアデバイスは以下です:

grodvi(1)

DVI 形式用。

grohtml(1)

HTML 形式用。

grops(1)

PostScript 用。

多 数存在するフリーの変換ツールと組み合わせることで、troff 文書を事実上 存在するどんなデータ形式へと変換するのにも、これで十分でしょう。

ユーティリティ

groff まわりの以下のユーティリティが利用可能です。

addftinfo(1)

groff とともに使う troff のフォント記述ファイルへ情報を追加しま す。

afmtodit(1)

PostScript デバイス用のフォント記述ファイルを作成します。

groffer(1)

groff ファイルと man page 用の一般的なビュアプログラム。

gxditview(1)

groff の X ビュア。GNU 版の xditview です。

hpftodit(1)

lj4 デバイス用のフォント記述ファイルを作成します。

indxbib(1)

文献目録データベースの逆引きインデックスを作成します。

lkbib(1)

文献目録データベースを検索します。

lookbib(1)

文献目録データベースを対話的に検索します。

pfbtops(1)

.pfb 形式中の PostScript フォントを ASCII 形式に変換します。

tfmtodit(1)

TeX DVI デバイス用のフォント記述ファイルを作成します。

xditview(1x)

X window と一緒に配布されている roff ビュア。

環境変数

通 常、以下の環境変数におけるパスの区切り文字はコロンですが、これはオペ レーティングシステムに依存して変わります。例えば、DOS や Windows では代 わりにセミコロンを使用します。

GROFF_BIN_PATH

こ の検索パスは $PATH の前に置かれ、 groff が起動するコマンドの ために使用されます。これが設定されていない場合、groff のバイ ナ リがインストールされたディレクトリが PATH の前に追加されます。

GROFF_COMMAND_PREFIX

同 時に別の roff の実装を実行する必要のある場合に備えて、 groff には、実行時に名前の衝突を引き起こす可能性のあるプログラムの ほ と んどにプレフィックスをつける機能が備わっています (デフォルト ではつきません)。歴史的にこのプレフィックスは文字 g でした が、 こ れはなんでも構いません。例えば、 gtroffgrofftroff を 表しており、 gtbltblgroff 版です。 GROFF_COMMAND_PREFIX を 異なる値に設定することで、別にインストールした roff を指定す ることができます。もっと正確に言うと、プレフィックス xxx が設定 さ れ た 場合、ラッパプログラムである grofftroff の代わりに xxxtroff を内部的に呼び出します。これは以下のプリプロセッサにも 適 用 さ れます: eqn, grn, pic, refer, tbl, soelim 。そして次の ユーティリティにも適用されます: indxbib および lookbib 。この機 能 は、 上にあげたもの以外のプログラムには適用されません ( 特に groff 自身にも)。というのも、それらは groff パッケージ独自の も のだからです。

GROFF_FONT_PATH

デフォルトのリストに加えて、 devname ディレクトリを検索するため のディレクトリのリストです。詳細は troff(1) と groff_font(5) を 参照してください。

GROFF_TMAC_PATH

デ フォルトのリストに加えて、マクロファイルを検索するためのディ レクトリのリストです。詳細は troff(1) と groff_tmac(5) を参照し てください。

GROFF_TMPDIR

一 時的なファイルが作成されるディレクトリです。これが設定されて おらず、代わりに環境変数 TMPDIR が設定されていた場合 は、 一 時 ファイルはディレクトリ $TMPDIR に作成されます。それ以外の場合、 一時ファイルは /tmp に作成さ れ ま す。 refer(1), groffer(1), grohtml(1), grops(1) コマンドが一時ファイルを使用します。

GROFF_TYPESETTER

デ フォルトのデバイスをあらかじめ設定します。これが設定されてい ない場合は、デフォルトで ps デバイスが使用されます。このデバ イ ス名は、オプション −T で上書きされます。

関連ファイル

groff が、自身のデータファイルをインストールするディレクトリはいくつか あります。異なるオペレーティングシステムには、異なるインストールの慣 習 が あるため、それらの位置はまったく固定されていません。しかしそれらの機 能は明確に定義されており、すべてのシステムで一致しています。

groff マクロディレクトリ

ここにはマクロパッケージに関するすべての情 報 が 含 ま れ て い ま す。 groff_tmac(5) に書かれているとおり、それらのファイルのために 1 つ以上の ディレクトリが検索されることに注意してください。この文書に対応してイ ン ス トー ルされた groff では、これは /usr/share/tmac です。 groff マクロ ディレクトリに含まれる以下のファイルには、特別な意味があります:

troffrc

troff の初期化ファイル。これは、マクロセットや何の入力も読ま な いうちに troff によって解釈されます。

troffrc-end

最後の troff 起動ファイルです。これは、すべてのマクロセットが読 み込まれてから解析されます。

name.tmac

tmac.name

マクロパッケージ name 用のマクロファイルです。

groff フォントディレクトリ

ここには出力デバイスに関するすべての情報が含まれています。それらの ファ イ ル の ために、1 つ以上のディレクトリが検索されることに注意してくださ い。 troff(1) を参照のこと。この文書に対応してインストールされた groff で は、これは /usr/share/groff_font です。 groff フォントディレクトリに 含まれる以下のファイルには、特別な意味があります:

devname/DESC

デバイス name 用のデバイス記述ファイルです。 groff_font(5) を参 照してください。

devname/F

デバイス name のフォント F 用のフォントファイルです。

使用例

以 下の例は、 troff を包むラッパである groff プログラムの能力を説明する ものです。

プリプロセッサ tblpic を用い、 me マクロセットを使って roff ファ イ ルを処理するには、古典的な troff では以下のように呼び出さねばなりません でした。

sh# pic foo.me | tbl | troff −me −Tlatin1 | grotty

groff を使うと、このパイプを以下のような等価なコマンドへと短くするこ と ができます。

sh# groff −p −t −me −T latin1 foo.me

これを呼び出すさらに簡単な方法は、 grog(1) を用いてプリプロセッサとマク ロオプションを推測し、生成されたコマンドを実行すること で す ( バッ ク クォートを使用して、シェルコマンド置換を指定します)。

sh# `grog −Tlatin1 foo.me`

最 も 単 純な方法は、以下を呼び出して自動化された方法で内容を見ることで す。

sh# groffer foo.me

バグ

EBCDIC ホスト (例えば OS/390 Unix) 上では、出力デバイス asciilatin1 は 利用できません。同様に、EBCDIC コードページ cp1047 用の出力は、ASCII ベースのオペレーティングシステムでは利用できません。

バグレポートは、bug-groff@gnu.org までお願いします。レポートの際には バ グを再現できる完全な例題を添付し、あなたの利用している groff のバージョ ンを添えて下さい。

入手性

groff の入手方法や関連情報は、 GNU websiteから入手できます。もっとも最近リリー ス されたバージョンの groff は、 groff development siteから anonymous ftp で入手できます。

3 つの groff メーリングリストが利用できます:

bug-groff@gnu.org は、バグレポート用です。

groff@gnu.orgは、groff に関する一般的な議論用です。

groff-commit@ffii.orgは、CVS リポジトリへのコミットログを流す、投稿不可のメーリン グリストです。

CVS でのアクセスやそれ以上の詳細は、 groff のソースパッケージの トッ プ ディレクトリにある README ファイルに書かれています。

grap プリプロセッサのフリーの実装があります。これは Ted Faberによって書かれまし た。実際のバージョンは grap websiteにあります。これは、groff でサポートされてい る 唯一の grap です。

作者

Copyright © 1989, 2002, 2003 Free Software Foundation, Inc.

こ の文書は、FDL (GNU Free Documentation License) バージョン 1.1 かそれ 以降のものに基づいて配布されています。あなたは、システム上に FDL の コ ピー を 受 け取っているはずですが、これは GNU copyleft siteからもオンラインで入手可能で す。

この文書は、 James Clarkによって書かれたオリジナルの groff の man page に基づいて い ます。これは、 Bernd Warkenによって書き直され、書き足され、FDL ライセンスに変更 されました。これは、 Werner Lembergによって保守されています。

groff は、GNU のフリーソフトウェアプロジェクトです。 groff パッケージ全 体 は、GNU のコピーレフトライセンスによって保護されています。ソフトウェ アのファイルは GNU General Public License (GPL) の下で配布されてお り、 ほ とんどの文書ファイルには GNU Free Documentation License (FDL) が使用 されています。

関連項目

groff info ファイルには、1 つの文書内に groff システムのすべての情報 が 含 まれています。このすべての面にわたる詳細な説明書の下には、例題や背景 に関する情報が提供されています。これを読むには、 info(1) を参照してくだ さい。

複 雑な構成をしているため、groff システムにはたくさんの man page があり ます。これらは man(1) や groffer(1) で読むことができます。

手引きや歴史、そしてさらなる読み物:

roff(7)

groff ファイル用ビュア:

groffer(1), gxditview(1), xditview(1x)

フォーマッタ用ラッパプログラム:

groff(1), grog(1)

roff プリプロセッサ:

eqn(1), grn(1), pic(1), refer(1), soelim(1), tbl(1), grap(1)

groff 拡張を含む roff 言語:

groff(7), groff_char(7), groff_diff(7), groff_font(5)

roff フォーマッタプログラム:

nroff(1), troff(1), ditroff(7)

中間出力言語:

groff_out(7)

出力デバイス用後処理プログラム:

grodvi(1), grohtml(1), grolbp(1), grolj4(1), grops(1), grotty(1)

groff のマクロパッケージとマクロに特化したユーティリティ:

groff_tmac(5), groff_man(7), groff_mdoc(7), groff_me(7), groff_mm(7), groff_mmse(7), groff_mom(7), groff_ms(7), groff_www(7), groff_trace(7), mmroff(7)

利用可能なユーティリティ:

addftinfo(1), afmtodit(1), eqn2graph(1), groffer(1), gxditview(1), hpftodit(1), indxbib(1), lookbib(1), pfbtops(1), pic2graph(1), tfmtodit(1)

スポンサーリンク