Skip to main content
Donate to the Python Software Foundation or Purchase a PyCharm License to Benefit the PSF! Donate Now

Pure Python library for LaTeX to MathML conversion.

Project description

|version|\ |license|\ |status|

latex2mathml
============

Pure Python library for LaTeX to MathML conversion.

Usage
-----

.. code:: python

import latex2mathml.converter

latex_input = "<your_latex_string>"
mathml_output = latex2mathml.converter.convert(latex_input)

Examples
--------

Identifiers, Numbers and Operators
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. raw:: html

<table>

::

<tr>
<th>LaTeX Input</th>
<th>MathML Output</th>
</tr>
<tr>
<td valign="top"><pre lang="latex">x</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <mi>x</mi> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>
<tr>
<td valign="top"><pre lang="latex">xyz</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <mi>x</mi> <mi>y</mi> <mi>z</mi> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>
<tr>
<td valign="top"><pre lang="latex">3</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <mn>3</mn> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>
<tr>
<td valign="top"><pre lang="latex">444</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <mn>444</mn> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>
<tr>
<td valign="top"><pre lang="latex">12.34</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <mn>12.34</mn> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>
<tr>
<td valign="top"><pre lang="latex">12x</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <mn>12</mn> <mi>x</mi> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>
<tr>
<td valign="top"><pre lang="latex">3-2</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <mn>3</mn> <mo>−</mo> <mn>2</mn> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>

.. raw:: html

</table>

Subscripts and Superscripts
~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. raw:: html

<table>

::

<tr>
<th>LaTeX Input</th>
<th>MathML Output</th>
</tr>
<tr>
<td valign="top"><pre lang="latex">a_b</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <msub> <mi>a</mi> <mi>b</mi> </msub> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>
<tr>
<td valign="top"><pre lang="latex">a^b</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <msup> <mi>a</mi> <mi>b</mi> </msup> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>
<tr>
<td valign="top"><pre lang="latex">a_b^c</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <msubsup> <mi>a</mi> <mi>b</mi> <mi>c</mi> </msubsup>
</mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>

.. raw:: html

</table>

Fractions
~~~~~~~~~

.. raw:: html

<table>

::

<tr>
<th>LaTeX Input</th>
<th>MathML Output</th>
</tr>
<tr>
<td valign="top"><pre lang="latex">\frac{1}{2}</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <mfrac> <mrow> <mn>1</mn> </mrow> <mrow> <mn>2</mn>
</mrow> </mfrac> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>

.. raw:: html

</table>

Roots
~~~~~

.. raw:: html

<table>

::

<tr>
<th>LaTeX Input</th>
<th>MathML Output</th>
</tr>
<tr>
<td valign="top"><pre lang="latex">\sqrt{2}</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <msqrt> <mrow> <mn>2</mn> </mrow> </msqrt> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>
<tr>
<td valign="top"><pre lang="latex">\sqrt[3]{2}</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <mroot> <mrow> <mn>2</mn> </mrow> <mrow> <mn>3</mn>
</mrow> </mroot> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>

.. raw:: html

</table>

Matrices
~~~~~~~~

.. raw:: html

<table>

::

<tr>
<th>LaTeX Input</th>
<th>MathML Output</th>
</tr>
<tr>
<td valign="top"><pre lang="latex">\begin{matrix}a & b \\ c & d \end{matrix}</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <mtable> <mtr> <mtd> <mi>a</mi> </mtd> <mtd> <mi>b</mi>
</mtd> </mtr> <mtr> <mtd> <mi>c</mi> </mtd> <mtd> <mi>d</mi> </mtd>
</mtr> </mtable> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>
<tr>
<td valign="top"><pre lang="latex">\begin{matrix*}[r]a & b \\ c & d \end{matrix*}</pre></td>
<td valign="top"><pre lang="html">

