LaTeXSnipper:一款开源免费的公式识别与数学编辑工作空间


项目概述

LaTeXSnipper 是由开发者 SakuraMathcraft 创建的一个跨平台桌面数学工作空间。它不再只是一个"截图公式转 LaTeX"工具,而是覆盖端到端数学内容工作流:

  • 📸 从截图或 PDF 中识别数学公式
  • ✍️ 在专用手写画布中书写并自动转换为 LaTeX
  • 🧮 在集成数学工作台中编辑、计算和回写
  • 🔄 支持 30+ 种导出格式(LaTeX、Markdown、MathML、HTML、Word、Typst 等)

项目亮点

特性说明
公式识别基于 MathCraft OCR,支持公式、文字及混合内容识别
手写识别专用手写窗口,支持自动识别与实时预览
数学工作台独立工作空间,集成公式编辑与计算
公式编辑内置 MathLive math-field 及虚拟数学键盘
多格式导出30 种导出选项,覆盖 LaTeX/Markdown/MathML/HTML/OMML/SVG/Typst/Word/EPUB/RTF 等
符号计算基于 Compute Engine,支持化简、求值、展开、因式分解、求解
离线优先识别与高级求解可本地运行,保护隐私
主题支持亮色/暗色自动适配

安装教程

Windows(推荐)

方式一:Inno 安装包(推荐新手)

  1. 前往 GitHub Releases 页面。
  2. 下载 LaTeXSnipperSetup-2.4.0.exe
  3. 运行安装程序,按提示完成安装。
  4. 桌面上生成快捷方式,双端启动。

方式二:Microsoft Store / MSIX

  • 在 Microsoft Store 中搜索 LaTeXSnipper 进行安装。
  • 或从 Release 页面下载 MSIX 包手动安装。

Linux

一键安装命令

1
2
3
4
5
6
7
8
git clone https://github.com/SakuraMathcraft/LaTeXSnipper.git
cd LaTeXSnipper

python3 -m venv .venv
source .venv/bin/activate

pip install -r requirements-linux.txt
python src/main.py

打包为 Debian/Ubuntu 安装包

1
2
3
4
5
# 构建 .deb 包
bash scripts/build_deb.sh

# 安装
sudo dpkg -i latexsnipper_*.deb

💡 Linux 平台依赖 grimmaimgnome-screenshot 等截图工具来提升截图回退行为,这些工具需通过发行版包管理器自行安装,LaTeXSnipper 的依赖向导仅管理 Python 依赖层。

macOS

1
2
3
4
5
6
7
8
git clone https://github.com/SakuraMathcraft/LaTeXSnipper.git
cd LaTeXSnipper

python3 -m venv .venv
source .venv/bin/activate

pip install -r requirements-macos.txt
python src/main.py

macOS 打包产物为 .app.zip.dmg,可从 Releases 页面下载。

更新 LaTeXSnipper

  • Windows:下载新版安装包重新运行即可。
  • GitHub Actions:Tag 发布时会自动构建各平台包,关注 Releases 页面获取最新版本。

快速开始

截图识别

  1. 启动 LaTeXSnipper。
  2. 点击截图按钮或使用快捷键捕获屏幕上的数学公式。
  3. MathCraft OCR 自动识别公式并生成 LaTeX 代码。
  4. 在右侧工作台中编辑、调整公式。
  5. 点击"复制"或"插入"将 LaTeX 放回原文档。

手写识别

  1. 打开手写窗口。
  2. 使用鼠标或触控笔书写数学表达式。
  3. 系统实时识别并预览 LaTeX 结果。
  4. 确认后发送到主编辑器。

数学计算

在工作台中可直接对公式进行符号运算:

  • 化简(Simplify)
  • 数值求值(Evaluate)
  • 展开(Expand)
  • 因式分解(Factor)
  • 求解方程(Solve)

对于更复杂的表达式,系统会自动回退到本地 SymPy/mpmath 引擎。


核心功能详解

多格式导出

LaTeXSnipper 支持 30 种导出格式:

类别格式
文档标记LaTeX, Markdown, HTML, reStructuredText, Typst, Org-mode
数学格式MathML, OMML, LaTeX, AsciiMath
矢量图形SVG
办公文档Word (DOCX), RTF, ODT
电子书EPUB
维基Wiki 格式
数据JSON, CSV

离线优先

  • 公式识别与高级求解均在本地运行,无需网络连接
  • MathCraft OCR 模型通过 ONNX Runtime 推理,不依赖 PyTorch 运行时
  • 所有数据保留在本地,保护学术与隐私敏感内容

项目结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
LaTeXSnipper/
├── mathcraft_ocr/ # MathCraft OCR 独立运行时与 CLI
├── src/
│ ├── main.py # 主桌面应用入口
│ ├── distribution.py # GitHub / Microsoft Store 渠道策略
│ ├── backend/ # OCR 封装、CUDA 诊断、截图、平台服务
│ ├── bootstrap/ # 依赖向导与运行时验证
│ ├── core/ # 文档组合、导出契约、重启契约
│ ├── editor/ # 数学工作台与公式编辑 UI
│ ├── handwriting/ # 手写画布、PDF 预览、文档工具
│ └── ...
├── requirements-linux.txt
├── requirements-macos.txt
├── LaTeXSnipper.spec # PyInstaller 打包配置
├── Inno/ # Windows Inno 安装脚本
├── packaging/debian/ # Debian 打包配置
└── scripts/
├── build_deb.sh # Linux .deb 构建脚本
├── build_macos.sh # macOS 打包脚本
└── build_store_msix.ps1 # MSIX 打包脚本

技术栈

  • 语言: Python 3.10+
  • UI 框架: PyQt6 + Q Fluent Widgets
  • OCR: MathCraft OCR(ONNX Runtime 推理)
  • 公式编辑: MathLive math-field
  • 符号计算: MathLive Compute Engine / SymPy / mpmath
  • 构建: PyInstaller + Inno Setup (Windows) / PyInstaller + DMG (.macOS) / Debian (.Linux)
  • 许可证: MIT License

适用场景

  • 📝 学术写作:快速将论文中的手写公式或截图公式转为 LaTeX
  • 📚 教学课件:从 PDF 或幻灯片中提取数学公式并复用
  • 💻 Office 集成:通过 Word/PowerPoint 插件在文档中直接插入识别公式
  • 🔬 科研工作:将文献中的公式离线转换为可编辑的 LaTeX 代码
  • ✍️ 手写输入:使用笔输入数学表达式,实时预览 LaTeX

项目统计


总结

LaTeXSnipper 是一个功能完整、离线优先的数学公式识别与编辑工作空间。它覆盖了从截图识别、手写输入到公式计算和多格式导出的完整工作流,特别适合需要频繁处理数学公式的学术工作者和科研人员。Windows 用户可以通过 Inno 安装包一键安装,Linux 和 macOS 用户也可以通过源码快速运行。作为一个开源免费无广告的项目,其持续维护和社区活跃度值得肯定。

项目地址: https://github.com/SakuraMathcraft/LaTeXSnipper


文章作者: ZeroXin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZeroXin !
评论
  目录