Transform asciimath to LaTeX
npm install asciimath-parserA parser that transforms asciimath to LaTeX.

A js implementation of simple mathematical formula markup language. Easier to learn and easier to use than LaTeX.
- Without tedious backslashes of LaTeX, it is readable.
- Even if the formula has syntax errors, only a single formula is affected, but the entire page is not affected.
- Asciimath precedence is complicated, but you can just add parentheses when in doubt.
#### Install
``sh`
ni -D asciimath-parser
If you want to render the formula in HTML document, you should also install katex.
#### Use
`ts`
import { AsciiMath } from 'asciimath-parser'
const am = new AsciiMath()
console.log(am.toTex('sum _(n=1) ^(+oo) 1/(n^2) = (pi^2)/6'))
// \displaystyle{ \sum_{ n = 1 }^{ + \infty }\frac{ 1 }{ n ^{ 2 } }=\frac{ \pi ^{ 2 } }{ 6 } }
#### Configuration
`ts`
import { AsciiMath } from 'asciimath-parser'
import type { AsciiMathConfig } from 'asciimath-parser'
const cfg: AsciiMathConfig = {
/**
* @default true
* enable displayMode in KaTeX
*/
display: true,
/**
* Extend tokens of asciimath
* tsd0
* {
* // Simply transform to d theta$1
* 'd0': { type: TokenTypes.Const, tex: '{\\text{d}\\theta}' },
* // Token with unary symbol, the will be replaced with the following symbol$1
* 'tsc': { type: TokenTypes.OperatorOA, tex: '\\textsc{$1}' },
* // Token with binary symbols, the and $2 will be replaced with the following two symbols$1
* 'frac': { type: TokenTypes.OperatorOAB, tex: '\\frac{ $1 }{ $2 }' },
* // Infix expression, the and $2 will be replaced with the previous symbol and next symbol respectively`
* 'over': { type: TokenTypes.OperatorAOB, tex: '{ $1 \\over $2 }' },
* }
* enum TokenTypes
*
You can extend the token types mentioned above, but it is not recommended* to extend all types of .`
*/
symbols: {},
/**
* Replace target expressions before tokenizing
* ts`
* [
* [/(x?[0-9a-fA-F]+);/g, (match, $1) =>
* String.fromCodePoint($1[0] === 'x' ? '0' + $1 : $1)
* ],
* ...
* ]
* ``
*/
replaceBeforeTokenizing: []
}
const am = new AsciiMath(cfg)