A.6.3 Translator functions

Orgtbl mode has several translator functions built-in: orgtbl-to-csv
(comma-separated values), orgtbl-to-tsv (TAB-separated values)
orgtbl-to-latex, orgtbl-to-html, and orgtbl-to-texinfo.
Except for orgtbl-to-html183, these all use a generic
translator, orgtbl-to-generic. For example, orgtbl-to-latex
itself is a very short function that computes the column definitions for the
tabular environment, defines a few field and line separators and then
hands processing over to the generic translator. Here is the entire code:

As you can see, the properties passed into the function (variable
PARAMS) are combined with the ones newly defined in the function
(variable PARAMS2). The ones passed into the function (i.e., the
ones set by the ‘ORGTBL SEND’ line) take precedence. So if you
would like to use the LaTeX translator, but wanted the line endings to
be ‘\\[2mm]’ instead of the default ‘\\’, you could just
overrule the default with

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

For a new language, you can either write your own converter function in
analogy with the LaTeX translator, or you can use the generic function
directly. For example, if you have a language where a table is started
with ‘!BTBL!’, ended with ‘!ETBL!’, and where table lines are
started with ‘!BL!’, ended with ‘!EL!’, and where the field
separator is a TAB, you could call the generic translator like this (on
a single line!):

Please check the documentation string of the function
orgtbl-to-generic for a full list of parameters understood by
that function, and remember that you can pass each of them into
orgtbl-to-latex, orgtbl-to-texinfo, and any other function
using the generic function.

Of course you can also write a completely new function doing complicated
things the generic translator cannot do. A translator function takes
two arguments. The first argument is the table, a list of lines, each
line either the symbol hline or a list of fields. The second
argument is the property list containing all parameters specified in the
‘#+ORGTBL: SEND’ line. The function must return a single string
containing the formatted table. If you write a generally useful
translator, please post it on emacs-orgmode@gnu.org so that
others can benefit from your work.