GNU Texinfo 使用手册

[ 最后修订与导出时间: 2026-01-28 20:01:42 +0800 ,总字数: 4442 ]

本手册适用于 GNU Texinfo(版本 7.2,2024 年 12 月 20 日),这是一个文档系统,可以使用语义标记从单个源生成在线信息和打印手册。

Texinfo 复制许可条款

1 Texinfo 概述

1.1 问题反馈

1.2 输出格式

1.3 信息文件

1.4 印刷书籍

1.5 新增输出格式

1.6 发展历史

2 编写 Texinfo 文件

2.1 通用语法规则

2.2 注释

2.3 Texinfo 文件的必备内容

2.4 简易示例

2.5 Texinfo 文件头

2.5.1 Texinfo 文件的首行

2.5.2 @setfilename:设置输出文件名

2.5.3 @settitle:设置文档标题

2.5.4 序言

2.5.5 Emacs 专用文件头的起始与结束

2.6 目录分类

2.7 文档权限

2.7.1 @copying:声明复制许可

2.7.2 @insertcopying:插入许可说明文本

2.9 生成目录

2.10 Top 节点与主菜单

2.10.1 主菜单的组成部分

2.11 文档正文

2.12 Texinfo 文件的结尾

3 节点

3.1 编写 @node 行

3.2 节点命名规则

3.3 @node 行的编写要求

3.4 首个节点

3.5 @top 章节命令

3.6 Texinfo 文档结构

3.7 节点与菜单示例

3.8 节点描述

3.9.1 编写菜单

3.9.5 简洁化菜单项

3.9.6 引用其他信息文件

4 章节结构

4.1 章节的树形结构

4.2 结构命令的类型

4.3 @chapter:章节结构定义

4.4 @unnumbered、@appendix:特殊标记的章节(无编号 / 附录)

4.5 @majorheading、@chapheading:章节级标题

4.6 @section:章节下的一级小节

4.7 @unnumberedsec、@appendixsec、@heading:无编号小节 / 附录小节 / 普通标题

4.8 @subsection:一级小节下的二级小节

4.9 类 @subsection 命令

4.10 @subsubsection 及其他三级小节命令

4.11 @part:章节组

4.12 提升 / 降低章节层级:@raisesections 与 @lowersections

5 交叉引用

5.1 不同类型的交叉引用命令

5.2 交叉引用的组成部分

5.3 单参数 @xref

5.4 双参数 @xref

5.5 三参数 @xref

5.6 四参数与五参数 @xref

5.7 引用整本手册

5.8 @xref:基础交叉引用

5.9 @ref:直接交叉引用

5.10 @pxref:附带页码的交叉引用

5.11 @anchor:定义自定义交叉引用目标

5.13 @inforef:仅针对信息文件的交叉引用

5.14 @url、@uref {网址 [, 显示文本][, 替换文本]}

5.14.1 @url 示例

5.14.2 网址自动换行

5.14.3 @url 的 PDF 输出格式

5.15 @cite {参考文献}:引用标注

5.16 PDF 颜色设置

6 文本、单词与短语标记

6.1 定义、命令等内容的标记

6.1.1 高亮命令的实用价值

6.1.2 @code {示例代码}:代码样式

6.1.3 @kbd {键盘字符}:键盘按键样式

6.1.4 @key {按键名}:功能键样式

6.1.5 @samp {文本}:示例文本样式

6.1.6 @verb {定界符文本定界符}:原义文本

6.1.7 @var {元语法变量}:变量样式

6.1.8 @env {环境变量}:环境变量样式

6.1.9 @file {文件名}:文件路径样式

6.1.10 @command {命令名}:终端命令样式

6.1.11 @option {选项名}:命令选项样式

6.1.12 @dfn {术语}:术语定义样式

6.1.13 @abbr {缩写 [, 全称]}:缩写标注

6.1.14 @acronym {首字母缩写 [, 全称]}:首字母缩写标注

6.1.15 @indicateurl {统一资源定位符}:网址标识样式

