スポンサーリンク

ROFF

名称
解説
歴史
ROFF の使い方
ROFF プログラム
ファイル名の拡張子
ROFF の編集
バグ
関連項目
作者

名称

roff − roff の清書のコンセプトと歴史

解説

roff とは清書プログラム群の一般名称です。 troff, nroff, ditroff, groff などの名前で知られています。 roff 清書システムは、拡張可能なフォー マッ ト 用言語と、印刷および他のテキスト書式への変換のための一連のプログラム からなります。伝統的には、これが Unix の主たるテキスト処理システムで し た。 すべての Unix 的なオペレーティングシステムは、いまだに roff システ ムをコアパッケージとして配布しています。

今日、最も一般的な roff システムはフリーソフトウェアでの実装である GNU roff, groff(1) です。 groff です。 groff より前の実装は 古典 (1973 年ま で遡ります) と呼ぶことにします。 groff は、古典である先祖の見た目や使用 感および機能を実装していますが、多くの拡張を持ちます。 groff ほとんどす べての計算機システムで利用できるため、今日では事実上の roff 標準と なっ ています。

古 い Unix システムでは、 Multics オペレーティングシステムのもっと古い runoff を実装した、 roff と呼ばれるバイナリを持つものがありました。 歴 史節を参照してください。このプログラムの機能は、古代の troff と比べてさ え限定されたものでした。これはもうサポートされていません。この結果、 こ の文書では、 roff という術語は常に roff システム一般を指し、古代の roff バイナリを指しません。

その古さにもかかわらず、roff は今日でも広く使用され て い ま す。 例 え ば、UNIX システムのマニュアルページ (man ページ) や多くのソフトウェア書 籍、システム文書、標準、企業の文書は roff で書かれています。テキスト デ バ イスに対する roff 出力は、いまだに並ぶもののないほど優れています。グ ラフィカルな出力も他のフリーの清書プログラムと同等の品質を持っていま す し、ものによっては商用システムのものよりも優れているときもあります。

roff のもっとも有名なアプリケーションは マニュアルページまたは単に man ページと呼ばれるものです。これは、多くのオペレーティングシステムにお い て、標準の文書化システムです。

こ の 文書は、 roff システムの開発にまつわる歴史的な事実、すべての roff バージョンに共通な使用側面や通常は groff(1) のようなフロントエンドに 隠 さ れてしまうような roff パイプラインの詳細、このフォーマット言語の一般 概要、roff ファイル編集のこつ、さらなる参考資料へのポインタを記述 し ま す。

歴史

roff テキスト処理システムは、非常に長い歴史を持ち、1960 年代まで遡りま す。 roff システム自身 Unix オペレーティングシステムと密に繋っていま す が、 そ の 根 源 は よ り昔のオペレーティングシステムである CTSS および Multics です。

runoff の先祖

roff の進化はオペレーティングシステムの歴史に密にかかわっています。その 先 祖 で あ る runoff は、 Jerry Saltzer によって CTSS (Compatible Time Sharing System) オペレーティングシステム上で書かれました。 1961 年と い う 早い時期です。 1963 年から CTSS が更に開発され、 Unix の有名な先祖で あるオペレーティングシステム Multicsになるとき、 runoff は文書テキスト処理 の 主 たる書式になりました。両オペレーティングシステムは当時非常に高価な計 算機上でのみ動作したので、それらは研究分野や政府や軍事の目的で主に使 用 されていました。

現代の roff に比べ、 runoff 言語の可能性は非常に限られていました。 1960 年代には、テキスト出力のみが可能でした。これは、長さ 2 のリクエストの集 合により実装可能でした。その多くは、roff でも同じく使用されています。こ の言語は、計算機世代以前の清書習慣に従ってモデル化されたものでした。 原 稿 中のドットで開始する行は、後で手動で清書を行う人に対する清書の指示を 表していたのです。

runoff プログラムは、最初に PL/1 言語で記述され、後に C プログラム言 語 の祖母である BCPL で記述されました。 Multics オペレーティングシステムで は、ヘルプシステムが runoff で扱われていました。これは、roff が Unix マ ニュ アルページを扱う仕事と似ています。 runoff 言語で書かれた文書は、現 存します。例えば Saltzer のホームページを見てください。 関連項目の節 を 参照してください。

古典的な nroff/troff システム

