Orgtbl 模式内置多种转换函数: orgtbl-to-csv (逗号分隔值)、 orgtbl-to-tsv (制表符分隔值)、 orgtbl-to-latex 、 orgtbl-to-html 、 orgtbl-to-texinfo 、 orgtbl-to-unicode 和 orgtbl-to-orgtbl 。它们均基于通用转换函数 orgtbl-to-generic ,该函数将转换工作委托给各类导出后端。
通过 ‘ORGTBL SEND’ 行传递给函数的属性,优先级高于函数内部定义的属性。例如下面的语句将默认 LaTeX 行尾符 \\ 替换为 \\[2mm] :
#+ORGTBL: SEND test orgtbl-to-latex :lend " \\\\[2mm]"
若要为新语言编写转换器,可定义转换函数,也可使用通用函数,如下例所示:用 ‘!BTBL!’ 和 ‘!ETBL!’ 标记表格起止,=!BL!= 和 ‘!EL!’ 标记行起止,使用制表符分隔字段:
(defun orgtbl-to-language (table params)
"将 Orgtbl 模式的 TABLE 转换为指定语言格式。"
(orgtbl-to-generic
table
(org-combine-plists
'(:tstart "!BTBL!" :tend "!ETBL!" :lstart "!BL!" :lend "!EL!" :sep "\t")
params)))
orgtbl-to-generic 函数的文档中列出了完整参数列表,这些参数均可传递给 orgtbl-to-latex 、 orgtbl-to-texinfo 及其他使用该通用函数的工具。
对于复杂转换,可使用自定义转换函数替代通用转换函数。自定义函数必须接收两个参数并返回单个字符串,包含格式化后的表格:第一个参数为表格(每行是字段列表或符号 hline ),第二个参数为 ‘#+ORGTBL: SEND’ 行指定的参数构成的属性列表。欢迎将你的转换函数分享至 Org 用户邮件列表:mailto:[email protected]。