Expand description
Render MathJax expressions into either SVG or PNG formats.
§Crate Feature Flags
node- Enables the NodeJs backend, this will attempt to use a system installation of NodeJs at runtime as the renderer. This will be priotized over any other features if enabled.browser- Enables theheadless_chromebackend, this will create a headless Chrome instance to use as the renderer. If this is enabled in conjunction with thenodefeature flag, this will be used as a fall back when NodeJs is not available.auto- This is equivelent to enabling all backends (currently justnodeandbrowser) seeMathJax::newfor what this specifically does.image- Allows converting the rendered SVG into animage::DynamicImageviaRender::into_image.
By default, the auto crate feature is enabled.
§Usage
- Create an instance of
MathJaxthroughMathJax::new. - Call
MathJax::renderwith the expression you want to render. - Call one of the conversion methods on
Renderto get the desired output format.
For example, if we wanted to render the expression y=\frac{1}{x} into the file test.svg:
use mathjax::MathJax;
let expression = r#"y=\frac{1}{x}"#;
let renderer = MathJax::new().unwrap();
let result = renderer.render(expression).unwrap();
let svg_string = result.into_raw(); // This is a `<svg></svg>` element.
std::fs::write("test.svg", svg_string).unwrap();Which produces the following image:
If we had the image feature flag enabled, we could do the following to convert into an image::DynamicImage and save it into the file test.png:
use mathjax::MathJax;
let expression = r#"y=\frac{1}{x}"#;
let renderer = MathJax::new().unwrap();
let result = renderer.render(expression).unwrap();
let image = result.into_image(10.0).unwrap(); // This is an image::DynamicImage.
image.save("test.png").unwrap();(see Render::into_image for what 10.0 means here)
Producing:
Structs§
Enums§
- Init
Error - An error during the initialization of the renderer backend.
- Render
Error - An error during a render.