1970 年代には、Multics の子 Unix の人気がどんどんでてきました。これは、 購入可能なマシン上で動作することと、当時大学ではより簡単に入手 可 能 で あったためです。 MIT (the Massachusetts Institute of Technology) では、 Unix を実行する PDP-11 計算機からのグラフィックス出力デバイスで あ る、 Wang Graphic Systems CAT 清書機を動かす必要がありました。 runoff の機能 はこの目的には足りなかったので、 Josef F. Osanna の手により更に強力なテ キ ス ト フォーマットシステムへと開発されました。彼は、Multics オペレー ティングシステムの主たる開発者であり、いくつかの runoff ポートのプロ グ ラマでもあります。

runoff という名前は roff に縮められました。 Osanna のコンセプトである非 常に拡大された言語は、既に完全な roff システムのすべての要素を含んで い ま した。すべての現代的な roff システムは、このシステムとの互換性を実装 しようとしています。そのため、Joe Osanna は roff システムの父とも呼べる のです。

こ の 最初の roff システムは 3 個のフォーマットプログラムを持っていまし た。

troff

(植字機 roff) は、唯一のデバイスとして CAT 植字機用の グ ラフィカル出力を生成しました。

nroff

は、端末および行プリンタに適したテキスト出力を生成しまし た。

roff

は、以前の runoff プログラムの再実装でしたが、機能は限 定 さ れ て いました。このプログラムは後のバージョンで捨てられまし た。今日では、 roff という名前は、troff/nroff システム全体を 指 すために使用されます。

Osanna の最初のバージョンは PDP-11 アセンブリ言語で記述され、 1973 年に リリースされました。 Brian Kernighan が、これを C プログラミング言語 で 書 き 直すことで、 roff 開発に加わりました。 C バージョンは 1975 年にリ リースされました。

