V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
weixind
0.49D
V2EX  ›  分享创造

[开源] RaTeX —— 用 Rust 原生解析、排版 LaTeX 公式,让 AI 应用快一点点。

  •  
  •   weixind ·
    erweixin · 3 月 20 日 · 692 次点击

    首先解释下:LaTeX 就是用来写数学公式的语法。

    例如:

    \frac{-b \pm \sqrt{b^2-4ac}}{2a}

    渲染出来就是:

    LaTeX 渲染在之前其实是一个比较小众的学术场景,AI 火起来才带动起来的,toC 场景比较成熟的解决方式是 web 的 KaTeX 和 mathJax ,mathJax 太慢了。KaTeX 借用了浏览器的渲染,布局交给了 html + css ,而 native 端的布局相对来说更棘手一点。

    所以现在需要渲染 LaTeX 公式的应用分成了几个流派:

    1. 服务端渲染,node 跑 Katex ,应用直接渲染图片。
    2. 使用 iOSMath 衍生出来的几个库 —— swiftMath 以及 迁移到 kt 的那个库(有些公式不支持,例如 \middle )。
    3. 端跑 webView 来展示公式。
    4. 自研类似的数学引擎 —— 豆包好像是的。

    看上去各自都有些问题。刚好自己有这方面的需求,所以搞一搞试试:用 纯 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

    2 条回复    2026-04-02 18:21:16 +08:00
    Cabana
        1
    Cabana  
       21 小时 41 分钟前
    赞👍,最近正在做相关的技术调研,在阮一峰的 weekly 的 GitHub issue 上搜到你的项目~ 还说想看看你有没有在 v2 宣传过,让你来宣传宣传呢。
    weixind
        2
    weixind  
    OP
       21 小时 24 分钟前
    @Cabana 感谢!

    这个方向太小众了。而且太杂了。不然也不会那么多年移动端只有 iosMath 以及相关衍生方案。其实 web 或者 server render 也能用。甚至很多 AI 应用压根不支持 Latex 渲染。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5244 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 07:46 · PVG 15:46 · LAX 00:46 · JFK 03:46
    ♥ Do have faith in what you're doing.