Pandoc 管理的 Markdown 到 LaTeX 到 PDF 工作流程无法移植简单的 pipe_tables

Pandoc 管理的 Markdown 到 LaTeX 到 PDF 工作流程无法移植简单的 pipe_tables

我想设置一个简单的工作流程,让我使用 Markdown 在自己的文件中输入文档片段,然后使用诸如 之类的通用库将它们转换为 LaTeX pandoc,最后将所有文档片段整理到将输出为 PDF 的主文件中。

我在 Markdown 中创建了一个如下所示的表格:

 $x$    |   $F(x)$         
--------|------------------
 $0$    |  $\frac{2}{8}$    
 $1$    |  $0$              
 $2$    |  $\frac{1}{2}$    
 $3$    |  $2\frac{1}{2}$   
 $4$    |  $6\frac{3}{4}$   
 $5$    |  $14$        

这在我在 Atom 中设置的 markdown 预览窗口中呈现得相当令人满意,但在我使用命令行转换此文档之后:

pandoc -f markdown+tex_math_dollars+pipe_tables table.md -o table.tex

上述构造转换为:

\begin{longtable}[c]{@{}ll@{}}
\toprule\addlinespace
$x$ & $F(x)$
\\\addlinespace
\midrule\endhead
$0$ & $\frac{2}{8}$
\\\addlinespace
$1$ & $0$
\\\addlinespace
$2$ & $\frac{1}{2}$
\\\addlinespace
$3$ & $2\frac{1}{2}$
\\\addlinespace
$4$ & $6\frac{3}{4}$
\\\addlinespace
$5$ & $14$
\\\addlinespace
\bottomrule
\end{longtable}

当通过管道传输时:

pandoc table.tex -o table.pdf

没有解析成表格,初始行看起来特别可疑。

我可以手动将其重新调整为如下形式:

\begin{tabular}{c|c}
$x$ & $F(x)$ \\
\hline
$0$ & $\frac{2}{8}$ \\
$1$ & $0$ \\
$2$ & $\frac{1}{2}$ \\
$3$ & $2\frac{1}{2}$ \\
$4$ & $6\frac{3}{4}$ \\
$5$ & $14$ \\
\end{tabular}

这是我想要的结果,但它需要时间,而且我真的很希望能够直接从标记中获得这个结果,而无需人工干预。

答案1

我的回答:如果遇到任何问题,请务必使用 Pandoc 的最新版本重新测试。

我目前正在使用Pandoc v2.1,这甚至不是最新的(应该是Pandoc v2.5)。对于 Markdown 中的示例表,我的 2.1 版本给出了 LaTeX 输出:

pandoc \
   -f markdown+tex_math_dollars+pipe_tables \
   -t 乳胶 \
   -o- \
      md-表.md

\begin{longtable}[]{@{}ll@{}}
\toprule
\(x\)& \(F(x)\)\tabularnewline
\midrule
\结束头
\(0\)& \(\frac{2}{8}\)\tabularnewline
\(1\) & \(0\)\tabularnewline
\(2\) & \(\frac{1}{2}\)\tabularnewline
\(3\)& \(2\frac{1}{2}\)\tabularnewline
\(4\) & \(6\frac{3}{4}\)\tabularnewline
\(5\) & \(14\)\tabularnewline
\底部规则
\end{长表}

生成的 LaTeX 可以完美转换为 PDF,并且 PDF 的“直接”输出与原始 Markdown 兼容。甚至不需要指定 Pandoc 扩展 (+tex_math_dollars+pipe_tables)正如你所做的那样:

pandoc \
     md-表.md \
    -f 降价 \
    -o md-表.pdf \
    -V 几何:“边距=10pt,纸张宽度=80pt,纸张高度=120pt”

magick 转换 -密度 300 md-table.{pdf,jpg}

(我正在使用 ImageMagick 创建 JPEG,以便在下面的答案中可视化结果输出。)

在此处输入图片描述

相关内容