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
羽毛球分组比赛记分
小程序二维码

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

小夜