6.1.16 @email {邮箱地址 [, 显示文本]}:邮箱地址样式

6.2 文本强调

6.2.1 @emph {文本} 与 @strong {文本}:斜体强调 / 粗体强调

6.2.2 @sc {文本}:小型大写字体

6.2.3 印刷用字体设置

7 引用与示例

7.1 块包裹命令

7.2 @quotation:块引用

7.3 @indentedblock:缩进文本块

7.4 @example:示例文本块

7.5 @verbatim:原义文本块

7.6 @lisp:Lisp 代码示例块

7.7 @display:正文字体示例块

7.8 @format:整行宽度示例块

7.9 @exdent:取消行缩进

7.10 @flushleft 与 @flushright:左对齐 / 右对齐

7.11 @raggedright:居左不齐行文本

7.12 @noindent:取消段落缩进

7.13 @indent:强制段落缩进

7.14 @cartouche:圆角矩形标注块

7.15 @small 系列块命令:小字体块

8 列表与表格

8.1 列表介绍

8.2 @itemize:创建无序列表

8.3 @enumerate:创建有序 / 字母列表

8.4 创建双列表格

8.4.1 使用 @table 命令

8.4.2 @ftable 与 @vtable:固定宽度 / 可变宽度表格

8.4.3 @itemx:第二个及后续表项

8.5 @multitable:多列表格

8.5.1 多列表格列宽设置

8.5.2 多列表格行设置

9 特殊显示

9.1 浮动体

9.1.1 @float [类型][, 标签]:浮动内容

9.1.2 @caption & @shortcaption:标题 / 简短标题

9.1.3 @listoffloats:浮动体目录

9.2 插入图片

9.2.1 图片语法

9.2.2 图片缩放

9.3 脚注

9.3.1 脚注命令

9.3.2 脚注样式

10 索引

10.1 预定义索引

10.2 定义索引条目

10.3 高级索引命令

10.4 插入索引条目

10.5 索引与菜单的印刷

10.6 合并索引

10.6.1 @syncodeindex:通过 @code 样式合并索引

10.6.2 @synindex:基础索引合并

10.7 定义新索引

11 特殊插入

11.1 特殊字符:插入 @ {} , \ # &

11.1.1 使用 @@ 与 @atchar {} 插入 @

11.1.2 使用 @{@} 与 @lrbracechar {} @rrbracechar {} 插入 {}

11.1.3 使用 @comma {} 插入,

11.1.4 使用 @backslashchar {} 插入

11.1.5 使用 @hashchar {} 插入 #

11.1.6 使用 @& 与 @ampchar {} 插入 &

11.2 插入引号

11.3 插入空格

11.3.1 多个连续空格

11.3.2 非句尾空格

11.3.3 句尾空格

11.3.4 @frenchspacing 取值:控制句尾间距

11.3.5 @dmn {量纲}:量纲格式化

11.4 插入重音符号

11.5 插入引号符号

11.6 @sub 与 @sup:插入下标与上标

11.7 @math 与 @displaymath:数学公式格式化

11.8 文本专用符号

11.8.1 @TeX {}(TeX)与 @LaTeX {}(LaTeX)

11.8.2 @copyright {}(©):版权符号

11.8.3 @registeredsymbol {}(®):注册商标符号

11.8.4 @dots(…)与 @enddots(…):省略号

11.8.5 @bullet(・):项目符号

11.8.6 @euro(€):欧元符号

11.8.7 @pounds(£):英镑符号

11.8.8 @textdegree(°):度符号

11.8.9 @minus(−):减号

11.8.10 @geq(≥)与 @leq(≤):大于等于 / 小于等于符号

11.9 编程专用符号

11.9.1 符号汇总

11.9.2 @result {}(⇒):表达式结果

11.9.3 @expansion {}(→):展开标识

11.9.4 @print {} (-|):生成输出标识

11.9.5 @error {} (error→):错误信息标识

11.9.6 @equiv {} (≡):等价标识

11.9.7 @point {} (∗):缓冲区光标位置标识

11.9.8 点击序列

