当导出到LaTeX时,使org-mode表格标题出现在表格下方

14

我正在使用org-mode制作文档,其中有许多使用内置表格功能构建的表格。我已经为表格添加了标题,但是当我将它们导出到LaTeX时,标题不是出现在表格下方,而是出现在上方。在手册中关于表格的部分latex导出文档中,没有提到任何改变这一点的方法,除了手动调整LaTeX代码。下面的代码片段说明了在具有标题的示例表格上导出生成的内容。

#+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 |

导出的:

\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}

问题可以非常简单地解决。文件中的标题出现在表格上方是因为在代码中它在表格上方。将标题定义移至表格部分下面即可解决此问题:

\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}

在org文件中将标题定义放在表格下面是不可能的,因为它定义了下一个表格的标题,正如手册中所述。有没有办法让org-mode将产生的标题导出到表格下面?

2个回答

13

因为将org-export-latex-table-caption-above设置为nil现在已经不起作用了,所以更新Org-mode版本8.3.2的答案。

我在我的.emacsinit.el文件中添加了下一行:

(setq org-latex-caption-above nil)

只是顺便提一下,默认情况下,该变量包含值为(table)的值,这是我们要覆盖为nil的值。


10

链接中,N.N.发布了一个补丁来实现允许在浮动体上方或下方放置标题的功能。查看github上的org-mode代码,Emacs 24.1的默认行为是将标题放置在表格上方。若要将标题放置在表格下方,请将org-export-latex-table-caption-above变量设置为nil

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

5
在最新版的Org mode(2016年12月)中,我们需要使用变量 org-latex-caption-above - zhxchen17

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接