如何使用正确的位置 [h] 将 org-mode table 导出到 LaTeX?

How to export a org-mode table to LaTeX with the correct placement [h]?

我正在尝试将 table 从我的组织文件导出到 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}
    ...

使用以下版本

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

组织模式版本 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,我们走在正确的道路上,遗憾的是没有走到尽头。

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

起初我的一些 table 有点宽,像这样:

   | 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 包是我发现的第一个将整个栏缩小到正确宽度的包。我尝试了您建议的 tabulrx,但它没有缩小 table 的内容。没有缩小我的大部分 table 看起来有线。

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

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

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

有什么想法吗?

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

#+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 和 table 之间添加 #+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}

在文件的顶部。