如何在Pandoc Markdown中使用乳胶方程式环境?

时间:2014-07-30 17:10:09

标签: latex markdown mathjax pandoc

在Pandoc markdown中,我可以使用' $$'开始显示数学环境。但是,这些方程式没有用乳胶编号,所以我希望使用方程式环境,如下所示:

\begin{equation}
x+1 = 2 \\
y+2 = 3 
\end{equation}

如果我将降价改为乳胶,那很好。但是当我使用Mathjax将其转换为HTML时,它确实起作用,因为Pandoc将这些行视为raw_latex在HTML中忽略它们。

我试图禁止raw_latex扩展

pandoc -f markdown-raw_latex ...

这次两个方程显示在同一行,因为反斜杠是由Pandoc转义的,所以" \"没有正确生成换行符。

请注意,以下代码在转换为HTML时可以正常工作,但在latex中会产生编译错误。

$$    
\begin{equation}
    x+1 = 2 \\
    y+2 = 3 
\end{equation}
$$

有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:13)

尝试pandoc-eqnos过滤器。标签可以使用属性附加到方程式:

 $$ y = mx +b $$ {#eq:description}

...然后像这样引用:

@eq:description

对于tex / pdf输出,使用LaTeX的原生equation环境以及\label\ref宏;对于所有其他人来说,数字是硬编码的。

有关如何安装和应用过滤器的说明,请参阅pandoc-eqnos页面。

答案 1 :(得分:1)

对于正确的等式编号没有良好的原生支持,但有一种解决方法。

> pandoc -s -o math.html --mathjax 
(@) $$y=5$$

A paragraph here explaining 

(@) $$y=6$$

输出

<body>
<ol style="list-style-type: example">
<li><span class="math">\[y=5\]</span></li>
</ol>
<p>A paragraph here explaining</p>
<ol start="2" style="list-style-type: example">
<li><span class="math">\[y=6\]</span></li>
</ol>
</body>

Numbering example

显然输出可以用css设计以适应。另一方面,此方法的tex输出也将数字放在左侧。您选择哪种妥协取决于您。