简体   繁体   中英

Make org-mode table caption appear below table when exported to LaTeX

I'm producing a document using org-mode which has quite a few tables in it, constructed using the built in table functionality. I've added captions to the tables, but when I export them to LaTeX , rather than the caption appearing below the table, it appears above it. In the manual section on tables and the latex export documentation , there is no mention of any method of changing this, other than fiddling with the LaTeX code manually. As an illustration, the following code snippets show what is generated by the export on an example table with a caption.

#+CAPTION: Results using two methods with different parameter settings.
#+LABEL: tbl:rescomp
| Parameter | Result 1 | Result 2 |
|-----------+----------+----------|
|       0.5 |      0.1 |      0.8 |
|         1 |      0.8 |      0.1 |

Exported:

\begin{table}[htb]
\caption{Results using two methods with different parameter settings.}
\label{tbl:rescomp}
\begin{center}
\begin{tabular}{rrr}
 Parameter  &  Result 1  &  Result 2  \\
\hline
       0.5  &       0.1  &       0.8  \\
         1  &       0.8  &       0.1  \\
\end{tabular}
\end{center}
\end{table}

The problem could be fixed very simply. The caption appears above the table in the document because it is above the table in the code. Moving the caption definition below the tabular section fixes the issue:

\begin{table}[htb]

\begin{center}
\begin{tabular}{rrr}
 Parameter  &  Result 1  &  Result 2  \\
\hline
       0.5  &       0.1  &       0.8  \\
         1  &       0.8  &       0.1  \\
\end{tabular}
\end{center}
\caption{Results using two methods with different parameter settings.}
\label{tbl:rescomp}
\end{table}

Placing the caption definition below the table in the org file is not possible, as it defines the caption for the next table, as described in the manual . Is there any way that I can get org-mode to export the caption below the table produced?

In the link posted by NN , a patch to implement functionality to allow captions to be placed above or below the float was applied. Looking at the org-mode code on github , the default behaviour of Emacs 24.1 is to place captions above the table. To place captions below tables instead, set the org-export-latex-table-caption-above variable to nil :

M-x customize-variable RET org-export-latex-table-caption-above RET nil

or

M-x set-variable RET org-export-latex-table-caption-above RET nil

Just updating the answer for Org-mode version 8.3.2 because setting org-export-latex-table-caption-above to nil does nothing now.

I added the next line to my .emacs or init.el file:

(setq org-latex-caption-above nil)

Just as a side note, that variable contains the value (table) by default, which is the one that we are overriding to nil .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM