DeepSeek Harness LaTeX 代码片段插件:dsh-math-snippets

前言

在 DeepSeek Harness (DSH) 的网页编辑器中编写数学公式时,手动输入 LaTeX 代码既繁琐又容易出错。dsh-math-snippets 插件通过引入触发词机制,实现了类似 LaTeX Suite 的代码片段展开功能,能够显著提升公式输入效率。

插件概述

该插件由用户 huanglianqi 维护,是一个基于 MIT 许可证的开源工具。它通过将常用的数学符号映射为简短的触发词,在用户输入特定字符组合后,自动将其替换为完整的 LaTeX 模板,并将光标定位到需要填写的占位符位置。

核心功能

1. 触发词展开

插件内置了一个包含 142 个标签的触发词表,其中 138 个默认为自动展开,4 个(如 \sum, \prod)需要配合 Tab 键使用。触发词的匹配规则与 Obsidian LaTeX Suite 保持一致,方便习惯该工具的用户迁移。

2. Tab 键导航

当触发词展开后,光标会自动进入第一个占位符。按 Tab 键可以依次跳转到后续的占位符(例如 $1, $2)。这允许用户快速构建复杂的嵌套公式结构。

3. 外部触发词

除了数学符号内部,插件还支持在普通文本中触发数学块的插入。这使得用户可以快速在段落中插入数学公式或独立的显示数学块。

4. 可编辑的触发词表

插件的触发词表由插件在首次启动时写入到 ~/.dsh/math-snippets.json,并可通过编辑该文件来自定义触发词的行为。

安装与启用

使用官方插件安装命令:

dsh plugin --profile <profile> add dsh-math-snippets

安装完成后,需要重启 Harness(因为配置列表在启动时读取),然后刷新网页编辑器页面即可生效。

使用示例

以下是常见触发词及其展开效果:

$//        → $\frac{}{}$
$sum       → $\sum_{i=1}^{n} $
$ff<Tab>   → $\frac{}{}$
mk         → $$
dm         → $$\n\n$$

在数学符号内部,输入触发词后通常无需按 Tab 即可自动展开:

$@a        → $\alpha$
$sr        → $^{2}$

配置与自定义

在 ~/.dsh/math-snippets.json 文件中,可以添加或覆盖内置的触发词。该文件是一个 JSON 对象,每个条目包含以下字段:

  • body: 展开后的 LaTeX 内容。$0, $1 等表示占位符。
  • auto: 是否自动展开(默认为 true)。
  • open: 是否允许在数学符号外触发。
  • word: 是否要求触发词后必须是非单词字符(防止误触)。
  • desc: 备注说明。

自定义示例:

{
  "snippets": {
    "capm": { "body": "$E[R_i]=R_f+\\beta_i(E[R_m]-R_f)$", "auto": true },
    "npv":  { "body": "\\mathrm{NPV}=\\sum_{t=0}^{n}\\frac{CF_t}{(1+r)^t}" },
    "par":  { "body": "\\frac{\\partial $0}{\\partial $1}", "auto": true }
  }
}

限制与注意事项

  1. 无实时预览:插件在输入时不会隐藏或渲染公式,也不会自动调整括号大小。
  2. 占位符文本:${1:\infty} 等占位符中的默认文本不会被自动选中,这是 Shell 环境的限制。
  3. 触发词规则:
    * 纯字母触发词(如 ff)匹配的是完整的单词(例如输入 xff 不会触发 ff)。
    * 非字母触发词(如 //, _)匹配的是精确字符。
    * LaTeX 命令本身(如 \sum)永远不会被识别为触发词。
  4. Tab 行为:只有当匹配到有效的触发词时,Tab 才会被消耗;否则 Tab 保留其默认功能。

生态背景

DeepSeek Harness 的核心设计理念是“一切皆插件”。本插件由社区维护,其目录与 GitHub 仓库地址如下:

  • 目录: https://www.skillhub.cn/plugins/huanglianqi/dsh-math-snippets
  • 仓库: https://github.com/huanglianqi/dsh-math-snippets
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