Provided by: manpages-zh_1.6.3.2-1_all bug

NAME

       roff - roff 排版系統的概念和歷史

描述 DESCRIPTION

       roff   是一系列排版程序,如   troff,   nroff,   ditroff,  groff,  等等的通稱。  一個  roff
       排版系統包含一個可擴展的文本格式化語言和一系列程序用以打印和轉換爲其他文本格式。
       傳統的,它是   Unix   的主要文本處理系統;現在,每個   類Unix   操作系統仍然附帶一個  roff
       系統作爲核心軟件包。

       當今最普遍的 roff 系統是自由軟件的實現 GNU roff, groff(1).   groff  之前的實現被稱爲傳統的
       classical            實現           (從           1973           年開始)。           groff
       實現了它的傳統的前輩的用法和功能,並且加入了更多擴展。   當前,由於   groff   是唯一可以在
       (幾乎是) 任何計算機系統上都可用的 roff 系統,因此它是事實上的 roff 標準。

       在一些古老的   Unix  系統中,有一個叫做  roff  的可執行文件,實現了甚至更加古老的  Multics
       操作系統中的  runoff    參見   HISTORY   段落。   它的功能非常有限,即使與古老的   troff
       相比;它不再被支持了。 因此,在本文檔中, roff 總是泛指 roff 系統 roff system ,不是古老的
       roff 可執行文件

       儘管歷史悠久,roff     當前還在廣泛使用中,例如,UNIX     系統的手冊頁     (man     pages)
       ,很多軟件書籍,系統文檔,標準和團體組織的文檔都是用        roff       來寫的。       roff
       在文本設備上的輸出效果仍然是無可比擬的,
       並且,與其他自由的排版系統相比,它的圖形輸出也不差, 甚至強於很多商業的系統

       最普遍的      roff      的應用是手冊頁      manual     pages     (簡稱     man     pages);
       它是很多操作系統中的標準文檔系統

       此文檔描述了圍繞 roff system 開發的一些歷史事件; 所有  roff  版本在用法方面的一些共同點,
       roff      管道的細節--它經常被掩蓋在類似      groff(1)      等等的     “前端”     之後;
       對排版語言的一般的概述; 一些寫 roff 文檔的技巧; 還有到更多資料的鏈接

