Crates.io | latex2mathml |
lib.rs | latex2mathml |
version | 0.2.3 |
source | src |
created_at | 2020-04-05 09:45:56.770094 |
updated_at | 2020-04-27 08:18:50.292651 |
description | Convert LaTeX equations to MathML |
homepage | |
repository | https://github.com/osanshouo/latex2mathml |
max_upload_size | |
id | 226538 |
size | 86,695 |
latex2mathml
provides a functionality to convert LaTeX math equations to MathML.
This crate is implemented in pure Rust, so it works in any environments if Rust works (including WebAssembly).
0
, 3.14
, ...x
, \alpha
, \pi
, \aleph
, ...\infty
, \dagger
, \angle
, \Box
, \partial
, ...=
, >
, <
, \ll
, :=
, ...+
. -
, *
, /
, \times
, \otimes
, ...\sqrt
, \frac
, \sin
, \binom
, ...\left\{ .. \middle| .. \right]
, ...\int_0^\infty
, \iint
, \oint
, ...\sum
, \prod
, \bigcup_{i = 0}^\infty
, ...\lim
, \overset{}{}
, \overbrace{}{}
, ...\mathrm
, \mathbf
, \bm
, \mathit
, \mathsf
, \mathscr
, \mathbb
, \mathfrak
, \texttt
.
\!
, \,
, \:
, \;
, \
, \quad
, \qquad
.\begin{matrix}
, \begin{pmatrix}
, \begin{bmatrix}
, \begin{vmatrix}
.\begin{align}
(experimental, see below).\slashed{\partial}
.See examples/equations.rs
for examples. Note that all supported commands are defined in src/token.rs
.
\\
, except for ones in a matrix or align environment.&
, except for ones in a matrix or align environment.<mmultiscripts>
).Align environment \begin{align} .. \end{align}
is experimentally supported from version 0.2.1,
as suggested in the issue #2.
Because it is implemented using matrix
environment, the output MathML is not recommended
and rendered equation may be not well-formatted.
Dollar sign \$
is allowed for the latex_to_mathml
function, but the replace
function does not allow it.
This is because the replace
function assumes all dollar signs appear as boundaries of LaTeX equations.
If a feature you need is lacked, feel free to open an issue.
For a single LaTeX equation:
use latex2mathml::{latex_to_mathml, DisplayStyle};
let latex = r#"\erf ( x ) = \frac{ 2 }{ \sqrt{ \pi } } \int_0^x e^{- t^2} \, dt"#;
let mathml = latex_to_mathml(latex, DisplayStyle::Block).unwrap();
println!("{}", mathml);
For a document that includes LaTeX equations:
let text = r#"
Let us consider a rigid sphere (i.e., one having a spherical
figure when tested in the stationary system) of radius $R$
which is at rest relative to the system ($K$), and whose centre
coincides with the origin of $K$ then the equation of the
surface of this sphere, which is moving with a velocity $v$
relative to $K$, is
$$\xi^2 + \eta^2 + \zeta^2 = R^2$$
"#;
let mathml = latex2mathml::replace(text).unwrap();
println!("{}", mathml);
To convert HTML files in a directory recursively, use latex2mathml::convert_html
.
This function is for converting HTMLs generated by cargo doc
.
See also examples/equations.rs
and examples/document.rs
.