前言¶
在 DSH 里看模型回答时,数学公式通常由 KaTeX 渲染:页面上能看清、也能选中,但用 Ctrl+C 复制后,剪贴板里往往是 𝑒^𝑖𝜋+1=0 这类 Unicode 字形。粘进 Obsidian 或 LaTeX 编辑器,只会得到一行怪符号,而不是可再次编译、渲染的源码。
常见做法是手动对照屏幕改公式,或依赖消息自带的 markdown 复制(若界面提供且内容仍带 $$)。dsh-math-copy 是 SOH4C4759 维护的 DSH 客户端插件:从 KaTeX 输出的 MathML annotation 读取 TeX 原文,在悬停或整段复制时按目标格式写入剪贴板。下面介绍它的定位、用法与安装方式。
这是什么¶
- 名称:dsh-math-copy(仓库 SOH4C4759/dsh-math-copy)
- 分类:客户端(
dsh.client.platform为web) - 维护者:SOH4C4759(package.json 中 author 为 lxj5820)
- 许可:MIT
- 版本(package.json):0.1.1
Host 侧 entry.js 为空实现:复制公式完全在浏览器页面完成,不依赖额外路由、进程或设置项。
核心功能¶
悬停复制¶
鼠标悬停任意已渲染公式时,会出现一条浮层,提供三种复制目标:
- Obsidian:行内
$…$,独立公式$$…$$ - LaTeX:行内
\(...\),独立公式\[...\] - TeX:仅源码,不带定界符(一次性操作,不会改写后续默认格式)
选中文本后 Ctrl+C¶
选中一段包含公式的文本再复制时,剪贴板中是整段文字,其中每个公式被替换为源码;格式遵循你上次点击的 Obsidian 或 LaTeX 目标。整段可直接粘进 Obsidian 渲染。
若选区里没有公式,插件不拦截复制,行为与未安装时一致。
源码为何可信¶
插件只读取 KaTeX 在 MathML 里附带的 <annotation encoding="application/x-tex">,不从字形反推:
- 拿不到 annotation 的节点(渲染失败、被裁掉)不会出现悬停条,选区路径也会跳过;
- 多行环境(如
\begin{aligned}…\end{aligned})按原文保留; - 不修改对话 DOM,仅追加浮条与提示;卸载时移除。
上次使用的 Obsidian / LaTeX 目标保存在 localStorage['dsh.math-copy.format'],默认 obsidian。点 TeX 不会写入该记录,避免「整段还原」误变成裸源码。
演示录像(约 24 秒):把 DSH 里的公式复制成能重新渲染的 TeX
安装与启用¶
在 README 中给出的安装方式为本地 link(路径换成你本机仓库的绝对路径):
dsh plugin --profile desktop add link:<本仓库绝对路径>
也可在 DSH 插件目录页安装同一路径:skillhub.cn/plugins/SOH4C4759/dsh-math-copy
装好后 profile 中应出现类似配置:
- insert:
- id: math-copy
name: dsh-math-copy
装完即可使用。若你修改了 lib/client.js,需要刷新页面(浏览器 bundle 在页面启动时 import);仅改 Host 侧才需要重启 DSH。
典型用法¶
- 打开带公式的 DSH 回答,将鼠标移到公式上,在浮条里选 Obsidian 或 LaTeX,再粘贴到笔记或
.tex文件。 - 需要纯 TeX 片段(自定定界符)时,点 TeX,只复制一次源码。
- 复制一整段含行内、块级公式的说明:先点一次目标格式(Obsidian / LaTeX),再选中段落 Ctrl+C,粘贴到 Obsidian。
页面自带的「复制消息」若走 navigator.clipboard.writeText,不经过 copy 事件,插件不会改写;该类按钮通常复制原始 markdown,本身已带 $$,一般无需转换。
适用场景与注意¶
适合:经常在 DSH 里读推导、再把公式迁到 Obsidian 或 LaTeX 工作流的用户。
依赖与边界(来自 README「已知边界」):
- 依赖 KaTeX 的
.katex/.katex-display类名,不依赖 DSH 的 CSS Modules 哈希类名。 - 选区还原仅在
copy事件上生效。 - 行内公式按
$…$输出;源码里已含$的极端写法不做转义。 - 浮条靠悬停触发,纯键盘暂时无法唤起;README 提到可后续加消息级「复制全部公式」。
安全与权限:插件以当前 DSH 进程/浏览器上下文运行,安装前请自行查看仓库源码与 MIT 许可证。社区目录 skillhub.cn 为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-math-copy 解决的是「看得见公式、复制却是字形」这一具体问题:用 KaTeX 自带的 TeX annotation 做悬停三格式复制,并在带公式的选区复制时按记忆的目标还原源码。需要安装命令与行为细节时,以 GitHub README 为准;从目录安装可访问 dsh-math-copy 插件页。