核心用法
tex-render 是一款面向 AI Agent 的 LaTeX 公式图像化工具,基于 MathJax 将 TeX 转换为 SVG,再通过 @svg-fns/svg2img 输出为多种位图格式。使用时需定位到 skill 目录下的 scripts/render.js,通过 Node.js 调用,支持命令行参数控制输出格式、质量、尺寸等。
典型调用流程:
1. 普通公式:node scripts/render.js 'E = mc^2'(默认 PNG)
2. 含撇号公式:printf '%s' "y' = f(t,y)" | node scripts/render.js(stdin 规避 shell 转义问题)
3. 指定格式/质量:--format webp --quality 80
4. 响应式渲染:--width 800、--inline 行内模式、--zoom 缩放
Agent 集成工作流(关键特性):当回复包含 LaTeX 时,必须交错输出——先发纯文本 → 调用 render 生成图片 → 通过 message 工具发送图片 → 继续后续文本。禁止直接输出原始 LaTeX 代码,禁止批量延迟发送。
显著优点
- 多格式支持:PNG/JPEG/WebP/AVIF/SVG 全覆盖,满足不同场景压缩与质量需求
- MathJax 内核:业界标准 TeX→SVG 引擎,公式渲染精确,支持复杂数学符号
- Agent 原生设计:明确的工作流规范(文本-图像交错输出),TOOlS.md 自动触发机制
- 灵活参数:宽度、高度、缩放、行内模式、Data URL 输出等精细控制
- stdin 安全输入:解决 shell 特殊字符(尤其是单引号
')转义难题
潜在缺点与局限性
- 依赖 Node.js 环境:需预先执行
npm install,增加部署复杂度 - 无实时预览:命令行工具,需生成文件后查看,交互反馈较慢
- 图像体积敏感:高 DPI 或复杂公式可能导致 PNG 体积较大,需权衡格式(WebP/AVIF 更优)
- SVG 中间层限制:部分高级 TeX 宏包可能不被 MathJax 完整支持
- shell 转义门槛:虽有 stdin 方案,但用户/Agent 仍需理解引号转义规则
适合人群
- AI Agent 开发者:需要在对话系统中自动渲染数学公式的场景
- 教育/科研类应用:物理、数学、化学等学科问答系统
- 技术文档生成:自动化报告、论文草稿中的公式插图生成
- 多模态对话系统:要求文本与图像交错输出的富媒体交互
常规风险
- 命令注入风险:LaTeX 输入未充分过滤时,可能通过
\input、\write等宏执行文件操作(虽 MathJax 通常禁用这些,但自定义配置需谨慎) - 资源消耗:复杂公式或批量渲染时 CPU/内存占用较高,可能触发超时
- 路径遍历:输出路径参数若未校验,可能导致文件写入非预期目录
- 依赖供应链:@svg-fns/svg2img 等依赖的更新维护状态需关注