我想将 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 数学标记来呈现。