爱意满满的作品展示区。
TellHim

因为经常要把 LaTeX 公式放进 PPT,我做了一个纯浏览器端的 LaTeX 转图片工具

  •  
  •   TellHim · 10h 22m ago · 504 views

    前段时间做了一个比较小的工具,主要解决一个自己经常遇到的问题:怎么快速把 LaTeX 公式转换成图片。

    平时写 Markdown 或者论文的时候,LaTeX 公式当然很好用,但一旦要把公式放到 PPT 、图片、博客封面或者一些不支持 LaTeX 的编辑器里,就有点麻烦了。

    最常见的做法可能是:

    • 找一个在线 LaTeX 编辑器
    • 输入公式
    • 截图
    • 再裁剪
    • 如果背景或者清晰度不合适,再重新处理一次

    偶尔用一次没什么问题,但如果一天需要处理很多公式,这个流程还是挺重复的。

    所以之前就顺手做了一个 LaTeX 转图片的小工具。

    最开始其实只有一个功能

    第一版非常简单:

    输入 LaTeX → 渲染公式 → 导出 PNG

    后来自己用的过程中,又陆续加了一些功能,现在支持:

    • LaTeX 转 PNG
    • LaTeX 转 SVG
    • LaTeX 转 JPG / JPEG
    • 透明背景
    • 自定义公式颜色和背景
    • 调整图片缩放比例
    • 1x / 2x / 3x / 4x 高清导出
    • 直接复制 SVG
    • 复制图片
    • 复制 LaTeX
    • 通过 URL 保存当前公式

    最后整理成了这个网站:

    https://latextoimg.com/

    目前整个公式渲染过程主要是在浏览器里完成的,不需要先把公式提交到服务器再生成图片。

    做的时候发现,“LaTeX 转图片”其实没有想象中那么简单

    一开始我以为就是:

    LaTeX
      ↓
    MathJax
      ↓
    SVG
      ↓
    PNG
    

    但真正做起来还是碰到了一些小问题。

    1. SVG 很适合公式,但不是所有地方都方便使用

    MathJax 本身生成 SVG 很合适,公式放大之后也不会模糊。

    所以如果是做网页、论文插图或者后续还要编辑,SVG 基本是最好的格式。

    但实际使用时,很多场景还是更需要 PNG 。

    比如:

    • PowerPoint
    • Notion
    • 一些富文本编辑器
    • 社交媒体图片
    • 视频剪辑软件

    所以最后还是需要把 SVG 再正确地转换成位图。

    2. 普通 PNG 在 Retina 屏幕上很容易糊

    这个问题之前没有特别注意。

    同一个公式,在网页里看很清楚,但导出成 1x PNG 放进 PPT ,再稍微放大一点之后,就可能明显感觉到边缘发虚。

    所以后面加了 2x 、3x 、4x 导出。

    现在如果是 PPT 或者文章插图,我自己一般直接用 2x 或 3x 。

    如果不在乎文件大小,4x 基本就比较稳。

    3. 透明背景比我想象中实用

    最开始其实没准备专门做透明背景。

    但后来发现,如果公式要放进 PPT ,透明 PNG 反而是非常常见的需求。

    尤其是:

    E = mc^2
    

    这种公式直接导出透明背景,然后拖到 PPT 里,比截图方便很多。

    而且深色 PPT 、浅色 PPT 都能自己控制公式颜色。

    4. JPG 和透明背景其实是冲突的

    PNG 和 SVG 都可以支持透明背景,但 JPG 本身不支持透明。

    所以如果用户选择 JPG ,就必须考虑透明区域最后应该填什么背景色。

    这种细节单独看都很小,但在线工具真正做完整之后,会发现其实有不少这种边界情况。

    为什么没有直接做成完整 LaTeX 编译器

    目前这个工具的定位还是:

    LaTeX Formula → Image

    而不是:

    .tex Document → Image

    也就是说,更适合处理数学公式,而不是完整 LaTeX 文档。

    比如下面这种就是它比较擅长的:

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

    或者:

    \int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
    

    但如果是复杂的 TikZ 、完整 LaTeX package 、自定义宏环境,目前并不是主要目标。

    之前也考虑过直接在服务器跑完整 TeX Live ,但那样整个产品复杂度会高很多。

    而我自己真正高频使用的,其实就是:

    “我这里有一段公式,赶紧帮我变成一张能用的图片。”

    所以最后还是保持了现在这种比较轻量的方式。

    现在自己用得最多的是 SVG 和透明 PNG

    如果是网页,我通常直接用 SVG 。

    如果是 PPT ,则基本是:

    Transparent PNG + 2x / 3x
    

    这样基本不需要后续再处理。

    做完之后才发现,这类非常小的工具其实挺适合解决一些重复性的工作流问题。

    不一定需要很多复杂功能,只要能把原本:

    打开编辑器
    → 输入公式
    → 截图
    → 裁剪
    → 调整背景
    → 保存
    

    变成:

    输入公式
    → Download
    

    对我来说就已经够用了。

    目前还在考虑后面要不要继续加一些功能,例如:

    • 本地公式历史记录
    • 常用公式收藏
    • 更多预设尺寸
    • Markdown 公式直接粘贴
    • 批量 LaTeX 转图片
    • 更完整的 LaTeX 语法支持

    不知道 V2EX 上平时用 LaTeX 的人多不多。

    如果是你们的话,LaTeX 转图片这个场景里,最希望补的功能是什么?

    也欢迎帮忙看看目前还有哪些体验比较别扭的地方。

    5 replies    2026-09-19 15:44:56 +08:00
    NotNEO
        1
    NotNEO  
       10h 6m ago
    你这个网页 UI 配色和界面展示 都做的挺好的 方便问下 怎么设计的吗
    tomchen
        2
    tomchen  
       8h 26m ago   ❤️ 1
    新版 ms office 支持 svg ,旧版则支持 emf 格式,所以你可以支持下载
    PNG
    SVG
    JPG
    EMF
    BMP
    WEBP

    按钮乱七八糟地堆在那里没分个类

    话说 JPG 和 JPEG 是一种格式,你网站上居然并列都列出来了好像两种不同格式一样😂

    编辑器行号也没对齐

    公式颜色那栏赘余

    缩放不缩放预览的吗?

    话说你也是厉害,能找出 5 个工具集合站提交上去,虽然每个都超级野鸡😂

    ----

    @NotNEO 绿的,高概率是 Codex😂
    bao626
        3
    bao626  
       6h 53m ago
    👍
    TellHim
        4
    TellHim  
    OP
       6h 33m ago
    @NotNEO codex
    TellHim
        5
    TellHim  
    OP
       6h 32m ago
    @tomchen 感谢建议~,我研究优化下!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3015 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 14:17 · PVG 22:17 · LAX 07:17 · JFK 10:17
    ♥ Do have faith in what you're doing.