【问题标题】:How to use latex equation environment in Pandoc Markdown?如何在 Pandoc Markdown 中使用乳胶方程环境?
【发布时间】:2015-03-16 06:15:08
【问题描述】:

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

\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}
$$

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

【问题讨论】:

    标签: latex markdown mathjax pandoc


    【解决方案1】:

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

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

    ...然后像这样引用:

    @eq:description
    

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

    pandoc-eqnos 页面上提供了有关如何安装和应用过滤器的说明。

    【讨论】:

    • pandoc-crossref 过滤器使用相同的语法添加相同的功能。它还增加了交叉引用部分、表格、图形等的能力(例如,{tbl:label} ...然后引用如下:@tbl:label)。
    • pandoc-xnos 过滤器套件,pandoc-eqnos 所属,还交叉引用部分、表格、图形等。
    【解决方案2】:

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

    > 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>
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 2015-05-31
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多