如何在 Pandoc Markdown 中对乳胶方程进行编号? (例如,使用方程环境)

问题描述 投票:0回答:2

在 Pandoc markdown 中,我可以使用“$$”来启动显示数学环境。然而,这些方程在乳胶中没有编号,所以我希望改用方程环境,如下所示:

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

如果我将 markdown 转换为 Latex 就可以了。但当我用 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}
$$

有什么办法可以解决这个问题吗?

latex markdown mathjax pandoc
2个回答
20
投票

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

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

...然后像这样引用:

@eq:description

对于 tex/pdf 输出,使用 LaTeX 原生的

equation
环境以及
\label
\ref
宏;对于所有其他数字,这些数字都是硬编码的。

pandoc-eqnos 页面上给出了如何安装和应用过滤器的说明。


3
投票

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

> 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 输出也将数字放在左侧。您选择哪种妥协取决于您。

© www.soinside.com 2019 - 2024. All rights reserved.