RaTeX 是一个用纯 Rust 实现的、与 KaTeX 兼容的 LaTeX 数学公式渲染引擎——不用 JavaScript、不用 WebView、不用 DOM。它把渲染做成一个可移植的 Rust 核心 + 显示列表(display list),同一份核心在 iOS、Android、Flutter、React Native、Web、服务端、SVG、PDF 等所有目标上原生渲染,且各平台输出像素一致。它宣称 KaTeX 数学语法覆盖 >99.5%,并支持化学式(mhchem 的 \ce/\pu)、物理单位与证明树(bussproofs)。通过 C ABI / WASM / 各平台原生模块对接,MIT 开源(仓库 LICENSE 为 MIT)、约 1,300 星。
来源:README 顶部简介/Why RaTeX/Platform targets、LICENSE(MIT)、GitHub meta(erweixin/RaTeX,Rust,homepage ratex.lites.dev) 查看 GitHub 仓库 →目前主流的跨平台数学渲染几乎都把 LaTeX 跑在浏览器/JS 引擎里——iOS/Android/Flutter/服务端要么内嵌一个吃 50–150MB 内存的 WebView,要么调无头 Chrome,有启动延迟、无离线保证。RaTeX 切的正是这个痛点:把 KaTeX 兼容的引擎编译成可移植 Rust 核心,让同一渲染器在所有平台原生运行、输出字节级一致,无 JS 运行时、内存可预测、可离线。这种「KaTeX 的能力 + 处处原生」的定位对移动端与服务端渲染数学/化学公式很有价值,因此受到关注(约 1,300 星,迭代活跃)。
来源:README Why RaTeX 对比表、GitHub meta(stars 1282、created_at 2026-03-10)无 JS/WebView/DOM,纯 Rust 实现,数学语法与 KaTeX 对齐(覆盖 >99.5%):分数、根号、积分、矩阵、环境、可伸缩定界符等;少量 DOM/trust 相关扩展(如 \includegraphics、\htmlClass)有差异并在文档列明。
来源:README 顶部/What it renders/KaTeX differences同一 Rust 核心 + 显示列表,在 iOS(XCFramework/CoreGraphics)、Android(JNI/Canvas/AAR)、Flutter(Dart FFI/CustomPainter)、React Native、Web(WASM/Canvas,
服务端/CI 用 ratex-render 经 tiny-skia 光栅成 PNG(单二进制、无 JS 运行时);ratex-svg 输出自包含矢量 SVG;ratex-pdf 输出内嵌 KaTeX 字体的矢量 PDF;Web 走 Canvas 2D。
来源:README Platform targets(Server/SVG/PDF)支持 mhchem 的 \ce(化学反应/离子)与 \pu(按 IUPAC 的数值+单位)、物理单位表达,以及 bussproofs 风格的 prooftree 证明树(\AxiomC、各元推理命令、标签与连线控制等,少数命令尚未实现)。
来源:README What it renders(Chemistry/Physics/Proof trees)RaTeX 是一个 Rust 工作区(crates/),核心是「解析 LaTeX → 生成与平台无关的显示列表(display list)→ 各后端把显示列表绘制成具体输出」的设计,从而做到一核多端、像素一致。crates 提供核心引擎与各输出后端(如 ratex-render→tiny-skia PNG、ratex-svg→SVG、ratex-pdf→PDF);platforms/ 下是各平台胶水(iOS XCFramework、Android JNI/AAR、Flutter Dart FFI、RN 原生模块、Web WASM/Web Component),通过 C ABI 或 WASM 暴露核心。fonts/ 内嵌 KaTeX 字体保证度量一致,tests/ 用对照 PNG 做 golden 校验(含与 KaTeX/MathJax 的支持表对比)。仓库还含 demo/、website/、docs/、tools/、skills/ 等。整体把「数学排版逻辑」与「平台绘制」彻底解耦,是其跨平台一致性的关键。
来源:README Why RaTeX/Platform targets/What it renders、仓库目录树(crates/platforms/fonts/tests/demo/website)中心为项目本体,内环 = 核心功能模块,外环 = 关键技术依赖;按 deep.json 中的 core_features 与 tech_stack.key_deps 自动生成
tiny-skia(服务端 PNG 光栅)WASM(Web)、C ABI/FFI(iOS/Android/Flut…内嵌 KaTeX 字体(度量一致)mhchem / bussproofs 兼容(化学/证明树)适合需要在非 Web 平台或服务端渲染数学公式、又想避免内嵌 WebView/无头 Chrome 的开发者:iOS/Android/Flutter/RN 移动 App 原生显示公式、教育/科研/笔记类应用离线渲染、服务端把公式批量生成 PNG/SVG/PDF(如自动出题、文档导出、CI 截图对比),以及需要「多端输出像素一致」的场景。也适合要渲染化学式、物理单位或逻辑证明树的专业应用。Web-only 项目则仍可直接用成熟的 KaTeX。
来源:README Why RaTeX/Platform targets/What it renders项目以 Rust 工作区持续迭代,多平台目标多为「开箱即用」,Compose Multiplatform 经社区 RaTeX-CMP 支持。提供 Live Demo、support-table 与 Web benchmark 对比 KaTeX。功能覆盖数学(>99.5% KaTeX)、mhchem 化学、物理单位、bussproofs 证明树与 PNG/SVG/PDF/Canvas 多后端。MIT 开源。仓库最近一次更新在 2026-05-18。
来源:README Platform targets/Demo、GitHub meta pushed_at 2026-05-18、created_at 2026-03-10RaTeX 解决了一个长期存在却少有人正面攻克的问题:在浏览器之外(iOS/Android/Flutter/服务端)渲染 KaTeX 级别的数学公式,而不必拖一个 WebView 或无头 Chrome。它用纯 Rust 核心 + 显示列表做到一核多端、输出像素一致,无 JS 运行时、可离线、内存可预测,还覆盖化学式、物理单位与证明树,工程严谨、对差异坦诚。对要在移动端或服务端渲染公式的开发者,它几乎是目前最对路的选择;纯 Web 项目则仍可用 KaTeX。要留意少量命令级差异、DOM/trust 扩展不等价,以及项目尚新。作为「处处原生、像素一致」的 LaTeX 数学引擎,它的定位与完成度都很有说服力。
来源:综合 README、Why RaTeX、平台与差异及 GitHub meta 的事实判断