MathCore: LaTeX to MathML

LaTeX input:

Math font:

Pretty print:

Display style:

JSON config (click to open)

MathML source code:

<math display="block">
</math>

What is this?

This website allows you to convert LaTeX math into MathML (or, more specifically, MathML Core), which is then rendered by your browser. For example, try this input:

p\big(z;f(\theta)\big) =
\sum_{i=1}^K \gamma_i\,\mathcal{N}\big(z; f_i(\theta), \Sigma_i\big),
\quad\text{where }\sum_{i=1}^K \gamma_i = 1

Recent versions of all the major browsers support MathML Core, so you should be able to see the rendered math. For example: x2.

The conversion runs entirely in your browser, using WebAssembly and a tiny bit of JavaScript. Your LaTeX math is never sent to a server. The compiled WebAssembly is about 120kB (half that with gzip compression); less than many images on the web. However, this webpage also needs a patched version of the New Computer Modern Math font, to render primes correctly on Chromium-based browsers. The font file for that is 679kB, though this could be reduced with font subsetting.

Not all features of LaTeX math are supported. Some of them simply because they haven’t been implemented yet; others because they are very difficult to translate into MathML.

If you need multiline equations, you can use the environments \begin{aligned}, \begin{align}, or \begin{align*}. For example:

\begin{align}
      x &= 1 \\
  y + z &= 2
\end{align}