11.10 插入 Unicode 字符:@U

12 强制换行 / 分页与禁止换行 / 分页

12.1 换行 / 分页命令

12.2 @* 与 @/:生成换行与允许换行

12.3 @- 与 @hyphenation:印刷输出中的连字符换行

12.4 @allowcodebreaks:控制 @code 块内的换行

12.5 @w {文本}:禁止文本换行

12.6 @tie {}:插入不可断空格

12.7 @sp n:插入空行

12.8 @page:开始新页面

12.9 @group:禁止块内分页

12.10 @need 长度值:强制保留指定长度不分页

13 定义命令

13.1 定义的模板

13.2 定义命令的续行

13.3 可选参数与重复参数

13.4 省略定义名后的空格

13.5 @deffnx 及相关命令:多个定义首行

13.6 各类定义命令

13.6.1 函数及同类实体

13.6.2 类型化语言中的函数

13.6.3 变量及同类实体

13.6.4 类型化语言中的变量

13.6.5 数据类型

13.6.6 面向对象编程

13.6.6.1 面向对象的变量
13.6.6.2 面向对象的方法

13.7 通用定义命令

13.8 编写定义的规范

13.9 函数定义示例

14 国际化

14.1 @documentlanguage 语言代码 [_国家代码]:设置文档语言

14.2 @documentencoding 编码:设置输入编码

15 条件可见文本

15.1 条件命令

15.2 条件非命令

15.3 原始格式化器命令

15.4 行内条件判断:@inline、@inlineifelse、@inlineraw

15.5 标志位:@set、@clear、条件判断与 @value

15.5.1 @set 与 @value:设置与引用标志位

15.5.2 @ifset 与 @ifclear:根据标志位判断显示

15.5.3 @inlineifset 与 @inlineifclear:行内标志位判断

15.5.4 @value 示例

15.6 检测 Texinfo 命令:@ifcommanddefined、@ifcommandnotdefined

15.7 条件判断的嵌套

16 定义新的 Texinfo 命令

16.1 定义宏

16.2 调用宏

16.3 宏的细节与注意事项

16.4 @alias 新命令 = 已有命令:命令别名

16.5 行宏

16.6 @definfoenclose:自定义高亮样式

16.7 外部宏处理器:行指令

16.7.1 #line 指令

16.7.2 #line 与 TeX

16.7.3 #line 语法细节

17 包含文件

17.1 包含文件的使用方法

17.2 含 @include 的示例文件

17.3 @verbatiminclude 文件名:原义包含文件

18 使用 TeX 进行格式化与印刷

18.1 TeX 的使用

18.2 使用 texi2dvi 或 texi2pdf 格式化

18.3 使用 tex/texindex 格式化

18.3.1 部分文档的格式化

18.3.2 texindex 细节

18.4 TeX 格式化的前期准备

18.5 超宽水平盒子(hboxes)问题

18.6 日文与中文的印刷

19 texi2any:Texinfo 转换工具

19.1 从 Shell 调用 texi2any

19.2 texi2any 识别的环境变量

19.3 texi2any 的印刷输出

19.4 自定义变量

19.4.1 针对 @ 命令的自定义变量

19.4.2 自定义变量与命令行选项

19.4.3 全局自定义变量

19.4.4 信息文件与纯文本的自定义变量

19.4.5 LaTeX 输出的自定义变量

19.4.6 其他格式的自定义变量

19.4.7 多格式通用自定义变量

19.5 文档字符串的国际化

19.6 调用 pod2texi:将 Pod 转换为 Texinfo

19.6.1 pod2texi 工具

19.7 texi2html:texi2any 的前身

20 创建与安装信息文件

20.1 安装信息文件

20.1.1 目录文件 dir

20.1.2 新增信息文件的列示

20.1.3 其他目录中的信息文件

20.1.4 安装信息目录文件

20.1.5 调用 install-info 工具

20.2 标签文件与拆分文件

20.3 信息文件格式常见问题

21 生成 HTML

21.1 HTML 转换

