| Crates.io | latex2mathml |
| lib.rs | latex2mathml |
| version | 0.2.3 |
| created_at | 2020-04-05 09:45:56.770094+00 |
| updated_at | 2020-04-27 08:18:50.292651+00 |
| 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.