试图了解Pandoc如何从Markdown转换为Latex

时间:2018-10-15 06:57:19

标签: latex markdown pandoc

如果这是重复的话,我深表歉意。

我有一个Markdown文件test.md,其中包含两个乳胶数学模式部分:

  

第一个乳胶块(在.md文件中):

\begin{flalign}
P(1<X) &= \int_{1}^{\infty} f(x) dx \nonumber \\
&= \int_{1}^{4} 0 dx + \int_{4}^{\infty} e^{-(x-4)} dx \nonumber \\
\boldsymbol{P(1<X)} &= \boldsymbol{1} \nonumber
\end{flalign}
  

第二个乳胶块(在.md文件中):

\begin{flalign}
Expected \; Revenue &= 2.5 \cdot non-passenger \; vehicles + 1.0 \cdot passenger \; vehicles \nonumber \\
&= \$(2.5 \cdot (25 - E(X)) + 1.0 \cdot E(X)) \nonumber \\
&= \$(62.5 - 1.5(E(X))) \nonumber \\
&= \$(62.5 - 1.5 \cdot 15) \nonumber \\
\boldsymbol{Expected \; Revenue} &= \boldsymbol{\$40} \nonumber
\end{flalign}

当我运行以下命令时:

pandoc -f markdown -t latex test.md -s -o test.tex

我得到的输出为test.tex,上面的两个块被渲染为:

  

第一个乳胶块(在.tex文件中):

\textbackslash{}begin\{flalign\} P(1\textless{}X) \&=
\int\emph{\{1\}\^{}\{\infty\} f(x) dx \nonumber \textbackslash{} \&=
\int}\{1\}\^{}\{4\} 0 dx + \int\_\{4\}\^{}\{\infty\} e\^{}\{-(x-4)\} dx
\nonumber \textbackslash{} \boldsymbol{P(1<X)} \&= \boldsymbol{1}
\nonumber \textbackslash{}end\{flalign\}
  

第二个乳胶块(在.tex文件中):

\begin{flalign}
Expected \; Revenue &= 2.5 \cdot non-passenger \; vehicles + 1.0 \cdot passenger \; vehicles \nonumber \\
&= \$(2.5 \cdot (25 - E(X)) + 1.0 \cdot E(X)) \nonumber \\
&= \$(62.5 - 1.5(E(X))) \nonumber \\
&= \$(62.5 - 1.5 \cdot 15) \nonumber \\
\boldsymbol{Expected \; Revenue} &= \boldsymbol{\$40} \nonumber
\end{flalign}

我不确定这是怎么发生的。我正在使用:

操作系统:Windows 10

编辑器:Visual Studio Code 1.28.1

Pandoc版本:2.2.3.2

我也许是因为Windows中的行尾不同,所以我将行尾从CLRF更改为LF,反之亦然,但这并没有影响输出。

我想可以肯定地说转换的过程,因为这使我感到困惑。

我还上传了文件,以防出现字符编码问题。

1 个答案:

答案 0 :(得分:4)

Pandoc的LaTeX解析器不是100%完美的,因此对于像这样的复杂情况,您应在降价中使用generic-raw-attributes

```{=latex}
\begin{flalign}
Expected \; Revenue &= 2.5 \cdot non-passenger \; vehicles + 1.0 \cdot passenger \; vehicles \nonumber \\
&= \$(2.5 \cdot (25 - E(X)) + 1.0 \cdot E(X)) \nonumber \\
&= \$(62.5 - 1.5(E(X))) \nonumber \\
&= \$(62.5 - 1.5 \cdot 15) \nonumber \\
\boldsymbol{Expected \; Revenue} &= \boldsymbol{\$40} \nonumber
\end{flalign}
```