引用 pandoc 中的表格

引用 pandoc 中的表格

Pandoc 允许通过内联 Latex 命令引用图像。但是,它似乎不适用于表格。我知道有几种解决方法,包括手动操作生成的 TeX 文件,但有没有办法,例如通过内联 Latex,让 pandoc 输出带有自动表格引用的 Latex/PDF/...,如下所示(不起作用):

See table \ref{example}.

----------
my  table
--- ------
a   1
b   2
----------
Table \label{example}: An example that does not work.

答案1

See table \ref{my_table}.

Table: (table title) \label{my_table}

-----------------------
Header1 Header2 Header3
------- ------- -------
item1   item2   item3
-----------------------

转换结果可以通过使用pandoc 的 Web 界面. LaTeX 输出有点冗长

See table \ref{my_table}.

\begin{longtable}[c]{@{}lll@{}}
\caption{(table title) \label{my_table}}\tabularnewline
\toprule
\begin{minipage}[b]{0.09\columnwidth}\raggedright\strut
Header1
\strut\end{minipage} &
\begin{minipage}[b]{0.09\columnwidth}\raggedright\strut
Header2
\strut\end{minipage} &
\begin{minipage}[b]{0.09\columnwidth}\raggedright\strut
Header3
\strut\end{minipage}\tabularnewline
\midrule
\endfirsthead
\toprule
\begin{minipage}[b]{0.09\columnwidth}\raggedright\strut
Header1
\strut\end{minipage} &
\begin{minipage}[b]{0.09\columnwidth}\raggedright\strut
Header2
\strut\end{minipage} &
\begin{minipage}[b]{0.09\columnwidth}\raggedright\strut
Header3
\strut\end{minipage}\tabularnewline
\midrule
\endhead
\begin{minipage}[t]{0.09\columnwidth}\raggedright\strut
item1
\strut\end{minipage} &
\begin{minipage}[t]{0.09\columnwidth}\raggedright\strut
item2
\strut\end{minipage} &
\begin{minipage}[t]{0.09\columnwidth}\raggedright\strut
item3
\strut\end{minipage}\tabularnewline
\bottomrule
\end{longtable}

与 ConTeXt 输出进行比较:

See table \ref{my_table}.

\placetable{(table title) \label{my_table}}
\starttable[|lp(0.10\textwidth)|lp(0.10\textwidth)|lp(0.10\textwidth)|]
\HL
\NC Header1
\NC Header2
\NC Header3
\NC\AR
\HL
\NC item1
\NC item2
\NC item3
\NC\AR
\HL
\stoptable

如您所见,在两种情况下,“表格标题”都被正确标记为生成表格的标题。

答案2

您可以使用pandoc-tablenos过滤器。您的示例将写为

See table @tbl:example.

----------
my  table
--- ------
a   1
b   2
----------

Table: An example that DOES work. {#tbl:example}

使用带有以下命令行标志的过滤器pandoc

$ pandoc example.md --filter pandoc-tablenos -o example.pdf

输出格式是任意的:LaTeX/pdf、html 或其他。

相关内容