Texinfo
Texinfo 輸出範例;GNU Texinfo 官方手冊第 25 頁的印刷版頁面 | |
| 原作者 | 理察·史托曼 羅伯特·查塞爾 |
|---|---|
| 開發者 | 布萊恩·福克斯[1] 卡爾·貝里 |
| 首次发布 | 1986年2月[2] |
| 当前版本 | 7.3[3] |
| 源代码库 | |
| 编程语言 | C、Perl |
| 操作系统 | Linux、BSD |
| 许可协议 | GPL-3.0-or-later |
| 网站 | www |
Texinfo 是一種排版語法,用於從單一來源檔案同時產生線上與印刷形式的文件(例如 DVI、HTML、PDF 等檔案格式,以及專屬的超文字格式 Info)。同名的電腦程式實作了此語法,並由GNU計畫透過自由軟體基金會以自由軟體形式建立與發布。[4]
Texinfo 的主要目的在於提供一種能夠輕鬆排版軟體手冊的方法。與 LaTeX 類似,書籍常見的各種功能,例如章節、交叉參照、表格與索引等,皆可在文件中使用。透過 Texinfo 提供的各種輸出產生器,使用者只需維護單一來源檔案,即可同步更新多種文件形式,例如網站上的線上文件,以及利用 TeX 排版系統產生的印刷文件。
Texinfo 官方文件指出,「Texinfo」一詞的第一個音節應與英文「speck」押韻,而非「hex」。[註 1]此發音源自於 TeX 的讀法,其中字母 X 並非代表英文字母 X,而是代表希臘字母 χ(chi)。維護者亦表示,「Texinfo」應僅將字首 T 大寫,其餘字母皆使用小寫。
輸出格式
[编辑]為了讓多種文件輸出格式能在原始 Texinfo(.texi)來源檔案修改後同步更新,Texinfo 提供了多種語法轉換工具,可將 Texinfo 檔案轉換為其他格式。其中大部分轉換工作由 GNU Texinfo 發行版所附的 texi2any 程式(亦稱 makeinfo)完成。
- HTML
- (使用 texi2any --html 產生。)由於 HTML 是全球資訊網上文件呈現的標準語言,因此此輸出格式可有效用於建立線上說明文件頁面。官方手冊指出,texi2any 所產生的 HTML 輸出刻意保持簡潔,以獲得最大的可攜性與可及性。此外,texi2any 的 HTML 輸出具有高度客製化能力。
- DVI
- (使用 texi2dvi 產生。)DVI(Device Independent File Format,裝置無關檔案格式)由 TeX 排版系統輸出,可用於產生特定裝置所需的命令,供檢視或列印使用;例如可進一步轉換為 PostScript(ps 檔案)。
- (使用 texi2dvi --pdf 或 texi2pdf 產生。)PDF 格式以 PostScript 語言為基礎,由 Adobe 開發,用於可攜式文件交換。其能夠精確呈現文件外觀,並支援任意比例縮放。PDF 的設計目標是提供跨平台的文件交換能力,可透過各種軟體進行檢視。預設情況下,Texinfo 使用 pdftex(TeX 的一種變體)輸出 PDF 文件。
- LaTeX
- (使用 texi2any --latex 產生。)LaTeX 是建立於 TeX 之上的排版系統。其輸出結果可進一步處理為 DVI、PostScript 或 PDF 格式。
- DocBook
- (使用 texi2any --docbook 產生。)DocBook 是一種以 XML 為基礎的技術文件標記語言,在整體架構上與 Texinfo 有若干相似之處。透過 docbook2X 程式,也可將 DocBook 檔案轉換為 Texinfo 格式。
- EPUB
- (使用 texi2any --epub3 產生。)EPUB 是一種專為可攜式裝置閱讀電子書所設計的格式,其本質上是 HTML 的衍生格式。
- XML
- (使用 texi2any --xml 產生。)與其他輸出格式不同,XML 輸出並非最終成品,而是對 Texinfo 原始碼的直接轉寫。Texinfo XML 輸出的主要目的,是讓文件能夠進一步透過 XML 工具進行處理。
- Info
- (使用 texi2any 產生。)Info 是一種專用格式,本質上是將原始 Texinfo 文件轉寫為純文字,同時加入少量控制字元,以區分節點並提供選單、交叉參照、索引等導覽功能。Info 格式檔案可透過隨 Texinfo 一同發行的 info 程式瀏覽,也可使用多種第三方 Info 閱讀器 開啟。
- 純文字
- (使用 texi2any --plaintext 產生。)此格式與 Info 輸出幾乎相同,但會省略用於導覽的控制字元。
Man 頁面輸出
[编辑]值得注意的是,標準 Texinfo 工具並不支援輸出為 man 頁面格式。雖然 Texinfo 被用作 GNU 軟體的官方文件系統,而 GNU 軟體通常運行於 Linux 等類Unix系統環境中;在這些系統裡,man 頁面向來是傳統的文件格式,但其設計理念有所不同。
其中一項原因是 man 頁面具有嚴格且固定的慣例格式,傳統上主要作為快速參考指南使用;相較之下,Texinfo 通常用於撰寫教學文件與完整的參考手冊。此外,許多 GNU 專案幾乎完全不維護 man 頁面,而是在所附的 man 頁面中提示讀者參閱 Info 文件(man 頁面本身往往會註明其內容較少維護)。
Texinfo 原始碼檔案
[编辑]Texinfo 可讓使用者如同撰寫書籍般組織文件內容,包括章節、交叉參照與索引等結構。其來源檔案基本上接近純文字,但技術上屬於以命令標記的格式化文字。這些命令皆以「@」字元開頭。
以下為部分來源檔案範例:
@node Top
@top Short Sample
@node First Chapter
@nodedescription The first chapter is the only chapter in this sample.
@chapter First Chapter
@cindex chapter, first
This is the first chapter.
這些命令可用於標示文件結構,例如章節;也可用於標記文字、範例、清單與表格,或指定僅在特定輸出格式中處理的內容。
歷史與現況
[编辑]Texinfo 為 GNU計畫的官方文件系統。GNU Texinfo 發行版採用 GNU通用公共授權條款授權。
Texinfo 格式由理察·史托曼建立,其結合了另一套在麻省理工學院使用、用於印刷輸出的系統 BoTeX,以及同樣由史托曼建立、建構於 TECO 版 Emacs 之上的線上超連結文件系統 Info。[5][6]
BoTeX 本身則是建立於更早期的系統 Bolio 之上。Bolio 與大衛愛穆恩有關,並曾用於 Lisp機器的文件撰寫。[7] 後來 BoTeX 被改寫為使用 TeX 作為輸出系統。
羅伯特·查塞爾協助史托曼建立了第一個用於產生 Info 文件的 Emacs Lisp 轉換器。根據 GNU 官方的說法,Texinfo「大致上以 布萊恩·里德的 Scribe 以及當時其他文件格式化語言為基礎」。[8]
Texinfo 軟體發行版的開發工作先後由布萊恩·福克斯主導(至 3.8 版)、卡爾·貝里主導(至 5.2 版),並自 2014 年 12 月起由 加文·史密斯負責維護與開發。
參見
[编辑]注释
[编辑]- ^ 发音即Tech-info
參考資料
[编辑]- ^ GNU's Who (页面存档备份,存于互联网档案馆), The GNU Team has grown larger in the last few months: Brian Fox and Opus Goldstein have joined Jay Fenlason as the only employees of the Foundation. Most recently, Brian created a stand-alone texinfo formatter and browser..., February, 1988, GNU's Bulletin, vol. 1 no. 4
- ^ Gnu Status (页面存档备份,存于互联网档案馆), by Richard M. Stallman. "5. Documentation system. I now have a truly compatible pair of programs which can convert a file of texinfo format documentation into either a printed manual or an Info file. Documentation files are needed for many utilities.", February 1986, GNU's Bulletin, Volume 1 No. 1
- ^ Texinfo 7.3 released. 2026年3月2日 [2026年3月3日] (英語).
- ^ Robbins, Arnold. What's GNU: Texinfo | Linux Journal. Linux Journal. 1994-10-01 [2026-07-14]. (原始内容存档于2026-06-17) (英语).
- ^ GNU Texinfo Manual (页面存档备份,存于互联网档案馆), Section 1.14 History
- ^ Richard Stallman, January 8, 2012, post on emacs-devel mailing list (页面存档备份,存于互联网档案馆): "...Info has existed since 1976 or so, in the original Emacs. At that time, Info files were written by hand, and everyone could edit system files on ITS."
- ^ Daniel Weinreb and David A. Moon (January 1979), Lisp Machine Manual, Second Preliminary Version
- ^ Texinfo. [2026-06-17]. (原始内容存档于2023-01-24).