13.14.9 Plain lists in Texinfo export

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

括号中的命令为可选内容,写法如上所示。