0.0.5 • Published 5 months ago
@md2docx/math v0.0.5
@m2d/math
A plugin that transforms LaTeX-style math (inline and block) into DOCX-compatible equations using docx.
This package expects that the math nodes have already been extracted using
remark-mathplugin.
📦 Installation
npm install @m2d/mathpnpm add @m2d/mathyarn add @m2d/math🚀 Overview
The @m2d/math plugin for mdast2docx enables support for LaTeX math rendering in DOCX exports. It parses inline and block-level math expressions written in LaTeX syntax and converts them into proper Word-compatible Math elements using the docx library.
Supports superscripts, subscripts, fractions, radicals, summations, symbols, and more.
✨ Features
- Parses LaTeX-style math expressions
- Converts math to
docx.MathRun,docx.MathFraction,docx.MathRadical, etc. - Supports inline and block math (
$...$,$$...$$) - Supports standard math macros like
\frac,\sqrt,\sum,\alpha, and many others - Handles superscripts (
^) and subscripts (_) intelligently - Gracefully ignores unsupported macros like
\left,\right, etc.
🛠️ Usage
import { toDocx } from "@m2d/core";
import { mathPlugin } from "@m2d/math";
const plugins = [mathPlugin()];
const buffer = await toDocx(mdastTree, {
plugins,
});🧪 Example
Input Markdown (via MDAST)
This is inline math: $E = mc^2$
$$
\frac{a^2 + b^2}{c^2} = 1
$$Output DOCX
- Inline math (
$E = mc^2$) →E = mc²as a Word MathRun. - Block math renders as full equation paragraphs.
⚙️ Internals
- Uses
latex-mathto parse LaTeX math AST. - Converts LaTeX nodes to
docx.MathRun[]elements. - Supports common math macros with fallback to Unicode symbols via an internal symbol map.
- Integrates seamlessly with
@m2d/core.
🧩 Supported Macros
Includes (but not limited to):
\frac, \sqrt, \sum, \int, \alpha, \beta, \theta, \leq, \geq, \neq, \infty, \cdot⚠️ Limitations
- Does not support full LaTeX environments (
\begin{align}, etc.) - Complex expressions may need pre-processing
- Does not render styled math (
\textcolor, etc.)
⭐ Support Us
If you find this useful:
- ⭐ Star mdast2docx on GitHub
- ❤️ Consider sponsoring
🧾 License
MIT © Mayank Chaudhari