# @pie-framework/mathml-to-latex

> A JavaScript tool to convert mathml string to LaTeX string. This is a forked repo.

Latest version **1.4.4** (published 2024-06-24) · MIT license · 0 weekly downloads

## Install

```sh
npm install @pie-framework/mathml-to-latex
pnpm add @pie-framework/mathml-to-latex
yarn add @pie-framework/mathml-to-latex
bun add @pie-framework/mathml-to-latex
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.4.4 |
| Published | 2024-06-24 |
| First published | 2023-09-20 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 922.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Alexandre Nunes |
| Keywords | mathml, latex, convert, parser, mathml-to-latex |

## Links

- npm: https://www.npmjs.com/package/@pie-framework/mathml-to-latex
- Repository: https://github.com/pie-framework/mathml-to-latex
- Homepage: https://github.com/pie-framework/mathml-to-latex#readme
- Issues: https://github.com/pie-framework/mathml-to-latex/issues
- npm.io page: https://npm.io/package/@pie-framework/mathml-to-latex

## Dependencies (1)

- [@xmldom/xmldom](https://npm.io/package/@xmldom/xmldom.md) ^0.8.10

## Alternatives

- [babylon](https://npm.io/package/babylon.md) — 5.1M weekly downloads
- [csscolorparser](https://npm.io/package/csscolorparser.md) — 3.7M weekly downloads
- [expr-eval-fork](https://npm.io/package/expr-eval-fork.md) — 1.5M weekly downloads
- [@leeoniya/ufuzzy](https://npm.io/package/@leeoniya/ufuzzy.md) — 247.7K weekly downloads
- [xml-parser](https://npm.io/package/xml-parser.md) — 78.4K weekly downloads

## Recent versions

- 1.4.4 (latest) — 2024-06-24
- 1.4.3 — 2024-06-18
- 1.4.2 — 2024-06-18
- 1.4.1 — 2024-06-13
- 1.4.0 — 2024-02-16
- 1.3.5 — 2024-02-15
- 1.3.4 — 2024-01-03
- 1.3.3 — 2023-09-25
- 1.3.2 — 2023-09-20
- 1.3.1 — 2023-09-20

## README

# mathml-to-latex

It converts [MathML](https://en.wikipedia.org/wiki/MathML) to [LaTeX](https://pt.wikipedia.org/wiki/LaTeX).

## Installation

If you use NPM

```
npm install mathml-to-latex --save
```

If you use Yarn

```
yarn add mathml-to-latex
```

## Usage

```javascript
import { Mathml2latex } from 'mathml-to-latex';
// const { Mathml2latex } = require('mathml-to-latex');

const mathml = `
      <math>
        <mrow>
          <mn>a</mn>
          <mo>+</mo>
          <mn>b</mn>
        </mrow>
      </math>
      `;

Mathml2latex.convert(mathml);
// => a + b
```

```javascript
import { Mathml2latex } from 'mathml-to-latex';
// const { Mathml2latex } = require('mathml-to-latex');

const mathml = `
    <math>
        <mrow>
            <mi>A</mi>
            <mo>=</mo>
            <mfenced open = "[" close="]">
            <mtable>
                <mtr>
                <mtd><mi>x</mi></mtd>
                <mtd><mi>y</mi></mtd>
                </mtr>
                <mtr>
                <mtd><mi>z</mi></mtd>
                <mtd><mi>w</mi></mtd>
                </mtr>
            </mtable>
            </mfenced>
        </mrow>
    </math>
    `;

Mathml2latex.convert(mathml);
// => A = \begin{bmatrix} x & y \\ z & w \end{bmatrix}
```

## Browser

Package is also available directly in the browser through CDN:

```html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>MathML to LaTeX Converter</title>
    <!-- Including Tailwind CSS just for styling -->
    <link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.15/dist/tailwind.min.css" rel="stylesheet" />
    <!-- Including mathml-to-latex library -->
    <script src="https://cdn.jsdelivr.net/npm/mathml-to-latex@1.3.0/dist/bundle.min.js"></script>
  </head>
  <body class="bg-blue-50 h-screen flex flex-col items-center justify-center">
    <h1 class="text-2xl font-bold mb-4">MathML to LaTeX Converter</h1>
    <div class="w-3/4 flex flex-row gap-6">
      <div class="flex flex-col w-1/2">
        <textarea id="mathmlInput" class="p-4 w-full h-64 border rounded shadow-md"></textarea>
        <button
          id="convertButton"
          class="mt-4 px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600 focus:outline-none"
        >
          Convert to LaTeX
        </button>
      </div>
      <div class="w-1/2 bg-white p-4 border rounded shadow-md">
        <p id="latexOutput"></p>
      </div>
    </div>

    <script>
      const mathmlInput = document.getElementById('mathmlInput');
      const latexOutput = document.getElementById('latexOutput');
      const convertButton = document.getElementById('convertButton');

      mathmlInput.value = `\
<math>
    <mrow>
        <mn>2</mn>
        <mo>+</mo>
        <mn>2</mn>
        <mo>=</mo>
        <mn>4</mn>
    </mrow>
</math>`;

      convertButton.addEventListener('click', function () {
        const latex = MathMLToLaTeX.MathMLToLaTeX.convert(mathmlInput.value);
        latexOutput.textContent = latex;
      });
    </script>
  </body>
</html>
```

Will output:

![Browser DEMO](./docs/browser-demo.gif)

---
_Source: https://npm.io/package/@pie-framework/mathml-to-latex · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