21.2 HTML 文件拆分

21.3 HTML 层叠样式表(CSS)

21.4 @documentdescription:摘要文本

21.5 生成 EPUB

21.5.1 容器目录与输出文件

21.5.2 EPUB 中的交叉引用

21.5.3 实现严格的 EPUB 标准兼容

21.5.4 为 EPUB 生成的 HTML

21.6 HTML 中的代码示例语法高亮

21.7 HTML 中的交叉引用

21.7.2 HTML 交叉引用的节点名展开

21.7.3 HTML 交叉引用的命令展开

21.7.4 HTML 交叉引用的 8 位字符展开

21.7.5 HTML 交叉引用配置文件:htmlxref.cnf

21.8 HTML 输出的自定义

21.8.1 HTML 输出结构的自定义

21.8.3 导航栏与页眉的自定义

21.8.4 HTML 功能的自定义

21.8.5 插入 HTML 代码的自定义

21.8.6 特定输出内容的 HTML 自定义

21.8.7 数学公式的 HTML 自定义

21.8.7.1 MathJax 自定义变量
21.8.7.2 latex2html 自定义变量
21.8.7.3 tex4ht 自定义变量

21.8.8 JavaScript 接口与许可证

21.8.9 HTML 自定义变量列表

附录 A @ 命令细节

A.1 @ 命令语法

A.2 @ 命令列表

A.3 @ 命令的使用上下文

A.4 废弃的 @ 命令

附录 B 技巧与提示

附录 C Texinfo 示例文件

C.1 GNU 示例文本

C.2 原义复制许可证

C.3 宽松式复制许可证

附录 D Texinfo 模式的使用

D.1 Texinfo 模式概述

D.2 通用 GNU Emacs 编辑命令

D.3 插入常用命令

D.4 显示文件的章节结构

D.4.1 使用 texinfo-show-structure 命令

D.4.2 使用 occur 命令

D.5 更新节点与菜单

D.5.1 更新相关命令

D.5.2 更新的要求

D.5.3 更新主文件与包含文件

D.5.4 包含文件的更新要求

D.5.5 其他更新命令

D.6 为信息文件格式化

D.6.1 在 Emacs 中运行 texi2any/makeinfo

D.6.2 texinfo-format 系列命令

D.7 在 Emacs 中进行格式化与印刷

D.7.1 Texinfo 模式下的格式化与印刷

D.7.2 使用本地变量列表

D.8 Texinfo 模式汇总

D.9 信息文件的直接格式化

D.9.1 为文件添加标签

D.9.2 手动拆分文件

D.10 检查错误

D.10.1 推荐使用 texi2any

D.10.2 检查信息文件格式化的错误

D.10.3 通过 TeX 调试

D.10.4 查找引用错误的节点

D.10.4.1 使用 Info-validate 命令
D.10.4.2 创建未拆分文件并添加标签表

D.11 批处理格式化

附录 E 全局文档命令

E.1 @setchapternewpage:章节前的空白页设置

E.2 页面页眉

E.2.1 @headings 命令

E.2.2 标准页眉格式

E.2.3 自定义页眉的方法

E.3 @paragraphindent:控制段落缩进

E.4 @firstparagraphindent:标题后首段的缩进设置

E.5 @exampleindent:示例环境的缩进设置

E.6 @smallbook:印刷 “小开本” 书籍

E.7 A4 纸张的印刷设置

E.8 @pagesizes [宽度][, 高度]:自定义页面尺寸

E.9 微排版设置

E.10 放大比例设置

附录 F 信息文件格式规范

F.1 信息文件格式:整册手册

F.2 信息文件格式:序言

F.3 信息文件格式:间接表

F.4 信息文件格式:标签表

F.5 信息文件格式:本地变量

F.6 信息文件格式:普通节点

F.7 信息文件格式:菜单

F.8 信息文件格式:图片

F.9 信息文件格式:索引打印

F.10 信息文件格式:交叉引用

附录 G GNU 自由文档许可证

命令索引

变量索引

通用索引

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© 2025 Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike