dsh-mathmatic-symbol — 公式与数学图形 → 图片
一个 DeepSeek Harness 插件,给 agent 四个工具:把 LaTeX 排成图片、用声明式规格画数学图形、
把公式或 SVG 转成可直接放进文档的图片,以及把公式与图形都插好地生成一份文档。
产物一律是自带字形轮廓的 SVG(每个字形都是
| npm 包 | @jaxzhou/dsh-mathmatic-symbol |
|---|---|
| 版本 / 许可 | v0.1.2 · MIT |
| 源码 | github.com/jaxzhou/dsh-mathmatic-symbol |
| 环境要求 | Node.js ≥ 22.19;依赖 mathjax-full 与 @resvg/resvg-js |
$ dsh plugin --profile web add @jaxzhou/dsh-mathmatic-symbol
$ dsh --profile web
$ dsh --profile web
产出示例
下面是插件产出的静态示例 —— 不依赖字体,也不依赖任何外部工具。
math_figure 配合 examples/unit-circle.json 生成:单位圆、sin/cos 投影、角度弧与 LaTeX 标题,图里没有任何一处依赖已安装的字体。四个工具
| 工具 | 作用 |
|---|---|
math_formula | 把一段 LaTeX 排成图片;$…$、$$…$$、\[…\]、\(…\)、\begin{equation}…\end{equation} 会被自动剥掉 |
math_figure | 用声明式 JSON 规格画几何与函数图形:坐标轴与网格、圆/弧、线段与箭头、虚线投影、多边形、函数曲线、文字与 LaTeX 标题 |
math_convert | 把公式或已有 SVG 转成可直接嵌入的图片 |
math_document | 把公式与图形都插好地生成一份文档 |
每次调用都返回
embed.markdown_svg、embed.html_png、embed.latex_png,以及按需的 base64 data URI。为什么是图片,而不是文字
- 1不依赖字体每个字形都是轮廓路径;在浏览器、Word、
\includegraphics流程,以及没装数学字体的构建机上,渲染结果完全一致。 - 2栅格化结果确定PNG 由 resvg 生成并关闭系统字体加载 —— 每台机器得到同样的字节。
- 3内容寻址的文件名同样输入永远写同一个文件名,重复调用只覆盖不堆积。
- 4面向文档的返回值Markdown / HTML / LaTeX 嵌入片段随结果一起返回,直接可粘贴。
代价也是刻意取舍的:文字被转成轮廓,因此图片里的标签不可选中、不可搜索。
演示
14 秒真实会话录屏:模型在会话中调用插件生成公式与图形。
常见问题
为什么生成的图片里文字不能选中、不能搜索?
为了不依赖字体:MathJax 以 fontCache: 'none' 运行,每个字形都变成轮廓 font-family、<defs> 或 <use>,在任何机器与 Word / LaTeX 流程里渲染一致。代价就是文字变成图形。
需要安装 LaTeX 或数学字体吗?
都不需要。公式排版由 MathJax 完成,PNG 栅格化由 @resvg/resvg-js 完成并关闭系统字体加载,因此同样的输入在任何机器上得到同样的字节。
生成的文件写到哪里?会越积越多吗?
写入当前会话的工作区,文件名是内容寻址的:同样的输入永远写同一个文件名,重复调用只会覆盖,不会堆垃圾。返回值同时给出 Markdown / HTML / LaTeX 嵌入片段。
什么时候模型会自动用这个插件?
插件注册了一段提示词指引:当交付物是一张图片或一份文档文件,或用户明确要求时使用,并避免自己手写 SVG、LaTeX 渲染或绘图代码。装上后,生成公式图或几何图形是一次工具调用,而不是一次编程。
环境要求是什么?
Node.js ≥ 22.19;在 DeepSeek Harness 会话中安装插件后,模型即获得四个工具与提示词指引。