歷史 HISTORY

       roff    文本處理系統有很長的一段歷史,可以回溯到60    年代。    roff    系統自身與    Unix
       操作系統關係密切, 但是它的起源要從更早的操作系統 CTSS 和 Multics 開始。

   祖先 The Predecessor runoff
       roff  系統的演變與操作系統的歷史緊密聯繫。  它的  “先祖”  runoffJerry SaltzerCTSS
       操作系統  (Compatible  Time  Sharing  System  ,兼容分時系統  (?),1961)  上的作品。  CTTS
       後來發展成爲操作系統  Multics  ⟨http://www.multicians.org⟩,  Unix 的一個著名的來源,出現於
       1963,同時                      runoff                      成爲文檔和文本處理的主要格式。
       當時,這兩種操作系統只能運行在非常昂貴的計算機之上,
       因此它們大部分用於研究和官方及軍隊的任務之中

       與現代的 roff 相比,  runoff  語言可以做的事非常有限。  在  60  年代,只能產生文本的輸出。
       這可以用一個長度爲  2  的命令 (request) 的集合實現, 這些命令的絕大部分都保持不變地被 roff
       採用。 這種語言的模型是根據  “前計算機時代”  的排版習慣而建立的,  那時,以點  (dot,  `.')
       開頭的行被寫在手稿中, 向之後進行手工排版工作的工人指示格式化的要求

       開始,runoff  程序是用  PL/1 語言寫成的,後來用 BCPL 來寫--那是 C 編程語言的 “祖母”。 在
       Multics 操作系統中,幫助系統由 runoff 來處理, 與 roff 管理 Unix 手冊頁的作用類似。 仍然有
       runoff 語言寫成的文檔, 例如可以到 Saltzer 的主頁看看。參見 SEE ALSO傳統的 nroff/troff 系統 The Classical nroff/troff System
       在           70           年代,Multics          的後裔          (offspring)          Unix
       變得越來越普遍,因爲它可以運行在廉價的計算機上, 並且那時在大學裏可以很容易地獲得。 在 MIT
       (麻省理工,the  Massachusetts  Institute  of  Technology), 有人想在一臺運行 Unix 的 PDP-11
       計算機上驅動 Wang (王安公司?) 的 Graphic Systems CAT  排字機,一種圖形化的輸出設備。  由於
       runoff 在這種任務上能力有限,它被 Josef F. Osanna, (Multics 操作系統的主要開發者之一,幾個
       runoff 移植系統的作者) 繼續開發,成爲一種更強大的文本排版系統

       runoff 這個名字被簡化爲 roff.  Ocsanna 所設想的,極大擴展了的語言已經包含了一個完整的 roff
       系統的所有元素。   所有現代的   roff   系統都試圖實現同這個系統兼容。   因此   Joe  Osanna
       是當之無愧的所有 roff 系統之父

       最早的 roff 系統有三個排版程序

       troff  (typesetter roff) 爲它唯一支持的 CAT 排字機產生一個圖形的輸出

       nroff  爲終端和文本打印機產生合適的文本輸出

       roff   對最初的 runoff 程序的有限功能進行重新實現; 這個程序在後來的版本中被拋棄。  現在,
              roff 這個名字只用來指代一個 troff/nroff 系統的整體

       Osanna  的第一版用  PDP-11  的彙編語言實現,發佈於  1973.   Brian  Kernighan  加入到  roff
       的開發中,使用 C 編程語言將它進行了重寫。 C 版本發佈於 1975.

       nroff/troff 程序使用的排版語言的語法記載在著名的 Troff User's Manual [CSTR #54] 中,出版於
       1976,  Brian  Kernighan  對它不斷修訂,直到  1992  年。  此文檔是對傳統的  classical troff
       的說明. 所有後來的 roff 系統都試着與這個說明實現兼容

       1977 年,Osanna 在他  50  歲時,由於一次突發的心臟病而去世。  Kernighan  繼續開發  troff。
       下一個開發目標是賦予   troff  一個更一般的接口,以支持更多設備,  中間輸出格式和  “後處理”
       系統。  這使得  roff  系統的結構趨於完整,現在仍然被使用。參見  USING   ROFF   段。   1979
       年,它們被寫入論文    [CSTR    #97].     這個新的   troff   版本是所有現存的較新的   troff
       系統的基礎,包括   groff.    在一些系統上,這個設備無關的    troff    有一個可執行文件叫做
       ditroff(7).  所有現代的 troff 程序都已經自動提供了對 distroff 完整的兼容性

   商業化 Commercialization
       免費的              Unix              7             操作系統商業化之後,出現了嚴重的退步。
       一大批不同的操作系統浮出水面,爲他們所作的擴展間的互不兼容而爭鬥。
       幸好,這種不兼容沒有影響到原始的   troff。   所有不同的商業版本的   roff  系統都大量使用了
       Osanna/Kernighan 的開放的源代碼和文檔,但是卻將其作爲 它們的 系統 (“their”  system)  出售—
       只有很少的修改

       古老的 Unix 和傳統的 troff 的源代碼在長達 20 年時間裏不再可以自由獲得。

       幸運的是,Caldera        收購了        SCO        UNIX        (2001).        隨後,Caldera
       使得源代碼可以在網上獲得,允許用於非商業用途。參見 SEE ALSO 段

       (譯註:誰能想到,現在,2003   年,SCO會成爲自由軟件和開源軟件界共同的敵人呢?    而Caldera
       又在什麼地方呢?)

   自由的 Free roff
       任何商業的           roff           系統都無法成爲          roff          開發中的後繼者。
       商業社會中的每個人都只對他們自己的事情感興趣。  這使得曾經如此優秀的  Unix  操作系統在  80
       年代一蹶不振

       作爲對如此快速的商業化過程的補救     (As    a    counter-measure    to    the    galopping
       commercialization,還請重新翻譯),  AT&T  Bell   Labs   貝爾實驗室試圖發起一個恢復性的項目
       (?,a        rescue       project)       ,使用他們的       Plan       9       操作系統。
       它可以免費用於非商業用途,甚至包含了源代碼。 但是它有一個專利許可證,that empedes the free
       development        (       還請解釋詞義)。       這種想法早已過時,因此       Plan       9
       沒有被主流開發者接受爲自己的平臺

       真正的補救措施 (?, remedy) 是不斷出現的自由操作系統 (386BSD,  GNU/Linux,  等等.)  和  80
       年代到  90  年代的自由軟件工程。 他們實現了傳統的 Unix 的特性和很多擴展,因此舊的 “XP體驗”
       不會丟掉  (such  that  the  old  experience  is  not  lost)。  進入   21   世紀,類   Unix
       系統重新成爲計算機工業中的主導因素 — 這要感謝自由軟件

       最重要的自由 roff 計劃是 GNU 移植版本的 troff, 由 James Clark 建立,使用 GNU Public
       License ⟨http://www.gnu.org/copyleft⟩.  它叫做 groff (GNU roff).  參見 groff(1) 中的概述

       groff      系統仍然在繼續開發。      它與傳統      troff      兼容,但是還添加了很多擴展。
       它是第一個可以在幾乎所有操作系統上運行的  roff  系統並且  —  它是自由開放的。 這使得 groff
       成爲現在 roff 的事實標準

使用 USING ROFF

       很多人不會注意到他們在使用 roff。 當你閱讀一份手冊頁 (man page) 時,roff 工作在後臺。 roff
       文檔可以使用    xditview(1x)    程序查看,它是一個    X    發行版的標準程序。參見   X(7x).
       但是顯式地使用 roff 也不困難

       一些 roff 實現提供了包裝程序,使得人們可以簡單地在命令行使用 roff 系統。 例如,GNU 的 roff
       實現    groff(1)    提供了命令行選項來避免傳統    troff    中過長的的命令管道;    grog(1)
       程序試着從文檔猜測應當使用什麼參數來運行     groff;      不習慣於指定命令行選項的人應當用
       groffer(1) 程序來圖形化地顯示 groff 文件和手冊頁

   管道 The roff Pipe
       roff   系統由預處理器   (preprocessor),roff   排版程序和後處理器  (postprocessor)  組成。
       這種結構使用了大量的管道          piping          機制,意思是,一系列的程序陸續地被調用,
       隊列中的每個程序的輸出就作爲下一個程序的輸入

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

       預處理器產生    roff    代碼,傳給一個    roff    處理器    (例如,troff),    然後   roff
       處理器接下來產生中間輸出,傳給一個後處理器程序, 用來打印或者產生最終輸出

       所有這些組件都使用它們自己的程序語言;                    每種語言是與其他組件完全無關的。
       此外,還可以包括爲特殊目標而製作 (tailor) 的 roff 宏包

       大多數   roff   文檔中摻雜着使用一些包中的宏、   一個或多個預處理器的代碼,還會添加   roff
       語言中的一些元素。          用戶很少需要用到           roff           排版語言的完整功能;
       只有宏包的作者需要知道底層細節 (gory details)

   預處理器 Preprocessors
       預處理器是任何產生符合                   roff                   排版語言語法的輸出的程序。
       每個預處理器都有它自己的語言,在預處理器運行時被翻譯爲       roff       代碼。        roff
       文檔中可以包含以這種語言寫成的片段;   它們可以被特殊的   roff   命令或宏識別   (they  are
       identified        by        special        roff        requests        or        macros)。
       加入了預處理器代碼的文檔必須通過所有相應的預處理器處理之後,      才能傳給真正的      roff
       排版程序,            因爲真正的            roff            排版程序會忽略所有陌生的代碼。
       預處理器只會分析並轉換指定由它處理的文檔部分

       有大量的自由/商業 roff 預處理器。 一些不能在所有系統上使用, 還有一些預處理器被認爲是 roff
       系統不可分割的部分。 傳統的預處理器有

              tbl     製表 (table)
              eqn     數學公式 (mathematical formulæ)
              pic     繪圖 (diagram)
              refer   書目索引 (bibliographic references)
              soelim  包含標準位置的宏文件 (macro)

       其他已知預處理器,但不是在所有系統上都可用,包括

              chem    化學公式 (chemical formulæ)
              grap    構造圖元 (graphical elements)
              grn     插入 gremlin(1) 圖片

   排版程序 Formatter Programs
       A  roff  formatter  排版程序是一個解釋用  roff  排版語言或   roff   宏包寫成的文檔的程序。
       它產生中間結果                             intermediate                            output,
       將送入單一設備後處理器。後處理器必須在排版程序的命令行選項中指定。
       文檔必須已經通過了所有需要的預處理器處理

       roff  排版程序的輸出以另外一種語言表示:  intermediate  output  formattroff  output.
       這種語言最初詳述在   [CSTR   #97]    中;它的    GNU    擴展記載在    groff_out(5)    中。
       中間輸出語言與高級的                   roff                   語言相比像一種彙編指令語言。
       產生的中間輸出是爲一種特定的設備優化過的, 但是對於所有設備,這種語言都適用

       roff 排版程序是整個 roff 系統的核心。  傳統  roff  有兩個排版程序:  對應字符設備的  nroff
       和對應圖形設備的 troff

       通常,  troff  這個名字泛指這兩種排版程序  (is  used  as  a  general term to refer to both
       formatters)。

   設備 後處理器 Devices and Postprocessors
       設備是類似打印機、字符或圖形終端等的硬件接口,
       或者是用於轉換爲另一種字符或圖形設備的軟件接口

       後處理器是將   troff  輸出轉化爲一種適於某種特殊設備的格式的程序。  對於輸出目標來說,roff
       後處理器像是它們的設備驅動

       每種設備都有爲其優化的後處理器程序。.
       後處理器解釋中間輸出,產生設備相關的代碼,傳送給設備

       設備名和後處理器程序的名稱是不固定的,     因爲它們依賴於計算機的軟硬件的能力。     例如,
       [CSTR                    #54]                     中提到的傳統的設備名已經有了極大的改變。
       舊的硬件不再存在,舊的圖形轉換程序與現代同等功能的程序相比太不精確了

       例如,Postscript  設備  post  在傳統  troff  中分辨率是  720,而 groff 的 ps 設備是 72000,
       提高了 100 倍

       現在,操作系統爲大多數類似打印機的硬件提供了設備驅動,
       因此不必爲每個打印機寫一個特殊的後處理器

roff 編程 ROFF PROGRAMMING

       roff      文檔是加入了      roff      排版元素的普通文檔。     roff     排版語言非常強大;
       它幾乎是一個完整的程序語言,並且提供了擴充自身的元素。
       使用這些元素,就可以開發爲特殊程序定製的宏包。  這樣的宏包比普通的  roff  要容易上手得多。
       所以大多數人會選擇一中宏包, 不用去關心 roff 語言的內部實現

   宏包 Macro Packages
       宏包是一些適於以便利的辦法格式化某種特殊文檔的宏的集合。    它們簡化了    roff    的使用。
       一個包的宏定義保存在一個叫做  name.tmac  的文件中  (傳統的命名是  tmac.name).   所有  tmac
       文件保存在標準位置的一個或多個目錄中。 有關宏包的命名和位置的細節可以看 groff_tmac(5).

       文檔中用到的宏包可以使用命令行選項      -m      提供給排版程序,       參見       troff(1),
       它們也可以在文檔中指定,使用 roff 語言的 “包含文件” 命令,參見 groff(7).

       著名的傳統宏包有         man         用來處理傳統手冊頁        mdoc        處理        BSD
       樣式的手冊頁;此類書籍、文檔和信件的宏集合是 me (命名也許是根據它的創造者之名 Eric  Allman
       而來), ms (命名來自 Manuscript Macros), 還有 mm (命名來自 Memorandum Macros).

   roff 排版語言 The roff Formatting Language
       傳統的  roff  排版語言記述在  troff  用戶手冊  Troff  User's  Manual  [CSTR #54] 中.  roff
       語言是完整的編程語言,提供了命令    (request),宏定義,轉義序列    (escape     sequence),
       字符串變量,數字或數量寄存器 (number or size registers),還有流程控制語句

       Requests  “命令”  是預定義的基礎的排版命令,與  shell  提示下的命令類似。 用戶可以定義類似
       “命令”  的元素,使用  roff  的  “預定義”  元素。   用戶定義的命令就被叫做   “宏”   macros.
       文檔作者不會體會到  命令和宏  之間用法的任何區別; 它們都寫在一行中,並以一個點 (dot, `.')
       開始

       Escape  sequences  “轉義序列”  是以反斜槓  (backslash,  `\'.    )   開始的   roff   元素。
       它們可以被插入到任何地方,包括文本的一行中間。  它們用來實現不同的功能,可以使用 \( 插入非
       ASCII 字符,使用 \f 改變字體,使用  \"  插入行內註釋,它們也可以轉義特殊的控制字符,像這樣
       \\, 還有很多很多其他的功能

       Strings  “字符串”  是存儲一個字符串的變量。  字符串以 .ds 命令存儲。 存儲的字符串可以用 \*
       轉義序列獲得

       Registers  “寄存器”  存儲數字和數量。   寄存器可以用   .nr   命令設置,然後用控制序列   \n
       來獲得它的值

文件擴展名 FILE NAME EXTENSIONS

       手冊頁使用章節號作爲文件擴展名,例如本文檔的文件名是  roff.7,  也就是說它放在手冊頁的第  7
       章

       傳統的宏包使用包名稱作爲文件擴展名,例如  file.me  意思是使用了  me  宏包的文件,  file.mm
       使用了宏包 mm, file.ms 用的是 ms, file.pic 則是 pic 等等

       但是沒有  roff  文檔統一的命名方式,儘管  file.tr  用於  troff file 在現在和當時都是一樣的
       也許應當有 roff 文件擴展名的一個標準

       文件擴展名與                     less(1)                      格式化工具結合,會非常好用。
       它提供了用單一的方式打開各種輸入的可能性,   方法是定義一個   shell   環境變量   LESSOPEN.
       這種辦法沒有什麼文檔,這是一個例子:

       sh# LESSOPEN='|lesspipe %s'

       lesspipe 可以是一個系統提供的命令或者是你自己的腳本。

編輯 EDITING ROFF

       最好的 roff 文檔編輯器是 Emacs,參見 emacs(1).  它提供了 nroff  模式,適於所有種類的  roff
       “方言”。 可以用下面的命令來激活這種模式

       當用 Emacs 編輯文檔時可以輸入 `M-x nroff-mode' 來改變模式,這裏 M-x 意思是按住 Meta 鍵 (或
       Alt) 同時點一下 x 鍵

       也可以在編輯器加載文件的時候,自動改變模式

       · 最好的辦法是將下面三行註釋包含在文件末尾

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

       · 有一系列的文件擴展名,例如手冊頁的擴展名,會自動觸發 nroff 模式

       · 理論上,可以將下面的序列

         .\" -*- nroff -*-

         作爲文件的第一行,也可以使 emacs 在加載文件時啓用  nroff  模式。  不幸的是,一些程序例如
         man 在這種方法中會出錯;因此請不要用它

       所有的                 roff                 排版程序都提供了自動的斷行以及水平和豎直間距。
       爲了不干擾它的功能,應當注意以下幾點:

       · 不要在         roff         文檔中包含空行或只包含空格的行,          而是使用“空行”命令
         (一行中只包含一個點),或者一行註釋 .\" (如果需要一個構造元素的話)

       · 不要在行首用空格,因爲這會導致不可預測的行爲。     段落縮進可以以受控的方式,用     roff
         命令構造出來

       · 每句話應當放到自己的一行中,因爲句號後面的空格的處理方法是根據它結束的是短語還是句子而不同的。
         要區別這兩種情況,在每句話後面加上一個換行

       · 另外要使用   Emacs   的   auto-fill   模式的話,最好在每句話後面添加一個空的  roff  命令
         (一行中只包含一個點)

       下面的例子顯示了最佳的 roff 編輯習慣是怎樣的

              這是一個 roff 文檔的例子.
              .
              這是同一段中的下一句.
              .
              這是下一個句子,它比較長,分成了多
              行;類似 `cf.' 這樣的短語可以很容易地
              識別,因爲其中的“點”後面沒有換行.
              .
              (在輸出時,它們仍會在同一段中.)
              .
              (譯註:如果使用中文的標點“。”就不用考慮這些,
              但是每句話後面換行總是個好主意。少用 `.' 爲妙)

       除了  Emacs,其他一些編輯器也提供了  nroff   格式文件的支持,例如   vim(1),   它是   vi(1)
       程序的擴展

BUGS

       UNIX®   是   Open   Group   的註冊商標。   但是在   Caldera   在   2001  年收購  SCO  UNIX
       之後,事情發生了極大的好轉

       (譯註:爲什麼 2003 年 SCO 又會成爲 M$ 的走狗呢?)

參見 SEE ALSO

       有大量的講述     roff     的文檔。      講述傳統      troff      的原始文檔仍可獲得,groff
       的所有方面也都詳細地記錄在文檔中

   Internet sites
       troff.org
              “歷史上的  troff”  ⟨http://www.troff.org⟩  提供了  roff  所有歷史方面的概述和指引。
              這個網站仍在建設;但是,它將成爲 roff 歷史的主要來源

       Multics
              “Multics      的官方站點”      ⟨http://www.multicians.org⟩       包含很多       MIT
              的項目的信息,CTSS,Multics,早期的               Unix,還包括              runoff;
              尤其有用的是一個術語字典,還有很多到古老的文檔的鏈接

       Unix Archive
              “古老的   Unix   的檔案館”   ⟨http://www.tuhs.org/Archive/⟩    提供了古老的    Unix
              的源碼和一些二進制文件  (包括  troff  的源碼和它的文檔),它們  是  Caldera  自 2001
              年以來公開的,例如著名的 Unix 版本 7 的 PDP-11 平臺版本位置是 Unix V7 site ⟨http://
              www.tuhs.org/Archive/PDP-11/Trees/V7⟩.

       Developers at AT&T Bell Labs
              “貝爾實驗室計算和數學科學研究所”            ⟨http://cm.bell-labs.com/cm/index.html⟩
              提供了搜索早期開發者信息的功能

       Plan 9 “Plan 9 操作系統” ⟨http://plan9.bell-labs.com⟩ AT&T Bell Labs 貝爾實驗室的作品

       runoff “Jerry  Saltzer   的主頁”   ⟨http://web.mit.edu/Saltzer/www/publications/pubs.html⟩
              保存了古老的 runoff 排版語言寫成的一些文檔

       CSTR Papers
              “貝爾實驗室 CSTR 網站” ⟨http://cm.bell-labs.com/cm/cs/cstr.html⟩ 保存了原始的 troff
              手冊 (CSTR #54, #97, #114, #116, #122) 還有著名的有關編程的歷史文檔

       GNU roff
              “groff   的官方網站”   ⟨http://www.gnu.org/software/groff⟩   提供了   自由的   roff
              實現:groff,並且它是 roff 的事實標準

   歷史文檔 Historical roff Documentation
       很多 歷史文檔仍然可以在線獲得。 troff 語言主要的兩部手冊是

       [CSTR #54]
              J.  F.  Osanna,  Nroff/Troff  User's  Manualhttp://cm.bell-labs.com/cm/cs/54.ps⟩;
              (《用戶手冊》) Bell Labs, 1976; revised by Brian Kernighan, 1992.

       [CSTR #97]
              Brian Kernighan, A Typesetter-independent TROFFhttp://cm.bell-labs.com/cm/cs/
              97.ps⟩, (《設備無關的 troff》) Bell Labs, 1981, revised March 1982.

       將 roff 作爲一種“小語言”("little language") 來講述的論文有

       [CSTR #114]
              Jon L. Bentley and Brian W. Kernighan, GRAP  A Language for Typesetting Graphshttp://cm.bell-labs.com/cm/cs/114.ps⟩;  (《grap:  一種圖形排版語言》)  Bell  Labs,
              August 1984.

       [CSTR #116]
              Brian W. Kernighan, PIC -- A Graphics Language for Typesetting ⟨http://
              cm.bell-labs.com/cm/cs/116.ps⟩;  (《pic:  一種排版用的圖形控制語言》)  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 ⟨http://
              cm.bell-labs.com/cm/cs/122.ps⟩; (《chem: 排版化學結構圖的程序,計算機與化學》) Bell
              Labs, April 1986.

   手冊頁 Manual Pages
       由於它結構複雜,完整的  roff  系統包含很多很多手冊頁,  每一個都描述了  roff  的一個方面。
       不幸的是,不同的 roff 實現之間,它們的手冊沒有相同的命名格式

       在 groff 中,手冊頁 groff(1) 包含了 groff 相關的所有文檔的索引

       其他系統中,你需要自己探索,但是 troff(1) 是個很好的起點

作者 AUTHORS

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

       This  document  is distributed under the terms of the FDL (GNU Free Documentation License)
       version 1.1 or later.  You should have received a copy of the FDL on your  system,  it  is
       also available on-line at the GNU copyleft site ⟨http://www.gnu.org/copyleft/fdl.html⟩.

       此文檔是  groff,  GNU  roff  套件的一部分。  它的作者是  Bernd  Warken  ⟨bwarken@mayn.de⟩;
       它的管理者是 Werner Lemberg ⟨wl@gnu.org⟩.

[中文版維護人]

       bbbush <bbbush@163.com>

[中文版最新更新]

       2003.11.28

《中國linux論壇man手冊翻譯計劃》:

       http://cmpp.linuxforum.net

       本頁面中文版由中文 man 手冊頁計劃提供。
       中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh