Translator functions (The Org Manual)

Previous: A LaTeX example, Up: Tables in Arbitrary Syntax [Contents][Index]

#### A.5.3 Translator functions

Orgtbl mode has built-in translator functions: `orgtbl-to-csv` (comma-separated values), `orgtbl-to-tsv` (TAB-separated values), `orgtbl-to-latex`, `orgtbl-to-html`, `orgtbl-to-texinfo`, `orgtbl-to-unicode` and `orgtbl-to-orgtbl`. They use the generic translator, `orgtbl-to-generic`, which delegates translations to various export back-ends.

Properties passed to the function through the ‘`ORGTBL SEND`’ line take precedence over properties defined inside the function. For example, this overrides the default LaTeX line endings, `\\`, with `\\[2mm]`:

    #+ORGTBL: SEND test orgtbl-to-latex :lend " \\\\[2mm]"

For a new language translator, define a converter function. It can be a generic function, such as shown in this example. It marks a beginning and ending of a table with ‘`!BTBL!`’ and ‘`!ETBL!`’; a beginning and ending of lines with ‘`!BL!`’ and ‘`!EL!`’; and uses a TAB for a field separator:

    (defun orgtbl-to-language (table params)
      "Convert the orgtbl-mode TABLE to language."
      (orgtbl-to-generic
       table
       (org-combine-plists
        '(:tstart "!BTBL!" :tend "!ETBL!" :lstart "!BL!" :lend "!EL!" :sep "\t")
        params)))

The documentation for the `orgtbl-to-generic` function shows a complete list of parameters, each of which can be passed through to `orgtbl-to-latex`, `orgtbl-to-texinfo`, and any other function using that generic function.

For complicated translations the generic translator function could be replaced by a custom translator function. Such a custom function must take two arguments and return a single string containing the formatted table. The first argument is the table whose lines are a list of fields or the symbol `hline`. The second argument is the property list consisting of parameters specified in the ‘`#+ORGTBL: SEND`’ line. Please share your translator functions by posting them to the Org users mailing list, at emacs-orgmode@gnu.org.

Previous: A LaTeX example, Up: Tables in Arbitrary Syntax [Contents][Index]