尝试理解Pandoc如何将Markdown转换为Latex

4

如果这是重复的话,我很抱歉。

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

第一个LaTeX块(在.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}

第二个latex块(在.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,其中上述两个块被渲染为:

第一个latex块(在 .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\}

第二个latex块(在.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,然后再次更改,但此举对输出没有影响。
我希望能够肯定地说明转换过程,因为这对我来说很困惑。
如果出现字符编码问题,我也已经上传了文件。

进一步调查发现,\int_{1}^{\infty} 似乎是引起问题的部分。如果我删除 \int,就不会出现任何问题。但我不知道为什么。 - Akshay Gaur
另外,如果我不仅使用 int 并删除 _{1}^{\infty},它就可以工作。由于某种原因,我无法使积分的极限起作用。 - Akshay Gaur
此外,使用 align* 而不是 flalign 也可以。 - Akshay Gaur
所以,我想现在的问题是如何将带极限的积分左对齐? - Akshay Gaur
1个回答

7

Pandoc的LaTeX解析器并不完美,所以对于这样复杂的情况,你应该在你的Markdown中使用通用原始属性

```{=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}
```

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接