将 Markdown + 嵌入式 Latex 转换为 PDf 和 Doc

将 Markdown + 嵌入式 Latex 转换为 PDf 和 Doc

我想将 math.stackexchange 样式的纯文本 markdown 和嵌入的 latex 方程式转换为 PDF 和 Doc 格式。我尝试使用潘多克,但却不断得到不好的 PDF。

例如,如果我输入pandoc mmn11 -o mmn11.pdf,当我在文本编辑器中打开它时,我会得到一个看起来很像 html 的输出文件,而当我尝试使用 Ubuntu 中的文档查看器打开它时,我会收到一个错误,提示它不支持纯文本。

知道发生什么事了吗?

编辑:

Pandoc 会转换为 ODT,但似乎无法理解简单的 latex 标签,例如\frac。一些 latex 标签可以渲染,但其他的则不行。我快抓狂了。如果我将文本剪切并粘贴到 cs.stackexchange 中,所有内容都可以完美渲染。

答案1

我怀疑你使用的 pandoc 版本太旧了,不支持 pdf 输出。所以它默认使用 HTML 并使用你指定的文件名。升级。

至于数学:没有办法在 ODT 中获得良好的数学运算。Pandoc(最新版本)会在 docx 和 tex/pdf 中为您提供良好的数学运算。如果您使用--mathjax或 之类的选项,您还可以在 HTML 中获得良好的数学运算--mathml。对于其他格式,pandoc 将尽力使用 unicode 来伪造它,但是没有办法用这种方式进行分数运算,因此如果您使用 ,它将回退到使用原始 TeX \frac{..}

希望这能澄清事情。

答案2

pandoc 和 mathjax(在其他 stackexchnge 网站上使用)实际上与本网站的主题无关,但是pandoc 网站建议您在定位$分隔符时要小心:

数学

扩大:tex_math_dollars

两个$字符之间的任何内容都将被视为 TeX 数学。开头$必须紧靠其右侧有一个字符,而结尾$必须紧靠其左侧有一个字符。因此, $20,000 and $30,000不会解析为数学。如果出于某种原因您需要将文本括在文字$字符中,请用反斜杠转义它们,这样它们就不会被视为数学分隔符。

TeX 数学将以所有输出格式打印。其呈现方式取决于输出格式:

...

Docx:它将使用 OMML 数学标记来呈现。

相关内容