A.6.3 Translator functions

Orgtbl 模式内置多种转换函数: orgtbl-to-csv (逗号分隔值)、 orgtbl-to-tsv (制表符分隔值)、 orgtbl-to-latexorgtbl-to-htmlorgtbl-to-texinfoorgtbl-to-unicodeorgtbl-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-latexorgtbl-to-texinfo 及其他使用该通用函数的工具。

对于复杂转换,可使用自定义转换函数替代通用转换函数。自定义函数必须接收两个参数并返回单个字符串,包含格式化后的表格:第一个参数为表格(每行是字段列表或符号 hline ),第二个参数为 ‘#+ORGTBL: SEND’ 行指定的参数构成的属性列表。欢迎将你的转换函数分享至 Org 用户邮件列表: