How to use latex equation environment in Pandoc Markdown?

Stan picture Stan · Jul 30, 2014 · Viewed 20.4k times · Source

In Pandoc markdown, I can use '$$' to start a display math environment. However, these equations are not numbered in latex so I hope to use the equation environment instead, like this:

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

That's fine if I convert markdown to latex. But it does't work when I convert it to HTML with Mathjax because Pandoc treats these lines as raw_latex ignores them in HTML.

I tried to forbid the raw_latex extension

pandoc -f markdown-raw_latex ...

This time the two equations are displayed in the same line because the backslashes are escaped by Pandoc so the "\" doesn't produce a newline correctly.

Note that the following code works fine when converted to HTML but produces compilation error in latex.

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

Is there any way to handle this problem?

Answer

tjd picture tjd · Mar 15, 2015

Try the pandoc-eqnos filter. Labels may be attached to equations using attributes:

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

... and then referenced like this:

@eq:description

For tex/pdf output, LaTeX's native equation environment and \label and \ref macros are used; for all others the numbers are hard-coded.

Instructions are given on the pandoc-eqnos page for how to install and apply the filter.