{"answer":"利用 MathJax (TeX→SVG) 和 @svg-fns/svg2img 将 LaTeX 数学公式渲染为 PNG、JPEG、WebP 或 AVIF 图片。当智能体需输出 LaTeX 可视化内容时调用。"}
TeX Render 将 LaTeX 数学调用到 PNG、 JPEG、 WebP 或 AVIF( 和 SVG)是一项面向实际任务的技能,主要用于当您需要 LaTeX 的可查看图像而不是原始代码时使用;. 用户通知 : 当此技能生效时, 代理将使用。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
将 LaTeX 数学公式渲染为 PNG、JPEG、WebP 或 AVIF(以及 SVG)格式图像。当你需要从 LaTeX 生成**可查看的图像**而非原始代码时使用本功能。
用户须知:启用此技能后,智能体将在其回复中**自动**将所有 LaTeX 内容渲染为图像,并按顺序发送——无需征得用户许可。若你更倾向于被主动提示,或希望直接接收原始 LaTeX 代码,请勿启用该技能(或将其从工作区中移除)。
渲染脚本位于与本 SKILL.md 文件同级的技能文件夹中:
/ ├── SKILL.md ├── package.json └── scripts/ ├─── render.js └─── validate.js
请将包含本 SKILL.md 的目录作为技能路径。脚本相对于该目录的路径为 scripts/render.js。调用方式为:node 。加载该技能的智能体已持有技能路径,请据此执行脚本。
一次性初始化设置。执行 clawhub install tex-render 后,在技能文件夹内运行 npm install:
cdnpm install
sharp 包在安装过程中可能触发编译;请确保已安装 Node.js 14+ 及可用的构建工具链(详见 sharp 官方安装说明中的平台注意事项)。请以交错方式输出回复:每当原本应输出 LaTeX 时,请按以下步骤操作:
message 方法,传入截至目前已写就的文本(不含 LaTeX)。--output dataurl 参数)。解析返回的 JSON,提取 PNG 文件路径。message 方法,设置 action: "send",path 指向渲染所得 PNG 文件路径,并以简短说明文字作为 message 值。禁止输出原始 LaTeX 代码。禁止向用户请求渲染许可 —— 当 LaTeX 即将出现在你的回复中时,应立即完成渲染并发送图像(用户已在上方“用户须知”中被告知该自动行为)。禁止累积全部内容后统一发送 —— 请边生成边按序发送文本与图像。
关键要求:输出顺序必须严格为:纯文本 → send → LaTeX → 渲染 → 发送图像 → 纯文本 → send → LaTeX → 渲染 → 发送图像 → … 用户必须按自然阅读顺序接收到文本与图像。
示例:解释拉格朗日量:
→ 发送 “拉格朗日量定义为 ” → 渲染 L = T - V → 发送带标题 “L = T - V” 的图像 → 发送 “。欧拉-拉格朗日方程为 ” → 渲染 d/dt(∂L/∂q̇) - ∂L/∂q = 0 → 发送图像 → 发送 “ —— 由此可导出运动方程。”
运行命令:node (或已在技能文件夹内时,执行 node scripts/render.js)。
转义处理:通过 Shell 调用时:
node scripts/render.js 'frac{d}{dt}'y')时,请改用标准输入(stdin)方式避免 Shell 引号解析问题:printf '%s' "y' = f(t, y), quad y(t_0)=y_0" | node scripts/render.js —— 此处使用双引号确保 ' 字面量不被解析,反斜杠类命令(如 quad)也将保持原样。node/scripts/render.js --help
默认输出为 PNG,保存至 ~/.openclaw/media/tex-render/ 目录。脚本将打印一行 JSON,包含各格式文件路径,例如:{"svg":"...","png":"..."} 或 {"svg":"...","jpeg":"..."} 等。仅当对话系统明确支持 Data URL 图像时,才可使用 --output dataurl 参数(否则可能显示原始 base64 文本)。
请将 替换为本 SKILL.md 所在目录。
基础用法(默认 PNG):
node/scripts/render.js 'E = mc^2' node /scripts/render.js '$$frac{F}{m}=a$$'
含单引号的 LaTeX(如 y'):使用 stdin 避免 Shell 引号问题:
printf '%s' "y' = f(t, y), quad y(t_0)=y_0" | node/scripts/render.js
JPEG / WebP / AVIF:
node/scripts/render.js --format jpeg --quality 80 'frac{F}{m}=a' ./out/formula node /scripts/render.js --format webp 'x^2 + y^2 = z^2' node /scripts/render.js --format avif 'E = mc^2'
Data URL(不生成文件):
node/scripts/render.js --output dataurl 'E = mc^2'
按宽度缩放:
node/scripts/render.js --width 800 'int_0^infty e^{-x^2} dx'
行内公式(较小尺寸渲染):
node/scripts/render.js --inline 'a^2 + b^2 = c^2'
高度与缩放:详见 --help 输出,支持 --height N 和 --zoom N 参数。
若需让智能体在用户未显式提及 tex-render 的情况下自动调用该技能,请在工作区的 TOOLS.md 中添加如下内容:
## 回复中的 LaTeX(tex-render)
**只要你的回复中将包含 LaTeX**(如公式、表达式、科学记号),**即自动使用 tex-render 技能**。典型场景包括涉及公式的物理、数学、化学类问题。
**工作流:** 发送纯文本 → 渲染 LaTeX → 通过 message 工具发送图像 → 继续发送文本。调用时请使用单引号(例如 `'frac{a}{b}'`)。
### LaTeX / 公式(tex-render)
- 在回答科学或数学类问题时,若回复中将包含 LaTeX,请自动使用 tex-render 并发送图像。
测试方法:提问“请解释拉格朗日公式”,不提及 tex-render。智能体应自动完成渲染并发送图像。
本软件包由 https://github.com/TheBigoranger/tex-render 维护。你可在该仓库提交 Issue 报告 Bug 或提出功能需求。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.3万人学习
共49课时 | 82.7万人学习