フォーマット言語 nroff/troff プログラムは、著名な Troff User’s Manual [CSTR #54] に記述されています。これは、1976 年に最初に出版され、 1992 年まで Brian Kernighan によって改訂され続けました。この文 書 は 古 典 troff の仕様書です。後のすべての roff システムは、この仕様との互換性を 確立しようと試みました。

1977 年に約 50 歳にて Osanna が心臓発作で死去した後は、 Kernighan が troff の開発を続けました。次のマイルストーンは、より多くのデバイスと中 間出力言語と後処理システムのサポートのために、一般的なインタフェース を troff に備えることでした。これは今日でも使用されていますので、これによ り、 roff システムの構造が完成しました。 ROFF の使い方の節を参照して く だ さい。 1979 年には、これらの斬新なシステムが論文 [CSTR #97] に記述さ れました。この新しい troff バージョンは、 groff を含む既存するすべて の よ り新しい troff システムの基礎となりました。システムによっては、この デバイス独立 troff だけで、 ditroff(7) と呼ばれるバイナリを持つものもあ り ます。すべての現代的な troff プログラムは、既に、完全な ditroff 機能 を自動的に提供します。

商用化

簡単に入手可能な Unix 7 オペレーティングシステムが商用化されたとき に、 大 き な 退化が発生しました。分岐したオペレーティングシステムが大量発生 し、互いに非互換な拡張をめぐって争いました。幸運なことに、これらの非 互 換性は、元の troff とは争いませんでした。すべての商用 roff システムは、 Osanna/Kernighan のオープンソースコードと文書を多用しましたが、それらに 些細な追加をしただけで “彼等” のシステムとして販売しました。

古 代 Unix と古典 troff のソースコードは、20 年もの間利用不可能でした。 幸運なことに、2001 年に Caldera が SCO UNIX を購入しま し た。 そ し て Caldera は、古代のソースコードに対する、非商用目的でのオンラインアクセ スを可能にしました。 関連項目を参照してください。

フリーの roff

商用 roff システムのいずれも、一般的な roff 開発の後継者の地位を獲得 で き ませんでした。誰もが各々の物にだけ興味があったのです。これは 1980 年 代に、一度は素晴しかった Unix オペレーティングシステムの急降下に繋が り ます。

急速に突き進む商用化への対抗策として、 AT&T Bell Labs は、彼等の Plan 9 オペレーティングシステムで救援プロジェクトを立ち上げようとしました。 こ れ は非商用にはソースコードですら自由に利用可能でしたが、プロプラエタリ なライセンスがあって、自由な開発を阻害していたのです。このコンセプト は 時 代遅れであったので、メインストリームの開発をまとめるプラットフォーム としては Plan 9 は受け入れられませんでした。

唯一の救済は、立ち上がりつつあったフリーのオペレーティン グ シ ス テ ム (386BSD, GNU/Linux 等) やソフトウェアプロジェクトによるもので、それは 1980 年代および 1990 年代のことです。これらは古代 Unix の機能と多くの拡 張 を 実 装していましたので、古い経験は失われなかったのです。 21 世紀に は、Unix 的なシステムは、再度、計算機産業におけるメジャーな要因になりま した — フリーソフトウェアのおかげで。

最 重 要 な フ リー roff プロジェクトは troff の GNU ポートです。 James Clark によって作成され、 GNU Public Licenseにされました。これは groff (GNU roff) と呼 ば れます。概要は groff(1) を参照してください。

groff システムは、依然として活発に開発されています。これは古典 troff と 互換ですが、多くの拡張が追加されています。ほとんどすべての計算機シス テ ムで利用できる、はじめての roff システムです — しかもフリーです。このた め、今日では groff が事実上の roff 標準となっています。

ROFF の使い方

ほとんどの人々は、実際に roff を使っていることにさえ気付かな い で しょ う。 システムマニュアルページ (man ページ) を読むときには、 roff がバッ クグラウンドで動作しているのです。 roff 文書は、生粋のビューア で あ る xditview(1x) で閲覧可能です。これは、X ウィンドウ配布物の標準プログラム です。 X(7x) を参照してください。明示的に roff を使うのもまた難しくはあ りません。

roff の実装によっては、ラッパプログラムがあり、シェルのコマンドラインか ら roff システムを簡単に使えるようにしています。例えば、GNU roff 実装で は、次のようになっています。古典 troff の長いコマンドパイプを避けるため のコマンドラインオプションを与えるために、 groff(1) が提供され て い ま す。 grog(1) プログラムは、文書をもとに、groff を起動するための引数を推 測します。コマンドラインオプションを指定したくない方は、 groffer(1) プ ログラムを試すと良いでしょう。こちらは、groff ファイルと man ページをグ ラフィカルに表示するためのものです。

roff パイプ

各 roff システムは、プリプロセッサ、roff フォーマットプログラム、一組の デバイスポストプロセッサ群からなります。このコンセプトは、 パイプライン 機構を多用します。それはすなわち、一連のプログラムが次々と呼ばれ、そ こ で は、行列上の各プログラムの出力が次のプログラムの入力となるというもの です。

sh# cat file | ... | preproc | ... | troff options | postproc

プリプロセッサは roff コードを生成し、これは roff フォーマッタ (例え ば troff) に与えられます。次に、roff フォーマッタが、 中間出力を生成し、こ れがデバイスポストプロセッサプログラムに与えられて印刷や最終出力に使 用 されます。

こ れらの部分すべてが、各自のプログラム言語を使用します。各言語は、他の 部分とは完全に独立です。更に、特殊用途向けの roff マクロパッケージも 含 めることが可能です。

ほ とんどの roff 文書は、なにがしかのパッケージのマクロを使用し、それら をプリプロセッサのコードと混ぜて使い、それらに素の roff 言語の要素で 味 付 けします。 roff フォーマット言語の完全な力は、ユーザはほとんどの場合 必要としません。マクロパッケージのプログラマだけが、そのすさまじい詳 細 を知る必要があるのです。

プリプロセッサ

roff プリプロセッサは、 roff フォーマット言語に構文的に従う出力を生成す る、任意のプログラムです。各プリプロセッサは、このプリプロセッサを通 す と、roff コードに変換されるような、自分自身の言語を定義します。このよう な言語で記述された部分は、roff 文書に埋め込めます。このような部分は、特 殊 な roff リクエストやマクロで識別されます。プリプロセッサコードで拡張 された文書は、対応するすべてのプリプロセッサを通してから、実際 の roff フォー マッ ト プログラムに通す必要があります。これにより、フォーマッタ が、外部コードを単に無視できるようになります。プリプロセッサプログラ ム は、文書のうち、自分自身のものと判断した部分のみを抽出して変換します。

フ リーおよび商用の roff プリプロセッサが多数あります。すべてのシステム で利用できるわけではないものものありますが、プリプロセッサのほんの小 さ な 集合は、 roff システムの一部とみなされます。古典的なプリプロセッサは 次の通りです。

tbl

表のためのものです。

eqn

数式のためのものです。

pic

図の描画のためのものです。

refer

参考文献の参照用です。

soelim

標準の場所からマクロファイルをインクルードす る ためのものです。

す べてのシステムで使用可能ではありませんが、他の有名なプリプロセッサは 次の通りです。

chem

化学式の描画のためのものです。

grap

グラフィカル要素を構築するためのものです。

grn

gremlin(1) 図を埋め込むためのものです。

フォーマットプログラム

roff フォーマッタは、roff フォーマット言語で記述された文書また は roff マ ク ロパッケージを使用する文書を、構文解析します。生成される 中間出力 は、フォーマットプログラムのコマンドラインオプションで指定されてい る、 単 一 の デバイスポストプロセッサに与えられることを意図しています。文書 は、必要なすべてのプリプロセッサに事前に通されていることが必要です。

roff フォーマッタが生成する出力は、もうひとつの言語、すなわち 中間出 力 書 式 や troff 出 力と呼ばれるもので表現されます。この言語は、最初に [CSTR #97] で仕様が記述されました。この GNU 拡張が groff_out(5) に記 述 さ れています。中間出力言語は、高位の roff 言語に対する、アセンブリ言語 のようなものです。生成された中間出力はある特殊デバイス用に最適化され た ものですが、言語はすべてのデバイスに共通です。

roff 生 成器は、roff システムの心臓です。典型的な roff は、2 個の生成 器、すなわちテキストデバイス用の nroff と、グラフィカルデバ イ ス 用 の troff を持っています。

しばしば、 troff という名前が、両方の生成器を指す一般術語として使用され ます。

デバイスとポストプロセッサ

デバイスとは、プリンタやテキスト端末やグラフィカル端末といっ た ハー ド ウェ アインタフェースや、別のテキスト形式やグラフィカル形式への変換のソ フトウェアインタフェースです。

roff ポストプロセッサは、troff 出力を、特殊デバイスに適した形式に変換す る プログラムです。 roff ポストプロセッサは、出力対象に対するデバイスド ライバのようなものです。

各デバイスに対し、そのデバイスに最適化されたポストプロセッサプログラ ム が あります。ポストプロセッサは、生成された中間出力を構文解析し、デバイ スに直接送られるデバイス固有コードを生成します。

デバイスおよびポストプロセッサの名前は固定ではありません。なぜなら、 こ れ らは一般的に、実際の計算機のソフトウェアおよびハードウェアの能力に依 存するからです。例えば、 [CSTR #54] で述べられている古典的なデ バ イ ス は、 古典的な時代から大部変わってしまいました。古いハードウェアはもはや 存在しませんし、古いグラフィカル変換器は、現在使えるものと比較する と、 非常に不正確です。

例 え ば、古典的な troff における Postscript デバイス post は解像度 720 でしたが、groff の ps デバイスは 72000 であり、100 倍の改善がなされてい ます。

今 日では、プリンタのようなほとんどのデバイスに対してはオペレーティング システムがデバイスドライバを提供しますので、それぞれのプリンタに対し て 特殊なハードウェアポストプロセッサを記述する必要はありません。

ROFF プログラム

roff を使用した文書は、普通のテキストファイルを roff のフォーマット用要 素で修飾したものです。 roff フォーマット言語は非常に強力です。ほぼ完 全 な プログラミング言語であり、言語を拡張する要素を提供します。これらを使 用することで、特殊な応用に適したマクロパッケージを開発することが可能 で す。 このようなマクロパッケージは、素の roff よりも簡単に扱えます。ほと んどの人々はマクロパッケージを選択することで、 roff 言語の内部につい て 気にしなくても良くなっています。

マクロパッケージ

マ クロパッケージは、ある特殊な種類の文書を簡便な方法でフォーマットする のに適したマクロの集合です。マクロパッケージによって、roff の使い勝手が 格 段 に 良 く な り ます。パッケージのマクロ定義は、 name.tmac (または tmac.name) と呼ばれるファイルに保管されています。すべての tmac ファイル は、 1 つまたはそれ以上のディレクトリ中の標準の場所に保管されています。 マクロパッケージの命名およびその置き場所についての 一 般 的 な 詳 細 は groff_tmac(5) にあります。

文 書が使用するマクロパッケージは、 troff(1) にあるようにフォーマッタの コマンドラインオプション -m で宣言することもできますし、 groff(7) に あ る ように文書中で roff 言語のファイルインクルードリクエストで指定可能で す。

有名な古典的マクロパッケージとしては、典型的なマニュアルページ用の man や、BSD スタイルのマニュアルページ用の mdoc や、書籍・記事・手紙用の me (おそらく、作成者 Eric Allman のファーストネームから来ています) や、 ms (Manuscript Macros から来ています) や mm (Memorandum Macros から来てい ます) があります。

roff フォーマット言語

古典的な roff フォーマト言語は Troff User’s Manual [CSTR #54] に記述 さ れ ています。 roff 言語はリクエスト、マクロ定義、エスケープシーケンス、 文字列変数、数値レジスタまたはサイズレジスタ、そして制御構造を提供す る 完全なプログラミング言語です。

リ クエストは、シェルプロンプトにおけるコマンドのような、定義された基本 的なフォーマット用コマンドです。ユーザは、定義済の roff 要素を 使 用 し て、 リ クエストのような要素を定義可能です。これらは、 マクロと呼ばれま す。文書の著者は、リクエストとマクロを使う際の違いに気づくことはない で しょう。どちらもドット始まりの単独行で記述されます。

エ スケープシーケンスは、roff の要素であり、バックスラッシュ ‘\’ で始ま ります。どこにでも挿入することができ、それは行のテキストのまん な か で あっ ても構いません。これらはさまざまな機能を実装するのに使われます。そ れには、 \( を用いた非 ASCII 文字の挿入、 \f を用いたフォントの 変 更、 \" を用いた文中のコメント、 \\ のような特殊な制御文字のエスケープ、その 他多くの機能が含まれます

文字列は文字列を格納可能な変数です。文字列は、 .ds リクエストで格納可能 で す。格納された文字列は、後で \* エスケープシーケンスを使用することで 取り出せます。

レジスタは数値やサイズを格納します。レジスタは、 .nr リクエストで設定可 能であり、その値は \n エスケープシーケンスで取り出せます。

ファイル名の拡張子

マ ニュアルページ (man ページ) はファイル名の拡張子としてセクション番号 をとります。例えば、この文書のファイル名は roff.7 です。つまり、この 文 書はマニュアルページのセクション 7

古 典的なマクロパッケージは、パッケージ名を拡張子にとります。 me マクロ パッケージを使った文書は file.me となり、 mm マクロパッケージに対しては file.mmms マクロパッケージに対しては file.mspic ファイルに対し ては file.pic といった具合です。

roff 文書の一般的な命名方式はありませんが、時々 troff ファ イ ル 用 に file.tr が使われているのが見受けられます。 roff ファイル用に標準のファ イル名拡張子が必要なのかもしれません。

ファイル名拡張子は、 less(1) ページャと組み合わせると、非常に便利なこと が あります。これにより、シェル環境変数で指定されるコマンドラインパイプ LESSOPEN へすべての入力を与えることが可能となります。この処理はうまく書 けませんので、例を書いておきます:

sh# LESSOPEN=’|lesspipe %s’

こ こで lesspipe は、システムが提供するコマンドやあなたが書いたシェルス クリプトです。

ROFF の編集

roff 文書を編集するための最良のプログラムは Emacs (または Xemacs) で す。 emacs(1) を参照してください。これは、あらゆる roff 方言に適した nroff モードを提供します。このモードは、次の方法で有効にできます。

Emacs でファイルを編集しているときには、 ‘M-x nroff-mode’ とタイプす る ことでモードを変えられます。ここで、 M-xMeta キー (または Alt) を押 したままで同時に x キーを押すことを意味します。

ファイルをエディタにロードしたときに自動的にモードを選択するようにす る ことも可能です。

もっとも一般的な方法は、次の 3 個のコメント行を、ファイルの最後に 含めることです。

.\" Local Variables:
.\" mode: nroff
.\" End:

例えば man ページのような、あるファイル名拡張子の集合 は、 nroff モードを自動的に有効にします。

理論上は、ファイルの最初の行として

.\" -*- nroff -*-

を 書いておくことで、ロード時に nroff モードを開始可能です。不幸なこ とに、これで混乱してしまう man プログラムのようなアプリケーション が ありますので、この方法は価値が低下しています。

す べての roff 整形器は、自動化された改行と水平および垂直の間隔調整を提 供します。これを邪魔しないようにするには、次のこつが役立つでしょう。

roff 文書に、空の行や空行を入れないでください。構造的な要素が必要 な場合には、代りに、空のリクエスト (ドットのみからなる行) や、行コメ ント .\" を使ってください。

予期せぬ動作になるので、行を空白で開始しないでください。インデ ン トされた段落は、roff リクエストで制御された方法で構築可能です。

各文をそれ自身の独立した行で開始することによって、ドットが略語を 終端するのか文を終端するのかによって、ドットの後の空間を調整します。 両者を区別するために、各文の後で、改行してください。

更に、Emacs でオートフィルモードを使用するには、各文の後に、空の roff リクエスト (ドットのみの行) を入れるのが最良です。

次の例は、最適な roff 編集がどのように見えるかを示しています。

This is an example for a roff document.
.
This is the next sentence in the same paragraph.
.
This is a longer sentence stretching over several
lines; abbreviations like ‘cf.’ are easily
identified because the dot is not followed by a
line break.
.
In the output, this will still go to the same
paragraph.

Emacs 以外にも、nroff スタイルファイルを提供するものがありま す。 例 え ば、 vi(1) の拡張である vim(1) がそうです。

バグ

UNIX® は、Open Group の登録商標です。 Caldera が SCO UNIX を 2001 年に 買収して以来、事態はずいぶん良くなりました。

関連項目

roff 関連の文書は沢山あります。古典的な troff に関するオリジナルの論 文 は、まだ入手可能であり、 groff のすべての側面について非常に細かいことま で記述されています。

インターネットサイト

troff.org

The historical troff site には、roff のすべての歴史的な側面に関する概要とポインタがあり ます。

Multics

The Multics site に は、MIT プロジェクト、CTSS や Multics や初期の Unix や runoff の多くの情報があります。用語解説や古代文書への多くのリン クが、特に有用でしょう。

Unix Archive

The Ancient Unixes Archive には、Caldera が 2001 年以来パブリックにした古代 Unix のソー スコードやバイナリ (troff のソースコードとその文書を含む) が あ り ま す。例えば、著名な Unix version 7 for PDP-11 は Unix V7 siteにありま す。

Developers at AT&T Bell Labs

Bell Labs Computing and Mathematical Sciences Research には、初期の開発者の情報を追跡するための、検索機能が あ り ま す。

AT&T Bell Labs による Plan 9

The Plan 9 operating system です。

runoff

Jerry Saltzer's home page には、古代の runoff 整形言語を使用した文書がありま す。

CSTR の論文

The Bell Labs CSTR siteには、オリジナルの troff マニュア ル (CSTR #54, #97, #114, #116, #122) と有名な歴史的なプログラミング文書があります。

GNU roff

The groff web site には、実際の標準 roff である、フリー roff 実装の groff があり ます。

歴史的な roff 文書

多くの古典的な文書が、まだオンラインで入手可能です。 troff 言語の主要な 2 冊のマニュアルは次の通りです。

[CSTR #54]

J. F. Osanna, Nroff/Troff User's Manual; Bell Labs, 1976; revised by Brian Kernighan, 1992.

[CSTR #97]

Brian Kernighan, A Typesetter-independent TROFF, Bell Labs, 1981, revised March 1982.

「小言語」の roff 論文は次の通りです。

[CSTR #114]

Jon L. Bentley and Brian W. Kernighan, GRAP — A Language for Typesetting Graphs; Bell Labs, August 1984.

[CSTR #116]

Brian W. Kernighan, PIC -- A Graphics Language for Typesetting; Bell Labs, December 1984.

[CSTR #122]

J. L. Bentley, L. W. Jelinski, and B. W. Kernighan, CHEM — A Program for Typesetting Chemical Structure Diagrams, Computers and Chemistry; Bell Labs, April 1986.

マニュアルページ

構造が複雑であるため、完全な roff システムには、複数の man ページが含ま れ、 それぞれが roff のあるひとつの側面を記述しています。不幸なことに、 異なった roff 実装間でも一般的となる、文書の命名方法はありません。

groff では、man ページ groff(1) に、groff で利用可能なすべての文書の 概 観が含まれます。

他 のシステムでは、おまかせしますが、 troff(1) から始めると良いかもしれ ません。

作者

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

この文書は FDL (GNU Free Documentation License) バージョン 1.1 以降の条 項のもとに配布されています。 FDL のコピーをシステム上に持っているはずで す。また、これはオンライン GNU copyleft siteでも入手可能です。

このドキュメントは groff すなわち GNU roff 配布物の一部です。 Bernd Warkenが書き、 Werner Lembergが管理しています。

スポンサーリンク