[开源] RaTeX —— 用 Rust 原生解析、排版 LaTeX 公式,让 AI 应用快一点点。
首先解释下:LaTeX 就是用来写数学公式的语法。
例如:
\frac{-b \pm \sqrt{b^2-4ac}}{2a}
渲染出来就是:

LaTeX 渲染在之前其实是一个比较小众的学术场景,AI 火起来才带动起来的,toC 场景比较成熟的解决方式是 web 的 KaTeX 和 mathJax ,mathJax 太慢了。KaTeX 借用了浏览器的渲染,布局交给了 html + css ,而 native 端的布局相对来说更棘手一点。
所以现在需要渲染 LaTeX 公式的应用分成了几个流派:
- 服务端渲染,node 跑 Katex ,应用直接渲染图片。
- 使用 iOSMath 衍生出来的几个库 —— swiftMath 以及 迁移到 kt 的那个库(有些公式不支持,例如 \middle )。
- 端跑 webView 来展示公式。
- 自研类似的数学引擎 —— 豆包好像是的。
看上去各自都有些问题。刚好自己有这方面的需求,所以搞一搞试试:用 纯 Rust 做数学公式解析与排版,输出统一的 DisplayList (可序列化的绘制指令),再交给各端原生画出来。
搞了一段时间看着效果也还行。所以开源出来,加上最近也搞完各端的胶水层(解析和布局都放到 rust 层了。所以胶水层会非常轻),小小推广下。
架构相对比较简单:

跑了下各端的 demo ( iOS 原生、Flutter 、RN 、android 原生):

后续会做的:一些布局 bug ,以及后续的 \pu 和 \ce ,物理和化学公式支持。
如果你也在做 AI 、教育、笔记、科研类 App 有 TeX 渲染的需求,或者单纯对 Rust + TeX 排版 + 跨端渲染感兴趣,欢迎 star 、试用、提 issue 。
顺便感谢一下知乎提供过的 KaTeX 的服务端渲染,解过我的燃眉之急。
仓库地址: https://github.com/erweixin/RaTeX
Demo: https://erweixin.github.io/RaTeX/demo/index.html
support table: https://erweixin.github.io/RaTeX/demo/support_table.html