Texinfo 导出后端会使用默认命令 ‘@itemize’ 转换 Org 文件中的无序列表与有序列表。
有序列表导出为 Texinfo 格式时会自动编号。该编号规则遵循列表第一项中设置的任意计数器(见 Plain Lists)。 ‘:enum’ 属性还可让列表从指定数字开始,或切换为字母列表,示例如下:
#+ATTR_TEXINFO: :enum A 1. Alpha 2. Bravo 3. Charlie
Texinfo 导出后端默认使用 ‘@table’ 命令转换 Org 文件中的描述列表,最终生成两列表格。若要修改该行为,可将 ‘:table-type’ 属性设为 ‘ftable’ 或 ‘vtable’ 。更多信息参见 (texinfo)Two-column Tables。
Texinfo 导出后端默认会根据 org-texinfo-table-default-markup 中保存的默认设置应用文本高亮。若要覆盖默认高亮命令,可通过 ‘:indic’ 属性指定其他命令。
Org 语法限制每个列表项只能有一个条目。不过 Texinfo 导出后端可通过 ‘:sep’ 属性传入的文本对条目进行拆分,拆分后的每一部分会作为表格第一列的新条目。
以下示例展示了上述所有属性的用法:
#+ATTR_TEXINFO: :table-type vtable :sep , :indic asis - foo, bar :: This is the common text for variables foo and bar.
转换后为
@vtable @asis @item foo @itemx bar This is the common text for variables foo and bar. @end table
‘:compact’ 属性是 ‘:sep’ 属性的替代方案,支持将每个条目单独写在一行。当该属性非 nil ,且描述列表中的某一项无正文但后续紧跟另一项时,第二项会被转写为 ‘@itemx’ 。下面示例的转写结果与上方示例一致。
#+ATTR_TEXINFO: :table-type vtable :indic asis :compact t - foo :: - bar :: This is the common text for variables foo and bar.
可通过文件级导出选项 ‘compact-itemx’ 为文件中所有列表启用该紧凑语法,或通过变量 org-texinfo-compact-itemx 进行全局启用。
Texinfo 导出后端还支持两种编写 Texinfo 定义命令的方式(见 (texinfo)Definition Commands)。一种基于描述列表,将在下文介绍;另一种依赖专用块(见 Special blocks in Texinfo export)。
Org 文件中以 ‘Function:’ 或其他特定前缀开头的描述列表项,会通过 Texinfo 定义命令进行转换。即使同一列表中其他项无此前缀也可正常工作;必要时,单个描述列表会通过多个表格(如 ‘@vtable’ )与定义命令(如 ‘@defun’ )共同完成转换。
- Function: org-texinfo-drawer drawer contents info :: Transcode a DRAWER element from Org to Texinfo.
转换后为
@defun org-texinfo-drawer drawer contents info :: Transcode a DRAWER element from Org to Texinfo. @end defun
可识别的前缀包括 ‘Command:’ 、 ‘Function:’ 、 ‘Macro:’ 、 ‘Special Form:’ 、 ‘Variable:’ 与 ‘User Option:’ 。这些前缀与对应定义命令在 Info 文件中显示的前缀一致。例如 Org 文件中以 ‘Function:’ 开头的项会被转换为 Texinfo 文件中的 ‘@defun’ 命令,该命令最终在 Info 文件中显示为以 ‘-- Function:’ 开头的定义。
作为特殊情况,前缀 ‘Key:’ 同样可被识别。Texinfo 中没有专门用于按键绑定的定义命令,且 Info 文件输出中也不会显示 ‘Key:’ 前缀。即便如此,该特殊用法仍被支持,因其提供了便捷的简写方式,示例如下:
- Key: C-c C-c (do-something) :: This command does something. - User Option: do-something-somehow :: This option controls how exactly ~do-something~ does its thing.
转换后为
@table @asis
@item @kbd{C-c C-c} (@code{do-something})
@kindex C-c C-c
@findex do-something
This command does something.
@end table
@defopt do-something-somehow
This option controls how exactly @code{do-something} does its thing.
@end defopt
括号中的命令为可选内容,写法如上所示。