将org模式表格中的竖线导出到LaTeX

17

我使用Emacs作为我的编辑器,正在尝试使用看起来非常有用的org-mode。

我在org-mode中生成了一个表格(电子表格),它可以正确地导出到LaTeX,但是垂直线条没有被导出。有没有一种方法可以将它们导出?我想定义一些垂直线条为可见的。

4个回答

25
你可以使用#+attr_latex:为LaTeX表格提供格式,例如:
#+attr_latex: :align |c|c|c|
|------+-----+-----|
|    A |   B |   C |
|------+-----+-----|
| 2.34 | 2.7 | 8.9 |
| 3.67 | 4.5 | 8.9 |
|------+-----+-----|

在旧版本中,这个通常是这样的:
#+attr_latex: align=|c|c|c|

但是这个已经不起作用了。

18
最近版本的org中应该是这样写的:#+attr_latex: :align |c|c|c| - rvf0068
1
抓住了!! 从伟大的魔法中解救出来了。 - thapakazi
1
表格中的水平线怎么办?在 LaTeX 导出时,它们也可以被显示出来吗? - Gathide

6

您应该使用列组

可以使用一个特殊的行,其中第一个字段仅包含“/”。更多字段可以包含“<”表示此列应开始一组,“>”表示此列的结束,或者“<>”让该列成为自己的一组。在导出时,列组之间的边界将用垂直线标记。

这样做的好处是既可以在HTML导出中使用,也可以在LaTeX导出中使用。


1
除非我漏看了什么,否则这似乎不包括表格两侧的行,只有内部列? - Brian Z
那似乎是真的。 - channon

1

1

在 LaTeX 中,竖线是由表格定义中的 | 字符定义的。因此,在运行 LaTeX 之前,只需使用 \tabular 定义中的 |lr 分隔开即可,例如在 Perl 中可以这样实现:

perl -pe 's/(\\begin{tabular}{)(.*)}/$1 . join("|", split m{}, $2) . "}"/ge' < table.tex

更新:哦,我明白了。根据文档,您应该能够通过以下方式指示列组

| / | < |   |   | > | <> | < | > |

但是,当我在我的emacs和org-mode版本中尝试时,什么都没有发生。


谢谢。我完全不理解你的回答。可能是我的问题。我已经编辑了我的问题。 - Yotam
参考链接已失效... 这个链接更好 https://orgmode.org/manual/Column-Groups.html - jaromrax

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