<math> <mrow> <mtable> <mtr> <mtd columnalign='right'> <mi>a</mi> </mtd>
<mtd columnalign='right'> <mi>b</mi> </mtd> </mtr> <mtr> <mtd
columnalign='right'> <mi>c</mi> </mtd> <mtd columnalign='right'>
<mi>d</mi> </mtd> </mtr> </mtable> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>
<tr>
<td valign="top"><pre lang="latex">

A\_{m,n} =

.. raw:: latex

\begin{bmatrix}
a_{1,1} & a_{1,2} & \cdots & a_{1,n} \\
a_{2,1} & a_{2,2} & \cdots & a_{2,n} \\
\vdots & \vdots & \ddots & \vdots \\
a_{m,1} & a_{m,2} & \cdots & a_{m,n}
\end{bmatrix}

.. raw:: html

</pre>

.. raw:: html

</td>

::

<td valign="top"><pre lang="html">

<math> <mrow> <msub> <mi>A</mi> <mrow> <mi>m</mi> <mi>,</mi> <mi>n</mi>
</mrow> </msub> <mo>=</mo> <mo>[</mo> <mtable> <mtr> <mtd> <msub>
<mi>a</mi> <mrow> <mn>1</mn> <mi>,</mi> <mn>1</mn> </mrow> </msub>
</mtd> <mtd> <msub> <mi>a</mi> <mrow> <mn>1</mn> <mi>,</mi> <mn>2</mn>
</mrow> </msub> </mtd> <mtd> <mo>⋯</mo> </mtd> <mtd> <msub> <mi>a</mi>
<mrow> <mn>1</mn> <mi>,</mi> <mi>n</mi> </mrow> </msub> </mtd> </mtr>
<mtr> <mtd> <msub> <mi>a</mi> <mrow> <mn>2</mn> <mi>,</mi> <mn>1</mn>
</mrow> </msub> </mtd> <mtd> <msub> <mi>a</mi> <mrow> <mn>2</mn>
<mi>,</mi> <mn>2</mn> </mrow> </msub> </mtd> <mtd> <mo>⋯</mo> </mtd>
<mtd> <msub> <mi>a</mi> <mrow> <mn>2</mn> <mi>,</mi> <mi>n</mi> </mrow>
</msub> </mtd> </mtr> <mtr> <mtd> <mo>⋮</mo> </mtd> <mtd> <mo>⋮</mo>
</mtd> <mtd> <mo>⋱</mo> </mtd> <mtd> <mo>⋮</mo> </mtd> </mtr> <mtr>
<mtd> <msub> <mi>a</mi> <mrow> <mi>m</mi> <mi>,</mi> <mn>1</mn> </mrow>
</msub> </mtd> <mtd> <msub> <mi>a</mi> <mrow> <mi>m</mi> <mi>,</mi>
<mn>2</mn> </mrow> </msub> </mtd> <mtd> <mo>⋯</mo> </mtd> <mtd> <msub>
<mi>a</mi> <mrow> <mi>m</mi> <mi>,</mi> <mi>n</mi> </mrow> </msub>
</mtd> </mtr> </mtable> <mo>]</mo> </mrow> </math>

.. raw:: html

</pre>

.. raw:: html

</td>

::

</tr>

.. raw:: html

</table>

References
~~~~~~~~~~

LaTeX
^^^^^

- https://en.wikibooks.org/wiki/LaTeX/Mathematics
- http://artofproblemsolving.com/wiki/index.php?title=Main\_Page
- http://milde.users.sourceforge.net/LUCR/Math/
- http://www.forkosh.com/mimetextutorial.html

MathML
^^^^^^

- http://www.xmlmind.com/tutorials/MathML/

Author
~~~~~~

- `Ronie Martinez <mailto:ronmarti18@gmail.com>`__

.. |version| image:: https://img.shields.io/pypi/v/latex2mathml.svg
.. |license| image:: https://img.shields.io/pypi/l/latex2mathml.svg
.. |status| image:: https://img.shields.io/pypi/status/latex2mathml.svg

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
latex2mathml-2.0.2.tar.gz (60.0 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page