GNU Texinfo 使用手册
- TAGS: Emacs
[ 最后修订与导出时间: 2026-02-03 19:20:16 +0800 ,总字数: 4619 ]
本手册适用于 GNU Texinfo(版本 7.2,2024 年 12 月 20 日),这是一个文档系统,可以使用语义标记从单个源生成在线信息和打印手册。
Texinfo 复制许可条款
GNU Texinfo 是 自由软件 ,即任何人都可在特定条款下自由使用、自由再分发本软件。Texinfo 并非公有领域内容,其受版权保护且对分发行为设有相关限制,但这些限制的制定初衷,是保障所有遵守协作准则的使用者能行使合理的使用权利。本条款禁止的行为,是试图阻止他人进一步分享其从你处获取的任一版本的 Texinfo 软件。
具体而言,我们保障你享有以下权利:无偿分发与 Texinfo 相关的程序副本;获取相关程序的源代码,或在需要时能够获取该代码;修改这些程序,或在新的自由软件中使用其部分代码;同时你也有权知晓自身可行使上述所有权利。
为确保所有人都能享有上述权利,我们禁止你以任何方式剥夺他人的这些权利。例如,若你分发 Texinfo 相关程序的副本,必须将你所享有的全部权利一并赋予接收者;必须确保接收者同样能获取或有权获取该程序的源代码;同时必须向其告知所享有的各项权利。
此外,为保护本项目的权益,我们需让所有使用者知晓:与 Texinfo 相关的程序不提供任何担保。若此类程序经他人修改后进行传播,我们希望接收者能够明确知晓,其获取的程序并非由本项目原封分发的版本,从而避免他人修改引入的问题对本项目的声誉造成影响。
当前分发的 Texinfo 相关程序,其许可协议的具体条款均载明于随程序附带的《通用公共许可证》中。本手册的版权保护与使用条款遵循《GNU 自由文档许可证》(详见《GNU 自由文档许可证》章节)。
1. Texinfo 概述
Texinfo 是一套文档编制系统,仅需编写单个源文件,即可生成在线查阅文档与印刷版输出文档。这意味着你无需为每种输出格式单独撰写不同文档,只需完成一份文档的编写即可。
通过 Texinfo,你可借助 TeX 排版系统生成 PDF 格式的印刷版文档,文档可包含章节、小节、交叉引用和索引等内容。基于同一个 Texinfo 源文件,你还能生成适用于网页浏览器的 HTML 格式文档,生成可在 GNU Emacs 或其他 Info 阅读程序中使用的 Info 文件,同时也能生成 DocBook、EPUB 3 或 LaTeX 格式的文件。
Texinfo 源文件为纯文本文件,内容中穿插着 @-commands (以 @开头的指令),这些命令用于告知 Texinfo 处理程序执行对应的操作。Texinfo 的标记命令几乎完全具备语义化特性,也就是说,这些命令用于定义文档中文本的实际语义,而非单纯的外观格式排版指令。
GNU Emacs 中内置了专门的 Texinfo 模式,该模式提供了各类与 Texinfo 相关的功能(详见《使用 Texinfo 模式》章节)。
Texinfo 是专为编写软件说明文档和手册设计的工具。如果你想要为自己的程序编写优质手册,Texinfo 的诸多功能将为你简化编写工作。但需要注意的是,Texinfo 并非通用型排版程序,它几乎未提供任何用于控制最终排版效果的命令。因此,若你需要排版报纸、制作精美杂志广告,或遵循出版社严苛的格式排版要求,Texinfo 可能无法满足你的使用需求。
“Texinfo” 的拼写规范为:首字母 T 大写,其余字母均小写。该单词的第一个音节发音与 “speck”(/spek/)一致,而非 “hex”(/heks/)。这一特殊的发音方式源于 TeX 的发音规则。TeX 的发音需将末尾的 X 读作巴赫(Bach)姓氏中最后一个音的发音,TeX 中的字母 X 并非英语中常见的 “ex” 发音,实际对应希腊字母 χ(chi)的发音。
Texinfo 是 GNU 项目的官方文档格式。你可通过 GNU 文档网页获取更多相关信息,其中包括各类 GNU 软件包的使用手册。
1.1. 问题反馈
我们欢迎大家针对 Texinfo 系统的任意方面提交问题反馈与改进建议,涵盖程序运行、文档内容、安装部署等相关问题。请将反馈内容发送至邮箱:[email protected]。你可通过 Texinfo 官方主页获取其最新版本,网址为:https://www.gnu.org/software/texinfo。
提交问题反馈时,请提供足够信息,确保维护者能够复现相关问题。一般来说,需包含以下内容:
- Texinfo 的版本号,以及涉事的程序和手册版本
- 复现问题所需的所有输入文件内容
- 涉事程序的具体运行步骤
- 问题现象描述,以及所有错误输出的样本
- 所用的硬件设备、操作系统名称及版本
- 你认为有帮助的其他相关信息
若不确定某项信息是否需要提供,建议一并附上。提供的信息宁多勿少,避免遗漏关键内容。
务必附上能复现问题的实际输入文件,这一点至关重要。
若 GNU Emacs 中的 Info 阅读器出现问题,需向 Emacs 开发团队提交反馈,具体可参阅《GNU Emacs 手册》中的 “问题反馈” 章节。
我们同样欢迎大家提交程序补丁。若有相关提交,建议使用 'diff -c'、 'diff -u' (详见《文件的比较与合并》)或 'git diff' 命令生成补丁,并附上 ChangeLog 变更记录(详见《GNU 编码标准》中的 “变更日志” 章节),同时遵循项目现有的编码规范。
1.2. 输出格式
下文为 Texinfo 目前支持的输出格式总览。
Info- 信息文档格式。
(通过
texi2any生成)该格式基本是 Texinfo 源文件的纯文本转写形式,仅添加少量控制字符,为交叉引用、索引等功能提供导航信息。GNU Emacs 的信息文档子系统(参见《信息文档》)、独立的 info 程序(参见《GNU 信息文档程序》)等工具均可读取此类文件。相关详情参见《Info 文件》与《创建并安装 Info 文件》章节。 Plain text- 纯文本格式。
(通过
texi2any --plaintext生成)该格式与 Info 格式输出几乎一致,仅剔除了用于导航的控制字符。 HTML- 超文本标记语言。
(通过
texi2any --html生成)HTML 是超文本标记语言的缩写,为World Wide Web万维网文档的编写标准,可由网页浏览器在线渲染展示。HTML 拥有多个版本,既包含不同的官方标准,也存在各浏览器专属的扩展规范。texi2any工具仅使用该语言的通用子集,可被所有主流浏览器解析,且刻意避免使用大量较新或支持度较低的标签。因此其原生输出样式虽较为简洁,但可根据需求在多个层级进行自定义配置。相关详情参见《生成 HTML 文档》章节。 EPUB 3- 电子出版格式。
(通过
texi2any --epub3生成)EPUB 是专为便携式设备阅读电子书设计的格式,由 HTML 衍生而来。该格式最初由国际数字出版论坛(IDPF)开发,目前该组织已并入万维网联盟(W3C)。其最新主要修订版本 EPUB 3 于 2011 年发布。 DVI- 设备无关格式。
(通过
texi2dvi生成)设备无关二进制格式是 TeX 排版程序(官网:http://tug.org)的输出格式,需由 DVI 驱动程序解析后,转换为适配具体设备的显示或打印指令。常用的 DVI 驱动程序包括:将格式转换为 PostScript 格式的 Dvips(参见《Dvips 工具》)、用于 X 窗口系统显示的 Xdvi(下载地址:http://sourceforge.net/projects/xdvi/)。相关详情参见《使用 TeX 进行排版与打印》章节。(请注意:Texinfo 语言与 TeX 系列常用语言差异显著,包括纯 TeX、LaTeX、ConTeXt 等。) PostScript- 页面描述语言。
(通过
texi2dvi --ps生成)PostScript 是一种页面描述语言,自 1985 年起被广泛应用,至今仍在使用。其基础介绍及更多相关参考可参见:https://en.wikipedia.org/wiki/PostScript。Texinfo 默认识别 dvips 程序,将 TeX 生成的 DVI 格式转换为 PostScript 格式。相关详情参见《Dvips 工具》章节。 PDF- 便携式文档格式。
(通过
texi2dvi --pdf或texi2pdf生成)该格式由 Adobe 系统公司基于其早前的 PostScript 语言开发,专为便携式文档交换设计。该格式可精准还原文档的原始外观,包括字体、图形等元素,且支持任意比例缩放。其设计目标包括跨平台兼容、易于查看等;相关背景知识可参见:https://en.wikipedia.org/wiki/Portable_Document_Format 与 http://tug.org/TUGboat/tb22-3/tb72beebe-pdf.pdf。Texinfo 默认使用 pdftex 程序(TeX 的扩展工具)生成 PDF 格式,工具详情参见:http://tug.org/applications/pdftex。相关使用方法参见《PDF 格式输出》章节。 LaTeX拉泰赫格式。 (通过
texi2any --latex生成)该格式是基于 TeX 构建的排版系统,最初由莱斯利・兰波特于 1984 年发布。LaTeX 在 TeX 的基础上扩充了大量定义,且拥有丰富的第三方扩展包,是学术文献领域的通用排版格式。目前 LaTeX 仍在持续开发更新,更多信息可参见其官方网站:https://www.latex-project.org/。LaTeX 格式的输出文件可进一步转换为 DVI、PostScript 或 PDF 格式。从理论上讲,相较于基于纯 TeX 实现的 Texinfo,LaTeX 格式支持更高程度的输出自定义配置。
DocBook- 文本书籍格式。
(通过
texi2any --docbook生成)该格式是基于 XML 的标记语言,主要用于编写技术文档,因此在整体框架上与 Texinfo 存在一定相似性。官方详情参见:http://www.docbook.org。目前已有多款将 DocBook 格式转换为 Texinfo 格式的工具,相关信息可参见 Texinfo 官方网页。 XML可扩展标记语言。 (通过
texi2any --xml生成)与上述所有输出格式不同,texi2any生成的 XML 格式并非最终可使用的文档,而是 Texinfo 源文件的转写形式,无法直接通过网页浏览器或其他常规程序查看。XML 是一种通用的语法规范,可适用于各类内容的标记(参考标准:http://www.w3.org/XML)。Texinfo 生成 XML 格式的核心目的,是为了通过各类 XML 工具进行后续的二次处理。其输出语法由 XML 文档类型定义(DTD)规范,相关定义文件
texinfo.dtd已包含在 Texinfo 源程序发布包中。Texinfo 源程序发布包中还包含一个实用脚本
txixml2texi,可将 XML 格式反向转换为原始的 Texinfo 内容(Texinfo 宏定义与条件语句除外)。
1.3. 信息文件
如前文所述,Info 格式基本是 Texinfo 源文件的纯文本转写形式,仅添加少量控制字符用于分隔节点并提供导航信息,供 Info 阅读程序解析运行。
Info 文件几乎均由处理 Texinfo 源文档生成, texi2any (也称作 makeinfo )是将 Texinfo 文件转换为 Info 文件的核心命令,相关说明参见《texi2any:Texinfo 转换工具》章节。
通常情况下,用户会通过一个约定命名为 'Top' 的节点进入 Info 文件。该节点一般仅包含文件用途的简要说明,以及一个可访问文件其余内容的大型菜单。从该节点开始,你既可以按节点依次浏览整个文件,也可以直接跳转到主菜单中列出的指定节点,还可以检索索引菜单并直接定位到包含所需信息的节点。此外,使用独立的 Info 程序时,你还能在命令行中指定具体的菜单项(参见《Info 程序》章节)。
若你希望像阅读印刷版手册一样按顺序浏览 Info 文件,可反复按下空格键(SPC),也可使用 Info 高级命令 g * 调出整个文件的内容(参见《Info 程序中的高级命令》章节)。
info 目录下的 dir 文件 是整个 Info 系统的入口,通过该文件可访问完整 Info 系统中各文档的 'Top' 节点。
若你希望通过统一资源标识符(URI)引用 Info 文件,可使用以下示例中的非官方语法,该语法可在 Emacs/W3 等工具中正常使用:
info:emacs#Dissociated%20Press info:///usr/info/emacs#Dissociated%20Press info://localhost/usr/info/emacs#Dissociated%20Press
需要注意的是,info 程序本身并不支持解析任何形式的 URI。