dsh-latex-studio:在 DSH 里用便携 MiKTeX 编辑与编译 LaTeX

前言

在 DeepSeek Harness(DSH)里写论文、笔记或技术文档时,常要把 .tex 编译成 PDF,并希望编辑、预览和保存路径都在同一套界面里完成。如果本机没装 TeX 发行版,或不想改系统 PATH、注册表,还得单独找编辑器与编译脚本,和会话、文件树割裂。

@kasaki002/dsh-latex-studio(维护者 kasaki002)是 DSH 的客户端插件:内置便携版 MiKTeX(xelatex / pdflatex),提供会话内 LaTeX 页签和本地网页编辑器,在 DSH 进程权限下完成选文件、编译、预览与下载 PDF。下文按安装、入口与典型用法说明。

这是什么

插件在 npm 上的包名为 @kasaki002/dsh-latex-studio,当前资料中的版本为 0.2.0,许可证 MIT。引擎采用便携 MiKTeX,不写注册表、不改 PATH、不需要管理员权限。分类为客户端插件,与 DSH 的 web 端与会话视图集成。

核心功能

引擎与编译

  • 支持 xelatex、pdflatex;中文文档可选用 xelatex,auto 会自行判断。
  • 默认编译一遍;日志出现 Rerun to get、未定义引用或 Label(s) may have changed 时会自动再跑一遍,保证目录与交叉引用。
  • 使用 \bibliography{refs} 时,第一遍之后会跑 bibtex 再补两遍 LaTeX;\begin{thebibliography} 内联文献不会触发该流程。
  • 编译带 -synctex=1;预览约 150 dpi(A4 约 1240×1754),页脚显示本次编译遍数。
  • 服务端保留 /api/locate、/api/forward(双向定位),界面暂未接入。

会话视图

  • 入口:会话顶部 LaTeX 页签(可在 设置 → LaTeX 工作室 用全局开关显隐;所有会话、浏览器共用,刷新后仍生效)。
  • 工具栏:保存、编译;「更多」含下载 PDF(仅编译成功后)、在浏览器打开、拖入文件。
  • 左上角 ↺ 为重置:会话视图采用两段式确认(4 秒内再点一次),清空编辑区、预览、日志及 drop/ 缓存副本,并清除本会话在 state.json 中的草稿;磁盘上的原文件不删。

网页版编辑器

  • 地址:http://127.0.0.1:<DSH 端口>/dsh-latex/。从 设置 → LaTeX 工作室 点「打开 web 端」由 Host 调系统浏览器,并发放 2 分钟一次性票据换取 dsh_latex_sid cookie(12 小时,仅 /dsh-latex);无票据或直接粘贴无会话地址会 401。
  • 公式面板(∑ 公式):符号、模板、预览三页签;预览防抖 700 ms 后本地编译 PNG(/api/formula,缓存于 out/_formula/)。
  • 分栏:编辑区与预览区 15%–85% 可调,比例写入 prefs.json 的 split。
  • 主题:深/浅/跟随系统,持久化在 Host 的 prefs.json(theme)。
  • 拖入:单 .tex 经 /api/droptext 存副本并载入;.bib / .sty / .cls 只保存不载入;可拖整个项目文件夹,保持相对路径。
  • 导入 / 新建:内置目录浏览器(不依赖系统对话框);新建可选 ctexart 起始模板,已存在文件拒绝覆盖。

与会话的 RPC

  • latex_status:引擎是否安装及路径。
  • latex_compile:传入 .tex 路径,返回 PDF 绝对路径、遍数与日志尾部。

与 dsh-better-sidebar

若已安装 dsh-better-sidebar,本插件通过 registerFileViewer 注册 .tex 预览器:默认源码可编辑,「编译并预览」切 PDF;保存走 /api/save 并重新编译。未装该插件时其它功能不受影响。

数据与安全

工作目录默认为 %USERPROFILE%\.dsh\latex-studio\(可用环境变量 DSH_LATEX_HOME 修改),内含 prefs.json、state.json(按会话分草稿)、engines.json、tex/(便携 MiKTeX)、out/<id>/、drop/ 等。

/dsh-latex/* 使用 DSH webServer 独立前缀,在 handler 前做 Host/Origin 与登录 cookie 校验(未登录 401、不信任来源 403),避免同端口其它程序获得任意文件读写能力。

安装与启用

任选其一:

npm install @kasaki002/dsh-latex-studio

或在 DSH 插件管理中填写包名 @kasaki002/dsh-latex-studio,或从仓库安装:

github:kasaki002/dsh-latex-studio

本地开发可用 link: 指向工作目录,改完后刷新页面生效。

首次使用若提示「未安装引擎」,在界面中按提示安装(约 150 MB,走清华 TUNA 镜像)。引擎识别成功后写入 engines.json,后续启动只检查文件是否存在。

典型用法

  1. 选文件:会话 LaTeX 页签或网页端用「导入文件」浏览 .tex;或将 .tex / 整个项目文件夹拖入窗口。
  2. 编辑与保存:在编辑器中修改并保存;当前打开的是磁盘上的普通路径时写回原文件,来自 drop/ 缓存副本时重置会删副本,原文件始终不动。
  3. 编译:点「编译」;需要中文时选 xelatex。第一次编译中文可能触发 MiKTeX 现场下载 ctex 等宏包,会稍慢。
  4. 预览与导出:竖向滚动预览;编译成功后从「更多」下载 PDF。
  5. 重置:需要清空界面与 drop/ 缓存时使用 ↺(会话视图需二次确认)。

网页版打开方式: 设置 → LaTeX 工作室 → 打开 web 端。

适用场景与注意

适合:在 DSH 同一进程里写 LaTeX、要便携 TeX 而不动系统环境、需要会话级草稿恢复或与 better-sidebar 联动预览 .tex 的开发者。

注意:

  • 插件在当前 DSH 进程权限下运行,安装前请查看 GitHub 仓库 源码与 MIT 许可证。
  • 无完整 biber / biblatex 时,参考文献宜用 bibtex(插件已自动处理 \bibliography)或手工文献环境。
  • 网页版为调试向纯字符串 HTML,界面主要为中文;会话视图文案跟随 Client locale。
  • 社区目录 SkillHub 插件页 与 GitHub 为独立信息源,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-latex-studio 把便携 MiKTeX、会话 LaTeX 页签和带公式面板、分栏预览的本地网页编辑器收进 DSH 客户端插件,安装与引擎下载路径在 README 中写清,适合不想单独维护全系统 TeX 栈、又要在 Harness 里直接出 PDF 的场景。

  • 目录页:https://www.skillhub.cn/plugins/kasaki002/dsh-latex-studio
  • GitHub:https://github.com/kasaki002/dsh-latex-studio
羽毛球分组比赛记分
小程序二维码

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

Xiaoye