2 个版本

0.1.1 2023年5月28日
0.1.0 2023年5月28日

#809 in 图形API


用于 2 crates

Apache-2.0

5.5MB
50K SLoC

TypeScript 43K SLoC // 0.4% comments JavaScript 7K SLoC // 0.2% comments Bazel 320 SLoC Rust 225 SLoC // 0.0% comments Shell 12 SLoC

包含 (WOFF 字体, 41KB) MathJax_AMS-Regular.woff, (WOFF 字体, 35KB) MathJax_Main-Bold.woff, (WOFF 字体, 35KB) MathJax_Main-Regular.woff, (WOFF 字体, 23KB) MathJax_Fraktur-Bold.woff, (WOFF 字体, 22KB) MathJax_Fraktur-Regular.woff, (WOFF 字体, 21KB) MathJax_Main-Italic.woff 以及更多.

crates-io api-docs

将 MathJax 表达式渲染为 SVG 或 PNG 格式。

请参阅 文档 以获取更多信息。


lib.rs:

将 MathJax 表达式渲染为 SVG 或 PNG 格式。

包特性标志

  • node - 启用 NodeJs 后端,这将在运行时尝试使用系统安装的 NodeJs 作为渲染器。如果启用,将优先于其他任何特性。
  • browser - 启用 headless_chrome 后端,这将在渲染器中使用一个无头 Chrome 实例。如果与 node 特性标志同时启用,当 NodeJs 不可用时将用作后备。
  • auto - 这等同于启用所有后端(目前仅为 nodebrowser),请参阅 MathJax::new 了解这具体做了什么。
  • image - 允许通过 image::DynamicImage 将渲染的 SVG 转换为 Render::into_image

默认情况下,启用了 auto 包特性。

用法

  1. 通过 MathJax::new 创建 MathJax 的实例。
  2. 调用您要渲染的表达式 MathJax::render
  3. Render 上调用其中一个转换方法以获取所需输出格式。

例如,如果我们想将表达式 y=\frac{1}{x} 渲染到文件 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();

这会产生以下图像

如果我们启用了 image 功能标志,我们可以执行以下操作将它们转换为 image::DynamicImage 并将其保存到文件 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();

(有关 10.0 的含义,请参阅 Render::into_image)
产生

依赖关系

~15–27MB
~248K SLoC