【问题标题】:How do I convert markdown equations to pdf using pandoc如何使用 pandoc 将降价方程转换为 pdf
【发布时间】:2015-02-20 20:48:30
【问题描述】:

我有一个包含大量方程式(我认为是数学)的降价文档,可以使用 Marked 2 应用程序很好地呈现。当我尝试使用 pandoc 将其转换为 pdf 以创建参考书目时,出现错误。

例如,用

\\[ \mu_{s,h,d,y} = \left\{
  \begin{array}{1 1}
    \omega_{s,h,d,y} + \delta_{s}(t_{s,h,d-1,y} - \omega_{s,h,d-1,y}) & \quad  \text{for $t_{s,h,d-1,y}$ is real} \\
    \omega_{s,h,d,y} & \quad  \text{for $t_{s,h,d-1,y}$ is not real}
  \end{array} \right.
 \\]

看起来像

但是,当我运行时

pandoc -H format.sty -V fontsize=12pt --bibliography northeast_temperature_refs.bib --csl=american-geophysical-union.csl northeast_temperature_ms2.md -o northeast_temperature_ms.pdf --mathjax

有或没有--mathjax 我得到以下错误

! Missing $ inserted.
<inserted text> 
                $
l.268 \textbackslash{}{[} \mu

pandoc: Error producing PDF from TeX source

如果我尝试使用$$ 而不是\\[,例如:

$$
\mu_{s,h,d,y} = \left\{
  \begin{array}
    \omega_{s,h,d,y} + \delta_{s}(t_{s,h,d-1,y} - \omega_{s,h,d-1,y}) & \quad  \text{for $$t_{s,h,d-1,y}$$ is real} \\
    \omega_{s,h,d,y} & \quad  \text{for $$t_{s,h,d-1,y}$$ is not real}
  \end{array} \right.
 $$

我收到以下错误:

! LaTeX Error: Illegal character in array arg.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              

l.278   \begin{array}{1 1}

pandoc: Error producing PDF from TeX source

这是我第一次尝试在固定程序之外编写方程式,因此将不胜感激。当我对 Marked 进行快速检查时,我认为我做得很好,但显然它不像我拥有的​​那样与 pandoc 一起工作。

我在装有 Yosemite 的 Mac 上安装了 MacTex。

【问题讨论】:

    标签: pdf latex markdown pandoc


    【解决方案1】:

    Marked 在底层使用了与 Pandoc 不同的降价处理器 (MultiMarkdown),后者具有不同的公式语法(\\[ \\] 而不是 $$)。如果您想以单一格式编写 Marked 预览/HTML 和 pandoc PDF/任何其他输出,您可以将 Marked 的处理器更改为 Pandoc(方向here)。这样您就可以对所有内容使用$$ 语法。

    【讨论】:

    • 或者,您可以使用 MMD 方程扩展名 turned on: pandoc -f markdown+tex_math_double_backslash -t pdf 运行 pandoc
    • 太棒了,非常感谢!现在我觉得为 Marked 付费是完全值得的(不错的应用程序)。
    【解决方案2】:

    我认为 pandoc 没有涵盖数组命令,因为您的命令在 IPython 笔记本中对我不起作用。但是,用 cases 语句替换数组命令确实对我有用:

    \\[ \mu_{s,h,d,y} = \begin{cases}
        \omega_{s,h,d,y} + \delta_{s}(t_{s,h,d-1,y} - \omega_{s,h,d-1,y}) & \quad  \text{for $t_{s,h,d-1,y}$ is real} \\
        \omega_{s,h,d,y} & \quad  \text{for $t_{s,h,d-1,y}$ is not real}
      \end{cases}
     \\]
    

    【讨论】:

    • 这对我来说不太适用,在命令行使用普通 md 文件的 pandoc 转换,但如果我用 $$ 替换 \\[\\],那么一切都按预期工作.
    • 看起来 pandoc 不识别 \[ 而是使用 $$ 而 Marked 使用 \[ 并且不识别 $$。
    • 数组命令应该在 MathJax 和 LaTeX 中都可以工作,只要 Pandoc 或 Marked/MultiMarkdown 正确传递它。
    • 数组应该可用,如果不是,它取决于你的乳胶模板,而不是 pandoc。
    猜你喜欢
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    相关资源
    最近更新 更多