【问题标题】:How to export a org-mode table to LaTeX with the correct placement [h]?如何以正确的位置 [h] 将组织模式表导出到 LaTeX?
【发布时间】:2017-06-07 13:50:24
【问题描述】:

我正在尝试从我的 org 文件中将表格导出到 LaTeX,如下所示。

    #+LATEX_HEADER: \usepackage{adjustbox}
    * table test 

    #+begin_table 
    #+LATEX: \caption{my caption}
    label:tab:mylabel
    #+ATTR_LATEX: :placement [h]
    #+LATEX: \centering
    #+LATEX: \adjustbox{max width=\linewidth}{
    #+ATTR_LATEX: :center nil
    |    |                          |
    | id | Question                 |
    |----+--------------------------|
    |    |                          |
    |  1 | Does it export with [h]? |
    #+end_table

我想让导出的 TeX 看起来像这样:

    ... 
    \begin{table}[h]
    \caption{my caption}
    \label{tab:mylabel}
    \centering
    \adjustbox{max width=\linewidth}{
    \begin{tabular}{ll}
     & \\
    id & Question\\
    \hline
     & \\
    1 & Does it export with [h]?\\
    \end{tabular}
    \end{table}
    ...

但只有我刚刚得到

    ... 
    \begin{table}
    \caption{my caption}
    \label{tab:mylabel}
    \centering
    \adjustbox{max width=\linewidth}{
    \begin{tabular}{ll}
     & \\
    id & Question\\
    \hline
     & \\
    1 & Does it export with [h]?\\
    \end{tabular}
    \end{table}
    ...

使用以下版本

2017-01-06 的 GNU Emacs 25.1.1(x86_64-apple-darwin15.5.0,NS appkit-1404.47 版本 10.11.5(Build 15F34))

组织模式版本 9.0.5 (release_9.0.5-444-g998576 @ ~/git/org-mode/lisp/)

我也试过

#+ATTR_LATEX: :float t :placement [h]

#+ATTR_LATEX: :center nil :float t :placement [h]

#+ATTR_LATEX: :center nil :placement [h]

#+begin_table :placement [h]

#+begin_table :float t :placement [h]

我在互联网上的搜索只找到了 2010 年的一些电子邮件,其中 org-latex.el 存在。由于它仍然存在于文档中,因此我认为它应该以某种方式工作。

那么谁能帮助我?或者泄露我必须向 Google 提供的魔法词以找到我的答案?


谢谢@Nick,我们走在正确的道路上,遗憾的是没有走到尽头。

好吧,我不想中断解析,它解释了一些事情。 我还有一些要求和事情要解释。

起初,我的一些表有点宽,如下所示:

   | id | Question                                                                                                                  |
   |----+---------------------------------------------------------------------------------------------------------------------------|
   |  1 | Does it export with [h]?                                                                                                  |
   |  2 | I have some tables witch are very wide so What if you have a really wide table wich needs to be shrinked to the right size |

Adjustbox 包是我发现的第一个将整个 tavle 缩小到正确宽度的包。我尝试了您建议的tabulrx,但它并没有缩小表格的内容。如果没有缩小,我的大多数桌子看起来都是有线的。

第二件事,我正在使用org-ref。使用您的版本(当 2 个问题消失时,我希望女巫)在我的盒子上导出到:

   \caption{\label{tab:org56e3a68}
   My caption}  

我按照文档中的预期添加了#+lable: tab:my-label。在 #+caption:#+name: 之前和之后添加它,但它不会更改 .tex 文件中的任何内容。

有什么想法吗?

【问题讨论】:

  • 应该是:placement [h],而不是:plcement [h]。未经测试。
  • 感谢尼克,但输入问题时出现错字。它不适用于:placement [h]
  • 您是否按照我的回答中所述添加了#+BIND 指令?那应该照顾组织生成的标签。另外,我不知道您已经修改了问题:我没有收到任何通知。我只是碰巧再次看这个问题,它看起来不同。因此,如果您希望有人跟进,请在答案中添加评论,例如:“请查看修改后的问题”。
  • 另外,我认为 SO 政策是不鼓励在一篇文章中提出多个问题。您应该能够以清晰的标题总结问题,并且这应该是帖子中的唯一问题。如果您还有其他问题,您应该在单独的帖子中询问每个问题。在这一点上,我们已经远离了这一切开始的安置问题。
  • 好吧,尼克再次说得对,我将发布一个摘要问题并将其标记为已回答。谢谢

标签: emacs export latex org-mode


【解决方案1】:

我可以做你想做的一切,除了调整框的东西:

#+BIND: org-latex-prefer-user-labels t
* table test 


#+caption: My caption
#+name:my-label
#+ATTR_LATEX: :placement [h] :center t
|    |                          |
| id | Question                 |
|----+--------------------------|
|    |                          |
|  1 | Does it export with [h]? |

我不知道 \adjustbox 是做什么的或者它必须如何使用以及它必须放在哪里;但是,您不能在 #+caption 和表格之间添加 #+LATEX: 行:它们显然会破坏解析。

您可以在 ATTR_LATEX 行中添加另一个属性:

#+ATTR_LATEX: :placement [h] :center t :width \linewidth

但目前尚不清楚这是否符合您的要求。另外,我刚刚测试过,它什么也没做:那是因为标准环境是tabular,它不带宽度参数。以下作品:

#+ATTR_LATEX: :environment tabularx :placement [h] :center t :width \linewidth

但你也必须添加

#+LATEX_HEADER: \usepackage{tabularx}

在文件的顶部。

【讨论】:

    猜你喜欢
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多