核心功能
tex-render 是一个基于 Node.js 的 LaTeX 数学公式渲染工具,核心流程为 TeX → SVG → 位图/矢量图。它封装了 MathJax 的 TeX 转 SVG 能力与 @svg-fns/svg2img 的格式转换能力,支持输出 PNG、JPEG、WebP、AVIF 及 SVG 五种格式。
显著优点
1. 格式覆盖全面:从无损 PNG 到高压缩 AVIF,满足文档嵌入、网页展示、打印出版等不同场景需求
2. MathJax 生态成熟:背靠多年维护的数学排版引擎,对复杂符号(积分、矩阵、化学式等)支持完善
3. 灵活的控制参数:支持 --width 缩放、--zoom 全局放大、--inline 行内模式,便于精确控制输出尺寸
4. stdin 输入支持:解决 shell 引号转义难题,方便处理含撇号的导数表达式(如 y')
5. Data URL 输出:可选直接生成 Base64 数据 URI,便于即时嵌入富文本环境
潜在局限
- 仅限数学模式:不支持完整 LaTeX 文档(章节、图表、参考文献等),仅处理
$...$或$$...$$内的数学内容 - Node.js 依赖:需要本地运行环境,无法纯浏览器端使用
- 无实时预览:命令行工具性质,需手动执行后查看结果,交互流程较批量工具繁琐
- 字体嵌入限制:输出位图的字体渲染依赖本地 MathJax 配置,跨平台一致性不如纯 LaTeX 编译
适合人群
- AI Agent 开发者:需将 LaTeX 自动转为图片插入对话流
- 在线教育平台:动态生成题目公式图片
- 科研写作者:快速获取论文公式的 Web 友好格式
- 技术博主:在 Markdown/富文本编辑器中插入公式截图
常规风险
- 命令注入:若直接将用户输入拼接到 shell 命令,可能遭遇恶意 LaTeX 代码执行(如
\input{/etc/passwd}类攻击,尽管 MathJax 已限制部分危险宏) - 临时文件残留:默认输出至
~/.openclaw/media/tex-render/,长期运行需关注磁盘清理 - 依赖供应链:@svg-fns/svg2img 等依赖若被篡改,可能影响输出安全
使用建议
对 AI Agent 场景,严格遵循「文本→渲染→发图→继续文本」的交错输出流程,避免一次性堆积多条公式导致阅读顺序混乱。