
之前在写论文时我经常面临一个尴尬场景LaTeX 排版、文献引用、编译报错折腾半天而真正该花时间的学术内容却被挤占了。后来我把 Overleaf 和 DeepSeek Harness简称 DSH组合起来形成了一套“AI 辅助论文写作 在线 LaTeX 协作”的工作流。这篇文章就来完整拆解这套方案的落地过程包括 DSH 的安装配置、与 Overleaf 的联动方式、常见的论文修改场景以及高频报错排查思路。不管你是刚开始用 Overleaf 写课程论文还是已经在用它协作投稿论文这篇文章都会给出可操作的方案。前几节偏基础后面几节偏工程大家可以根据自己的基础选择性阅读。1. 背景Overleaf 和 DeepSeek Harness 分别解决什么问题1.1 Overleaf 是什么Overleaf 是目前学术界非常流行的在线 LaTeX 写作与协作平台。它的核心价值有三个免去本地 LaTeX 环境安装的麻烦打开浏览器就能编译。支持多人实时协作通过分享链接设置只读或可编辑权限。内置大量期刊模板和常见宏包适合投稿、课程报告、毕业论文等场景。但 Overleaf 也有局限性。比如在线编辑器虽然有代码补全但对“整段改写”“按审稿意见修改”“从日志中定位编译错误”这类任务帮助有限。编译日志比较复杂新手看到! Undefined control sequence这类报错常常不知道从哪里排查。多人协同时如果改动量大很难追踪每个版本的变更内容。1.2 DeepSeek HarnessDSH是什么DSH 可以理解为一个可扩展的 AI 工作流工具它把模型调用、工具调用、多智能体协作、插件管理整合在一个统一的框架里。你可以通过命令行、桌面端或 Web 界面使用它也可以为它开发自己的插件。在论文写作场景下DSH 的作用不是替代 Overleaf而是填补 Overleaf 在“智能化处理”上的空白读取 LaTeX 源码帮你做语法修正。分析编译日志定位报错位置并给出修复建议。根据审稿意见生成修改方案。整理参考文献、检查未定义的引用。把大段英文/中文内容按学术写作风格润色。1.3 为什么要把两者组合起来Overleaf 负责“协作、编译、版本管理”DSH 负责“分析、生成、修改建议”。两者通过本地文件或 Git 同步形成闭环。一个典型的工作流是从 Overleaf 导出项目 zip或通过 Git 方式拉到本地。用 DSH 对 LaTeX 源码进行分析、修改、润色。DSH 生成修改后的文件或 diff 建议。把修改内容同步回 Overleaf通过 Overleaf 的修订模式人工确认。在 Overleaf 中重新编译验证是否通过。这个流程既发挥了 DSH 的模型能力又保留了 Overleaf 的协作和编译能力。2. 核心概念修订模式、模板导入、分享链接和 DSH 插件在动手之前有几个概念需要先厘清。这些概念在搜索热词中反复出现也是新手最容易混淆的地方。2.1 Overleaf 修订模式Overleaf 的修订模式类似 Word 中的“修订”功能。开启后编辑者做出的改动会被标记出来其他协作者可以逐条接受或拒绝。这在论文多人协作中特别有用因为你可以看到 AI 或合作者具体改了什么而不是默默覆盖。在 Overleaf 编辑器中可以通过顶部菜单的 Review 功能进入修订模式。这个模式建议和 DSH 配合使用让 DSH 生成修改建议然后你手动把改动落到 Overleaf 修订模式中方便审阅和回退。2.2 Overleaf 模板导入很多用户会遇到“怎么用 Overleaf 打开现有的 zip 文件”的问题。其实有两种方式新建项目时选择 Upload Project上传 zip 文件。把 zip 解压后手动把文件上传到项目目录中。需要注意的是zip 中应该包含.tex文件以及项目所需图片、.bib文献库等资源而不是再套一层文件夹。如果上传后编译报错找不到文件通常就是目录层级不对。2.3 Overleaf 分享链接的含义Overleaf 的分享链接有两种权限只读链接对方只能查看源码和 PDF不能编辑。可编辑链接对方可以直接修改项目。在协作时如果希望 AI 修改后的内容由人工确认最好只把只读链接发给外部协作者可编辑链接只给团队内部成员。避免误操作带来不可控的改动。2.4 DSH 的插件与 Profile 机制从 DSH 的使用方式来看它支持插件市场比如 dshmarket也支持通过 profile 来区分不同的使用场景。所谓 profile可以理解为“一组配置集合”包含模型参数、插件列表、系统提示词等信息。例如你可以为“论文写作”创建一个 profile专门加载 LaTeX 辅助插件为“代码开发”创建另一个 profile加载代码相关插件。这样不同任务之间的配置互不干扰。搜索热词中提到的dsh plugin --profile web add dshmarket就是往某一个 profile这里叫 web中添加插件市场的示例。不同版本的 DSH 命令可能有所不同但思路是一致的profile plugin 组合。3. 环境准备安装 DSH 并跑通基础命令3.1 准备 Node.js 环境DSH 的运行通常依赖 Node.js。如果你还没有安装 Node.js建议先安装 LTS 版本。具体版本要求以你使用的 DSH 版本为准可以这样检查node -v npm -v如果命令提示找不到 node说明 Node.js 没有安装或没有加入系统 PATH。3.2 安装 DSHDSH 的安装方式可能因版本不同而有差异。比较常见的方式是使用 npm 全局安装或从 GitHub 仓库克隆后使用 pnpm 构建。下面是一个参考流程实际命令请以官方文档为准。# 方式一通过 npm 全局安装示例非官方精确命令 npm install -g dsh/cli # 方式二克隆仓库后构建 git clone DSH 的 GitHub 仓库地址 cd DSH 仓库目录 pnpm install pnpm build安装完成后执行dsh --version如果能输出版本号说明安装成功。如果提示“dsh 不是内部或外部命令也不是可运行的程序或批处理文件”则说明命令没有加入 PATH或者安装路径不正确需要检查全局安装目录是否在环境变量中。3.3 启动桌面版、TUI 或 Web 界面DSH 提供了多种使用形态桌面版适合日常操作有图形界面。TUI终端界面适合服务器或轻量环境。Web 界面适合浏览器操作。启动方式因版本而异。例如 Web 界面可能是这样的dsh web或者通过 pnpm 启动pnpm dsh web如果启动比较慢常见原因是前端依赖安装时间长。耐心等待依赖下载完成即可必要时可以检查网络状态。后续推荐按实际需要选择界面形态。论文写作场景中桌面版或 Web 界面体验更好因为你可以同时查看 DSH 的修改建议和 Overleaf 的项目内容。3.4 准备 Overleaf 项目文件安装好 DSH 后接下里就要准备论文项目文件。推荐做法是在本地创建一个目录专门存放论文的 LaTeX 源码。mkdir ~/papers cd ~/papers mkdir my-thesis cd my-thesis然后从 Overleaf 导出项目打开项目菜单。选择 Download下载 zip。解压 zip把内容放到my-thesis目录中。如果你使用的是 Overleaf 的 Git 同步功能也可以直接拉取项目git clone Overleaf 项目 Git 地址 my-thesis4. 配置 DSH创建论文写作专属 Profile4.1 Profile 的基本概念在 DSH 中profile 是一套独立的工作区配置。你可以为论文写作单独建立一个 profile这样不会污染代码开发等其他场景的配置。假设 DSH 使用 JSON 格式的配置文件一个论文写作的 profile 大致可以是这样的结构具体路径和字段以实际版本为准{ name: paper-writing, model: { provider: deepseek, apiKeyEnv: DEEPSEEK_API_KEY, modelName: deepseek-chat, baseUrl: https://api.deepseek.com }, plugins: [latex-helper, pdf-reader], systemPrompt: 你是一名 LaTeX 学术写作助手擅长处理论文结构、语法润色、文献引用和编译报错。 }在这个配置中apiKeyEnv表示从环境变量中读取 API Key避免明文写入配置文件。plugins是你为论文写作加载的插件列表。systemPrompt可以提升模型对 LaTeX 任务的理解能力。4.2 设置 API Key在命令行中设置环境变量export DEEPSEEK_API_KEY你的 API KeyWindows 系统下可以使用set DEEPSEEK_API_KEY你的 API Key注意不要把密钥提交到 Git 仓库中。如果 DSH 支持 .env 文件也可以把它写入.env.example中作为模板。4.3 安装论文写作相关插件DSH 的插件生态中可能包含 LaTeX 辅助、PDF 解析等能力。安装方式一般类似于dsh plugin --profile paper-writing add latex-helper dsh plugin --profile paper-writing add pdf-reader从搜索热词来看dsh plugin --profile web add dshmarket的作用是添加插件市场从而可以浏览和安装更多第三方插件。安装成功后可以用插件列表命令检查dsh plugin list如果找不到某个插件优先检查你的 DSH 版本是否支持该插件以及 profile 名称是否正确。4.4 理解 dshmarket 和 awesome dsh plugin在 DSH 社区中dshmarket是插件市场名称awesome dsh plugin则可能是社区整理的插件清单。通过这两个资源你可以找到别人写好的现成插件避免重复造轮子。但也要注意第三方插件可能带有安全风险。在安装之前建议查看插件源码确认没有恶意逻辑。优先选择社区活跃、用户较多的插件。不在生产环境或涉密项目中随意安装来源不明的插件。5. 实战用 DSH 完成四个论文修改场景现在进入核心环节。下面用四个常见场景演示 DSH 的用法。5.1 场景一定位 LaTeX 编译报错问题现象Overleaf 编译失败日志中有一堆!开头的错误信息。解决思路把.log文件内容交给 DSH请它定位第一个错误和修复方案。假设你有output.log文件可以在 DSH 中这样提问请分析附加的日志文件找出第一个导致编译失败的错误。 说明错误出现的行号、可能原因以及修复建议。 如果错误涉及缺失宏包请给出应该在导言区添加的 usepackage 语句。DSH 会基于日志内容给出定位和分析结果。实际上很多编译错误的根源是缺少宏包。特殊字符未转义。使用了未定义的命令。引用标签名称拼写错误。示例错误! Undefined control sequence. l.12 \begin{equation}DSH 可能回复这个错误表示 LaTeX 遇到了未定义的命令。检查第 12 行附近是否使用了需要额外宏包的命令例如 \begin{equation} 本身不需要额外宏包但如果你使用了 \bm、\mathbb 等命令需要引入 amsmath、amssymb 等宏包。5.2 场景二按审稿意见修改论文问题描述审稿人提出了若干修改意见需要逐条处理。推荐做法把审稿意见粘贴给 DSH同时提供对应的 LaTeX 源码要求它输出结构化的修改方案。下面是审稿人意见 1. 引言部分需要更清晰地说明研究动机。 2. 实验部分缺少对基线方法的描述。 3. 结论部分应该增加对局限性的讨论。 请针对每一条意见给出修改建议 - 指出应该修改哪个段落 - 提供修改后的 LaTeX 代码片段 - 说明为什么这样修改。DSH 会输出类似这样的结果针对意见 1 建议修改 src/introduction.tex 中第 3 段。原文只描述了问题背景没有说明“为什么现有方法不足”。 可以在段落末尾添加研究动机的说明例如然而现有方法主要依赖人工设计的特征难以在大规模数据下保持稳定性。本文提出了一种基于深度学习的端到端方案以期在保持效率的同时提升准确率。这里要特别强调不要让 DSH 直接重写整篇论文而是让它输出“最小修改片段”。这样你能快速判断修改是否合理也方便在 Overleaf 修订模式中逐条确认。5.3 场景三参考文献检查与整理问题描述LaTeX 中引用了很多文献但编译时出现Citation undefined警告。解决思路请 DSH 对比.tex中的\cite{}和.bib文件中的条目。请检查我的 .tex 文件中使用了哪些 \cite 标签 然后在 main.bib 中查找这些标签是否存在。 输出在 .bib 中找不到的引用标签列表 并给出修复建议。DSH 会返回类似以下引用标签未在 main.bib 中找到 - chen2020attention - wang2019graph 可能原因 1. .bib 文件中没有对应条目。 2. 标签拼写不一致。 3. 引用了被注释掉的条目。 建议 检查 chen2020attention 是否在 .bib 中拼写为 chen2020_attention。通过这种检查可以避免投稿前才发现引用缺失的尴尬。5.4 场景四生成 LaTeX 表格和公式片段问题描述需要写一个三线表或一组公式但手写 LaTeX 效率低。解决思路让 DSH 生成符合规范的 LaTeX 片段你复制到 Overleaf 中验证。请生成一个三线表表头为Method、Accuracy、F1 Score。 包含三行数据第一行是 ours0.9230.917 第二行是 baseline A0.8870.879 第三行是 baseline B0.8540.861。 使用 booktabs 宏包输出完整可编译的 LaTeX 代码。DSH 会输出\begin{table}[htbp] \centering \caption{Comparison of different methods.} \label{tab:comparison} \begin{tabular}{lcc} \toprule Method Accuracy F1 Score \\ \midrule Ours 0.923 0.917 \\ Baseline A 0.887 0.879 \\ Baseline B 0.854 0.861 \\ \bottomrule \end{tabular} \end{table}你只需要把这个片段放入 Overleaf 项目确认编译效果并检查是否导入了booktabs宏包。6. 与 Overleaf 的闭环同步如何把 DSH 修改结果拿回 OverleafDSH 处理完本地 LaTeX 文件后有几种方式把改动同步回 Overleaf。6.1 方式一直接上传/覆盖文件这种方式适合文件数量少、改动范围小的场景。在 Overleaf 项目中打开对应.tex文件。把 DSH 输出的修改代码复制到编辑器中。建议先开启修订模式再粘贴修改内容。这种方式最大的好处是可控性强缺点是如果改动文件多手动操作比较繁琐。6.2 方式二重新打包项目上传适合大批量修改的场景。在本地修改完成后重新打包成 zip。在 Overleaf 中新建项目选择 Upload Project。上传后重新编译验证结果。这种方式适合项目结构不变但内容变化大的情况。注意上传前最好清理临时文件比如.aux、.log、.out等编译中间文件减少上传体积。6.3 方式三使用 Overleaf Git 同步如果你的 Overleaf 套餐支持 Git 同步这是最推荐的方式。在 Overleaf 项目菜单中打开 Git 同步获取项目的 Git 地址。在本地执行git clone或git pull。用 DSH 修改本地文件。本地执行git add、git commit、git push。回到 Overleaf刷新项目并编译。这种方式的优势是版本历史完整方便回溯和多人协作。需要注意的是Git 同步可能不是所有账号都支持具体以你使用的套餐为准。6.4 关于 Overleaf 删除文件的恢复搜索热词中有“overleaf删除的文件能找回吗”。如果你在 Overleaf 中误删了文件可以查看项目的版本历史Menu - Version History恢复。但如果删除后已被新的提交覆盖可能就找不回来了。因此建议本地维护一份备份避免只依赖在线平台。7. 常见问题与排查思路在配置 DSH 和 Overleaf 联动时比较容易遇到下面几类问题。问题现象常见原因解决思路安装后提示“dsh 不是内部或外部命令”Node.js 未安装或 DSH 未正确加入 PATH检查 Node.js 安装重装 DSH确认全局安装目录在 PATH 中pnpm dsh web卡住前端依赖安装慢或网络连接不稳定等待依赖安装完成检查 pnpm 源配置必要时使用国内镜像源DSH 插件安装失败profile 名称写错或插件市场地址不可用先用插件列表命令查看当前 profile确认插件名称检查网络模型调用报错API Key 未设置或模型名/base URL 不匹配检查环境变量 DEEPSEEK_API_KEY对比官方 API 文档中的模型名和接口地址DSH 生成的内容在 Overleaf 编译失败缺少宏包或 DSH 使用了你当前环境不支持的 LaTeX 命令根据编译日志定位在导言区补全宏包对 DSH 输出做人工确认Overleaf 编译超时项目文件过大或编译需要的宏包过多清理临时文件分割大文件检查是否有死循环代码中文内容显示乱码缺少中文支持宏包或编码问题使用 ctex 宏包确保文件编码为 UTF-8DSH 无法读取 PDF 内容当前未安装 PDF 解析插件安装 pdf-reader 类插件或先把 PDF 转换成文本文件后再分析排查时可以按以下顺序进行确认 DSH 版本和安装方式。检查 Node.js 和 pnpm 版本。查看 DSH 日志确认报错发生在配置层、插件层还是模型调用层。用最简单的命令验证基础功能比如让 DSH 输出“hello”。再逐步加入 LaTeX 项目和插件。8. 最佳实践与工程建议8.1 用 Git 管理论文版本不要只依赖 Overleaf 的自动保存。建议在本地用 Git 管理论文的每次修改尤其是与 DSH 配合时。DSH 生成的修改可能并不总是你想要的Git 可以让你放心尝试。git init git add . git commit -m 论文初稿 git commit -m 根据 DSH 修改建议优化引言如果某个修改不合适可以用git checkout回退。8.2 小步修改不要一次性生成整篇论文论文写作是一个高认知密度的任务AI 工具适合做“片段级”的辅助而不是整篇生成。建议每次只让 DSH 处理一个章节。明确要求输出 diff 而不是整段替换。人工审阅每一个建议后再上到 Overleaf。这样可以最大限度降低 AI 生成内容带来的事实错误风险。8.3 注意数据安全和版权边界如果你的论文涉及未发表的研究成果、保密数据或专利申请中的内容请慎重使用在线 AI 服务。DSH 如果通过 API 调用外部模型输入内容可能会上传到第三方服务器。建议阅读你所使用服务的隐私政策。对敏感内容做脱敏处理。在实验室/公司内部部署本地模型或使用私有化部署方案。8.4 为 DSH 编写自定义插件如果你经常需要让 DSH 处理 PDF 文件可以写一个简单插件来提取 PDF 文本。思路如下插件接收一个 PDF 文件路径。调用 Python 的pdfplumber或PyPDF2提取文本。把提取结果传递给 DSH 的模型进行后续分析。示例脚本Pythonimport sys try: import pdfplumber except ImportError: print(请先安装 pdfplumber: pip install pdfplumber) sys.exit(1) def extract_pdf_text(pdf_path: str) - str: with pdfplumber.open(pdf_path) as pdf: pages [page.extract_text() for page in pdf.pages] return \n.join(filter(None, pages)) if __name__ __main__: if len(sys.argv) ! 2: print(用法: python extract_pdf.py 文件路径) sys.exit(1) print(extract_pdf_text(sys.argv[1]))然后你在 DSH 中就可以通过调用这个脚本让模型读取 PDF 内容。具体集成方式取决于 DSH 的插件 API这里只是一个思路。8.5 维护一个论文写作提示词库把常用的提示词整理成 Markdown 文件方便重复使用。例如编译报错分析提示词。审稿意见修改提示词。参考文献检查提示词。摘要润色提示词。公式表格生成提示词。这样当新论文启动时可以直接复用不需要每次都重新措辞。9. 总结与学习路线这套 Overleaf × DeepSeek Harness 的组合最核心的价值不在于“让 AI 写论文”而在于把 AI 的能力嵌入到已有的论文写作流程中。Overleaf 负责协作和编译DSH 负责分析和生成建议两者通过文件或 Git 同步连接起来。如果你刚接触这个方向建议按下面的路线学习先熟练掌握 Overleaf 的基础操作模板导入、修订模式、分享链接、版本历史。再学习 DSH 的安装和基础配置跑通一个简单的提示词。然后从一个具体场景开始尝试比如“让 DSH 定位编译报错”。逐步扩展更多场景比如审稿意见修改、参考文献检查、表格公式生成。等你熟悉了基本用法再尝试写自定义插件把 PDF 读取、Zotero 文献库接入等工作流也整合进来。在实际项目中优先关注两个风险一是数据安全二是修改质量。AI 生成的内容必须经过人工审核尤其是投递期刊之前任何修改都需要确认不会引入事实性错误或 LaTeX 编译问题。如果后续你想深入可以继续研究 DSH 的多智能体编排、插件开发标准和 LaTeX 高级排版技巧。希望这篇教程能帮你把“写论文”这件事变得更高效。