13.10.5 Tables in LaTeX export

The LaTeX export back-end can pass several LaTeX attributes for table contents and layout. Besides specifying a label (see Internal Links) and a caption (see Captions), the other valid LaTeX attributes include:


The LaTeX export back-end wraps the table differently depending on the mode for accurate rendering of math symbols. Mode is either ‘table’, ‘math’, ‘inline-math’, ‘verbatim’ or ‘tabbing’.

For ‘math’ or ‘inline-math’ mode, LaTeX export back-end wraps the table in a math environment, but every cell in it is exported as-is. For ‘tabbing’ the LaTeX tabbing environment is used and the correct tabbing delimiters ‘\>’ are used. The LaTeX export back-end determines the default mode from org-latex-default-table-mode. The LaTeX export back-end merges contiguous tables in the same mode into a single environment.


Set the default LaTeX table environment for the LaTeX export back-end to use when exporting Org tables. Common LaTeX table environments are provided by these packages: tabularx, longtable, array, tabu, and bmatrix. For packages, such as tabularx and tabu, or any newer replacements, include them in the org-latex-packages-alist variable so the LaTeX export back-end can insert the appropriate load package headers in the converted LaTeX file. Look in the docstring for the org-latex-packages-alist variable for configuring these packages for LaTeX snippet previews, if any.


Use ‘CAPTION’ keyword to set a simple caption for a table (see Captions). For custom captions, use ‘:caption’ attribute, which accepts raw LaTeX code. ‘:caption’ value overrides ‘CAPTION’ value.


The table environments by default are not floats in LaTeX. To make them floating objects use ‘:float’ with one of the following options: ‘t’ (for a default ‘table’ environment), ‘sideways’ (for a ‘sidewaystable’ environment), ‘multicolumn’ (to span the table across multiple columns of a page in a ‘table*’ environment) and ‘nil’. In addition to these three values, ‘:float’ can pass through any arbitrary value, for example a user-defined float type with the ‘float’ LaTeX package.

LaTeX floats can also have additional layout ‘:placement’ attributes. These are the usual ‘[h t b p ! H]’ permissions specified in square brackets. Note that for ‘:float sideways’ tables, the LaTeX export back-end ignores ‘:placement’ attributes.


The LaTeX export back-end uses these attributes for regular tables to set their alignments, fonts, and widths.


The ‘:options’ attribute allows adding an optional argument with a list of various table options (between brackets in LaTeX export), since certain tabular environments, such as longtblr of the tabularray LaTeX package, provides this structure. For example: ‘:options remark{Note}={note},remark{Source}={source}’.


When ‘:spread’ is non-nil, the LaTeX export back-end spreads or shrinks the table by the ‘:width’ for tabu and longtabu environments. ‘:spread’ has no effect if ‘:width’ is not set.


All three commands are toggles. ‘:booktabs’ brings in modern typesetting enhancements to regular tables. The booktabs package has to be loaded through org-latex-packages-alist. ‘:center’ is for centering the table. ‘:rmlines’ removes all but the very first horizontal line made of ASCII characters from “table.el” tables only.


The LaTeX export back-end inserts ‘:math-prefix’ string value in a math environment before the table. The LaTeX export back-end inserts ‘:math-suffix’ string value in a math environment after the table. The LaTeX export back-end inserts ‘:math-arguments’ string value between the macro name and the table’s contents. ‘:math-arguments’ comes in use for matrix macros that require more than one argument, such as ‘qbordermatrix’.

LaTeX table attributes help formatting tables for a wide range of situations, such as matrix product or spanning multiple pages:

#+ATTR_LATEX: :environment longtable :align l|lp{3cm}r|l
| ... | ... |
| ... | ... |

#+ATTR_LATEX: :mode math :environment bmatrix :math-suffix \times
| a | b |
| c | d |
#+ATTR_LATEX: :mode math :environment bmatrix
| 1 | 2 |
| 3 | 4 |

Set the caption with the LaTeX command ‘\bicaption{HeadingA}{HeadingB}’:

#+ATTR_LATEX: :caption \bicaption{HeadingA}{HeadingB}
| ... | ... |
| ... | ... |