Rust · WASM · 原生

单一 Rust 排版核心,TeX 级别数学渲染

RaTeX 解析 LaTeX 数学,应用 TeX 排版规则,并输出扁平的显示列表,支持 CoreGraphics、Skia、Canvas 2D 或自定义向量后端——原生 FFI 与 WebAssembly 输出完全一致。

对齐性: RaTeX 致力于在关键方面与 KaTeX 保持一致:CI 针对参考图片运行大型基准测试集,在该语料库上的输出与 KaTeX 广泛可比。 支持表 以并排方式展示完整基准公式列表与 KaTeX 的对比。 适用场景: 对于普通网页中的数学公式,DOM 中的 KaTeX 仍是不错的默认选择。RaTeX 面向原生应用、服务器以及无 WebView 的嵌入场景——从移动端到 WASM 使用同一引擎。

立即体验

INPUT.TEX

OUTPUT

加载中…

随处集成

来自同一 Rust 核心的即用 SDK 与 WASM 构建:从 npm、Maven、pub.dev 或 SPM 安装,详见 快速上手。服务端 PNG 与 CLI 也在其中。

npm ratex-wasm / ratex-react-native · Maven io.github.erweixin:ratex-android · pub.dev ratex_flutter · iOS via SPM

何时选择 RaTeX

memory

Rust 核心

单一排版引擎,热路径无 GC:为移动 UI、服务器和 CI 光栅测试提供可预期的计时。

MEMORY_SAFE DISPLAY_LIST
devices

随处部署

为 Swift、Kotlin、Dart 等提供 C ABI,为 Web 提供 WASM;tiny-skia 或自定义光栅化器——显示列表完全一致。

WASM FFI
science

mhchem 化学支持

内置 \ce\pu ,通过 mhchem 兼容路径——反应箭头和物理单位与普通数学在同一流水线中。

MHCHEM LATEX_MATH

在浏览器中体验

基准测试套件图库

浏览 CI 使用的相同 LaTeX 行,以 RaTeX WASM 在页面上渲染: 数学, 化学, 物理. 与 KaTeX 并排对比,请打开 交互演示;完整基准测试套件在演示页面的 支持表 中。

为什么不用 WebView 方案?

在浏览器中,KaTeX 和 MathJax 通常以 JavaScript 操作 DOM 运行。对于通过 WebView 嵌入数学的应用外壳,这仍意味着打包浏览器栈。RaTeX 将排版和光栅化保留在 Rust 中,适用于希望避免此路径的宿主。

Web stack comparison: RaTeX versus KaTeX and MathJax
RaTeX KaTeX (web) MathJax
运行时 Pure Rust JavaScript + DOM JavaScript + DOM
移动端 Native / WASM WebView WebView
离线 Yes Depends Depends
JS 包体积(典型) 0 kB JS (core is WASM) ~280 kB ~500 kB
内存模型 Predictable GC / heap GC / heap

RaTeX 与原生数学 SDK 对比

没有 WebView 时,团队通常会使用 Swift、Objective-C 或 Flutter 库。以下是与常用开源渲染器的高层对比——swiftMath(Swift)、flutter_math_fork / flutter_math(Dart / Flutter)和 iosMath(iOS)——涵盖化学宏、可移植性和引擎架构。第三方 SDK 独立演进;集成时请对比版本。

RaTeX compared to swiftMath, flutter_math, and iosMath: mhchem support, cross-platform engine, and layout core performance characteristics
能力 RaTeX swiftMath flutter_math iosMath
mhchem \ce (chemistry) check_circle cancel cancel cancel
\pu / siunitx-style units check_circle cancel cancel cancel
相同引擎:原生 FFI + WASM(Web) check_circle cancel cancel cancel
单一 Rust 核心支持移动端 + 桌面 check_circle cancel cancel cancel
Rust TeX 排版核心(可预期热路径) check_circle cancel cancel cancel

*性能取决于工作负载。Swift 使用 ARC;Dart 使用追踪式 GC——对于"无浏览器"嵌入场景,两者都与 RaTeX 的 Rust 核心不同。

function

无需嵌入浏览器引擎,直接发布科学 UI