# 附录1:通过VSCode+ClaudeCode+Obsidian打造学术论文写作工作流 ## 核心问题 > 如何利用AI工具提升学术论文写作效率? > VSCode、Claude Code、Obsidian如何协同工作? > 如何构建从文献检索到投稿的完整工作流? --- ## 工作流概览 ### 两阶段写作策略 ``` ┌─────────────────────────────────────────────────────────────────────────┐ │ 阶段一:初稿形成 (Markdown为主) │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌────────────┐ ┌────────────┐ ┌────────────┐ ┌────────────┐ │ │ │ 文献管理 │───→│ 大纲构思 │───→│ 内容撰写 │───→│ 初稿自查 │ │ │ │ Zotero/MCP │ │ Obsidian │ │ VSCode │ │Claude Code │ │ │ └────────────┘ └────────────┘ │Claude Code │ └────────────┘ │ │ └────────────┘ │ │ ↓ Markdown 格式 │ │ │ └─────────────────────────────────────────────────────────────────────────┘ │ │ 格式转换 (Pandoc) ↓ ┌─────────────────────────────────────────────────────────────────────────┐ │ 阶段二:修改投稿 (Word/LaTeX) │ ├─────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ 导出 Word │ │ 导出 LaTeX │ │ │ │ (导师批阅) │ │ (期刊投稿) │ │ │ └──────┬───────┘ └──────┬───────┘ │ │ │ │ │ │ ↓ ↓ │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ 导入Word修改 │ │ LaTeX编译 │ │ 投稿系统提交 │ │ │ │ 批注/修订模式 │ │ PDF预览 │ │ 最终检查 │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────┘ ``` ### 为什么采用两阶段策略? | 阶段 | 格式 | 优势 | 适用场景 | |-----|------|------|---------| | **初稿阶段** | **Markdown** | • 版本控制友好
• AI辅助高效
• 结构清晰
• 跨平台兼容 | 内容创作、结构搭建、逻辑梳理 | | **修改阶段** | **Word** | • 批注功能完善
• 协作修改方便
• 导师习惯使用
• 修订记录清晰 | 导师审阅、多人协作、逐点修改 | | **投稿阶段** | **LaTeX** | • 期刊模板支持
• 排版专业
• 公式美观
• 自动化程度高 | 期刊投稿、最终定稿 | --- ## 工具介绍与定位 ### 三大工具分工 | 工具 | 核心功能 | 适用场景 | 不适用场景 | |-----|---------|---------|-----------| | **VSCode** | 代码开发、结构化编辑 | 复杂文档重构、批量处理 | 自由笔记 | | **Claude Code** | AI辅助编写、代码生成 | 内容生成、代码分析、调试 | 灵活思考 | | **Obsidian** | 知识管理、笔记链接 | 知识网络构建、文献笔记 | 代码开发 | ### 协同方式 ``` 初稿阶段 (Markdown) 修改投稿阶段 ──────────────── ────────────── │ Obsidian (知识库) ──→ VSCode (编辑) ────→ Pandoc ──→ Word (导师审阅) │ │ │ │ Claude Code │ │ (AI辅助) ↓ └──────────────→└──────────────────────── LaTeX (投稿) │ ↓ main.md (初稿) ``` **关键原则**: - **初稿阶段全 Markdown**:充分利用版本控制、AI辅助、跨平台优势 - **导出点即分支点**:从 Markdown 导出时创建 Git 分支 - **修改在 Markdown 中进行**:Word/LaTeX 的修改最终应同步回 Markdown - **保持单一信源**:Markdown 始终是内容的"真实来源" --- ## 环境搭建 ### 1. VSCode 配置 **推荐扩展**: ```json // .vscode/settings.json { // 编辑器基础 "editor.fontSize": 14, "editor.lineHeight": 1.8, "editor.fontFamily": "'Cascadia Code', 'Microsoft YaHei UI'", "editor.wordWrap": "on", "editor.minimap.enabled": false, // Markdown "markdown.preview.fontSize": 16, "markdown.preview.lineHeight": 1.8, "markdown.preview.breaks": true, // 拼写检查 "cSpell.enabled": true, "cSpell.language": "en,zh-CN", // Pandoc 支持 "pandoc.document outputPath": "${documentBaseName}.docx" } ``` **推荐扩展列表**: - `Markdown All in One` - Markdown 增强 - `Pandoc` - 文档格式转换 - `Code Spell Checker` - 拼写检查 - `GitLens` - Git 增强 - `Zettelkasten` - 笔记链接支持 ### 2. Claude Code 配置 ```json // ~/.claude/config.json 或项目 .claude/config.json { "mcpServers": { // 文件系统访问 "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "D:/我的论文", "D:/我的文献"] }, // Git 操作 "git": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-git", "--repository", "D:/我的论文"] }, // Brave 搜索(文献检索) "brave-search": { "transport": "sse", "url": "https://modelcontextprotocol.io/servers/brave-search", "env": { "BRAVE_API_KEY": "your_api_key" } }, // 数据库(可选,文献管理) "postgres": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-postgres"] } } } ``` ### 3. Obsidian 配置 **推荐插件**: | 插件 | 功能 | 配置要点 | |-----|------|---------| | **Obsidian Git** | 版本控制 | 自动提交间隔 15 分钟 | | **Zotero Integration** | 文献引用 | 设置 Zotero 路径 | | **Citations** | 参考文献 | 支持 BibTeX | | **Dataview** | 数据查询 | 文献元数据查询 | | **Advanced Tables** | 表格编辑 | 学术表格必备 | | ** Pandoc Plugin** | 格式转换 | 导出 Word/PDF | **Obsidian 设置**: ```json { "vimModeEnabled": false, "showLineNumber": true, "foldHeading": true, "foldIndent": true, "spellcheck": true, "spellcheckLanguages": ["zh-CN", "en"], "attachmentFolderPath": "assets", "useMarkdownLinks": true, "newFileLocation": "folder", "newFileFolderPath": "inbox" } ``` --- ## 阶段一:文献管理与知识积累 ### Zotero + Obsidian 文献工作流 ``` ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ Zotero │────→│ Obsidian │────→│ 知识网络 │ │ 文献收集 │ │ 文献笔记 │ │ 双向链接 │ └──────────────┘ └──────────────┘ └──────────────┘ ↓ ↓ ↓ PDF元数据 文献摘要 思维导图 标签分类 关键观点 创新想法 ``` ### Obsidian 文献笔记模板 ```markdown --- type: literature citekey: {{citekey}} title: "{{title}}" authors: {{authors}} year: {{year}} journal: {{publication}} tags: [文献笔记, {{tags}}] status: reading --- # {{title}} ## 一句话总结 ## 核心贡献 ## 研究方法 ## 主要发现 ## 局限与展望 ## 与我研究的关系 ## 可引用的句子 ## 相关文献 - [[相关文献1]] - [[相关文献2]] ``` ### Claude Code 辅助文献阅读 ```bash # 在 Claude Code 中 # 1. 批量提取文献关键信息 > 帮我分析这个PDF,提取:研究目的、方法、主要发现、局限性 # [上传PDF或使用MCP访问文件] # 2. 文献对比 > 对比这两篇文献的研究方法差异: # 文献1: [[Smith2023-methods]] # 文献2: [[Zhang2024-approach]] # 3. 寻找研究缺口 > 基于以下文献摘要,分析当前研究的空白点: # - [[文献1]] # - [[文献2]] # - [[文献3]] # 4. 生成文献综述框架 > 根据我的文献笔记,生成一个"空间AI不确定性"主题的综述框架 ``` --- ## 阶段二:大纲构思与结构设计 ### 在 Obsidian 中构建论文结构 ```markdown # 论文大纲 ## 摘要 - [[摘要-背景]] - [[摘要-方法]] - [[摘要-结果]] - [[摘要-结论]] ## 1. 引言 - [[1.1 研究背景]] - [[1.2 问题陈述]] - [[1.3 研究目标]] - [[1.4 论文结构]] ## 2. 文献综述 - [[2.1 空间智能发展]] - [[2.2 生态网络分析方法]] - [[2.3 人机协同研究]] - [[2.4 研究缺口]] ## 3. 方法 - [[3.1 研究区域]] - [[3.2 数据来源]] - [[3.3 分析方法]] - [[3.4 技术实现]] ## 4. 结果 - [[4.1 源地识别结果]] - [[4.2 阻力面分析]] - [[4.3 网络优化]] ## 5. 讨论 - [[5.1 方法创新]] - [[5.2 结果解释]] - [[5.3 局限性]] ## 6. 结论 - [[6.1 主要发现]] - [[6.2 实践意义]] - [[6.3 未来方向]] ``` ### Claude Code 辅助大纲设计 ```bash # 使用 Claude Code 优化大纲 > 我要写一篇关于"生态网络智能分析"的论文,目标期刊是Landscape and Urban Planning。 # 基于以下文献笔记,帮我生成一个详细大纲: # - [[关键文献1]] # - [[关键文献2]] # # 要求: # 1. 符合目标期刊的结构要求 # 2. 突出方法创新点 # 3. 逻辑连贯 # 4. 每节说明预计字数 ``` --- ## 阶段三:内容撰写 ### VSCode + Claude Code 写作模式 ``` VSCode 编辑区 │ │ 实时编辑 ↓ Claude Code 侧边栏/终端 │ ├── AI 辅助生成 ├── 代码示例生成 ├── 文献引用建议 └── 语言润色 ``` ### 写作技能配置 创建 `.claude/skills/academic-writing.md`: ```markdown --- name: academic-writing description: 学术论文写作辅助技能 parameters: - section_type: 论文部分类型 - target_words: 目标字数 - writing_style: 写作风格 --- ## 学术写作技能 当用户需要撰写学术论文内容时使用此技能。 ### 写作原则 1. 清晰第一:避免歧义和模糊表达 2. 逻辑连贯:段落间有明确过渡 3. 证据支撑:每个论断有文献或数据支持 4. 学术规范:使用专业术语,避免口语化 5. 主动语态:适当使用主动语态增强可读性 ### 各部分写作要点 #### 摘要 (Abstract) - 结构:背景-问题-方法-结果-结论 - 字数:200-250词 - 避免:引用文献、缩写未定义 #### 引言 (Introduction) - 漏斗结构:从广泛背景到具体问题 - 结尾明确:列出研究目标/假设 - 避免:过度详细的文献综述 #### 方法 (Methods) - 结构:研究设计-数据-分析-实现 - 细节:可重复性原则 - 避免:结果或讨论内容 #### 结果 (Results) - 客观呈现:不带解读 - 图表配合:重要发现可视化 - 避免:过度解读 #### 讨论 (Discussion) - 解读结果:与前人研究对比 - 承认局限:诚实讨论限制 - 避免:重复结果 #### 结论 (Conclusion) - 简洁总结:3-4段 - 实践意义:应用价值 - 未来方向:具体建议 ### 常用句式模板 #### 引用观点 - "Smith et al. (2023) demonstrated that..." - "Recent studies have shown... (Zhang, 2024)" - "Contrary to previous findings..." #### 表述方法 - "We employed a mixed-methods approach..." - "Data were collected using..." - "The analysis was performed using..." #### 呈现结果 - "Results indicated that..." - "A significant positive correlation was found..." - "As shown in Figure 1..." #### 讨论发现 - "These findings suggest that..." - "This aligns with prior research..." - "Unexpectedly, we observed..." #### 承认局限 - "A potential limitation of this study is..." - "This study has several constraints..." - "Future research could address..." ``` ### 实际写作示例 ```bash # 在 Claude Code 中写作 # 1. 生成段落初稿 > 基于以下要点,写一段关于"生态网络不确定性"的内容(200字): # - 数据不确定性:遥感分类误差 # - 参数不确定性:阻力权重主观性 # - 方法不确定性:不同算法结果差异 # # 要求学术化,引用虚构文献 placeholder # 2. 润色现有文本 > 请帮我润色这段文字,使其更符合学术规范: # ``` # 我们用了一个新方法来分析生态网络。效果挺好,比以前的方法快多了。 # 结果显示这个方法很准确。 # ``` # 3. 扩展内容 > 这段内容太简略,请扩展到300字,增加: # - 技术细节 # - 与前人研究的对比 # - 具体数字支撑 # 4. 检查逻辑 > 请检查这两段之间的逻辑衔接,并给出改进建议: # [粘贴两段内容] # 5. 生成图表描述 > 根据这个数据生成学术风格的图表描述: # 数据:森林连通性 0.75 (±0.12),湿地 0.62 (±0.18),草地 0.45 (±0.21) ``` --- ## 阶段四:代码与图表 ### VSCode 中管理代码 ``` 项目结构 ├── paper/ │ ├── main.md # 主文档 │ ├── figures/ # 图表 │ │ ├── fig1-method.py │ │ └── fig2-results.R │ ├── data/ # 数据 │ └── tables/ # 表格 └── src/ # 源代码 ├── analysis.py └── visualization.py ``` ### Claude Code 辅助代码生成 ```bash # 1. 生成分析代码 > 我需要对这个生态网络数据进行分析: # - 计算节点连通性 # - 识别关键廊道 # - 评估网络鲁棒性 # # 请生成 Python 代码,使用 networkx 和 geopandas # 2. 生成可视化代码 > 帮我写代码生成这个图: # - 三列布局:源地分布、阻力面、廊道网络 # - 使用 matplotlib # - 符合学术出版要求(300dpi,标注清晰) # 3. 生成表格 > 将这个结果转换为 LaTeX 表格格式: # [粘贴结果] # 4. 调试代码 > 这段代码有错误,帮我找出问题: # [粘贴代码] ``` --- ## 阶段五:初稿完成与格式转换 ### 初稿完成检查点 在从 Markdown 转换到 Word/LaTeX 之前,确认: ```markdown # 初稿完成清单 ## 内容完整性 - [ ] 各章节齐全(摘要→结论) - [ ] 字数达到目标要求 - [ ] 图表数量合适 - [ ] 参考文献完整 ## Markdown 格式规范 - [ ] 标题层级正确(# ## ###) - [ ] 段落间有空行 - [ ] 列表格式正确 - [ ] 代码块标识清晰 - [ ] 图片路径正确 - [ ] 表格格式规范 ## 引用规范 - [ ] 使用 BibTeX 或 CSL 引用 - [ ] 引用标识符 [@citekey] 正确 - [ ] 参考文献列表完整 ## 准备转换 - [ ] Git 提交当前版本 - [ ] 创建格式转换分支 - [ ] 备份原始 Markdown 文件 ``` ### Markdown → Word 转换 **适用场景**:导师审阅、多人协作修改 ```bash # 基础转换 pandoc main.md -o output.docx # 使用期刊模板 pandoc main.md \ --reference-doc=template.docx \ --citeproc \ --bibliography=references.bib \ -o submission.docx # 完整参数示例 pandoc main.md \ --reference-doc=journal_template.docx \ --from=markdown \ --to=docx \ --citeproc \ --bibliography=references.bib \ --csl=apa.csl \ --toc \ --number-sections \ -o output.docx ``` **Pandoc 参数说明**: | 参数 | 说明 | 示例 | |-----|------|------| | `--reference-doc` | Word样式模板 | 期刊提供的模板 | | `--citeproc` | 处理引用 | 自动转换 [@citekey] | | `--bibliography` | 参考文献库 | .bib 文件路径 | | `--csl` | 引用样式 | APA, MLA, IEEE 等 | | `--toc` | 生成目录 | 自动创建目录 | | `--number-sections` | 章节自动编号 | 1.1, 1.2... | ### Markdown → LaTeX 转换 **适用场景**:期刊投稿、最终定稿 ```bash # 基础转换 pandoc main.md -o output.tex # 使用期刊模板 pandoc main.md \ --template=journal_template.tex \ --citeproc \ --bibliography=references.bib \ --pdf-engine=xelatex \ -o output.pdf # 完整参数示例 pandoc main.md \ --template=elsarticle.cls \ --from=markdown \ --to=latex \ --citeproc \ --bibliography=references.bib \ --csl=elsevier.csl \ --toc \ --number-sections \ --pdf-engine=xelatex \ --variable=geometry:a4paper,margin=1in \ -o output.pdf ``` **常用期刊模板**: ```bash # Elsevier 期刊 pandoc main.md --template=elsarticle.cls ... # IEEE 期刊 pandoc main.md --template=ieee.cls ... # Springer 期刊 pandoc main.md --template=svjour3.cls ... # 自定义模板 pandoc main.md --template=my_template.tex ... ``` ### 保留样式的模板制作 ```bash # 1. 从现有Word文档提取样式 pandoc --print-default-data-file reference.docx > my_template.docx # 2. 在Word中编辑 my_template.docx,调整样式: # - Normal (正文) # - Heading 1-6 (标题) # - Figure Caption (图表标题) # - Table Caption (表格标题) # 3. 使用自定义模板转换 pandoc main.md --reference-doc=my_template.docx -o output.docx ``` --- ## 阶段六:Word 中的修改与协作 ### Word 批注与修订模式 **导师审阅工作流**: ``` Markdown (Pandoc) → Word → 导师批注 → 修订 → 反馈 Markdown ↓ ↓ ↓ ↓ 初稿转换 导出发送 添加批注 修改整理 ``` ### Word 修订模式使用 ```markdown # Word 审阅功能 ## 1. 开启修订模式 【审阅】选项卡 → 【修订】 → 所有修改会被记录 ## 2. 添加批注 选中文字 → 【审阅】→ 【新建批注】 → 用于提出疑问或建议 ## 3. 接受/拒绝修改 【审阅】→ 【接受】/【拒绝】 → 逐条处理审稿意见 ## 4. 比较文档 【审阅】→ 【比较】→ 选择原稿和修改稿 → 查看所有改动 ``` ### 导师反馈整理 ```bash # 导师反馈后,使用 Claude Code 整理修改意见 > 我收到了导师的Word批注意见,请帮我整理成修改清单: # # 批注1:第3页第2段,方法描述不够详细 # 批注2:图1的坐标轴标注不清 # 批注3:第5页参考文献 [Smith2023] 引用格式错误 # ... # # 请按优先级排序,并给出每条的修改建议 ``` ### Word 修改后回写到 Markdown ```markdown # 方法1:手动同步(推荐用于少量修改) 1. 在 Word 中查看修订 2. 在 VSCode Markdown 中对应修改 3. Git 提交修改记录 4. 重新生成 Word/LaTeX # 方法2:Pandoc Word → Markdown(大量修改后) pandoc revised.docx -o revised.md # 注意:格式可能需要手动调整 ``` --- ## 阶段七:LaTeX 投稿准备 ### LaTeX 编译与调试 ```bash # 基础编译 xelatex main.tex bibtex main xelatex main.tex xelatex main.tex # 或使用 latexmk (自动处理多次编译) latexmk -xelatex main.tex # 清理辅助文件 latexmk -c ``` ### LaTeX 常见问题解决 | 问题 | 解决方法 | |-----|---------| | **中文显示** | 使用 `xeLaTeX` + `\usepackage{ctex}` | | **图片路径** | `\graphicspath{{figures/}}` | | **参考文献** | 检查 `.bib` 文件和 `\cite{}` 命令 | | **表格超宽** | 使用 `resizebox` 或 `adjustwidth` | | **公式编号** | `\numberwithin{equation}{section}` | ### 投稿前最终检查 ```markdown # 投稿前最终检查清单 ## 文档检查 - [ ] 符合期刊字数要求 - [ ] 使用期刊模板 - [ ] 图表分辨率足够(300dpi) - [ ] 补充材料完整 - [ ] 利益冲突声明已签署 ## 元数据检查 - [ ] 作者信息完整(姓名、单位、邮箱) - [ ] 通讯作者已标注 - [ ] 建议审稿人(3-5人,避免利益冲突) - [ ] 推荐期刊/避免期刊(如有) - [ ] 关键词已提供 ## 文件检查 - [ ] 主文档 (Word/PDF) - [ ] 图表文件(如要求单独上传) - [ ] 补充材料/附件 - [ ] 投稿信 (Cover Letter) - [ ] 许可协议表格 ## 系统检查 - [ ] 注册期刊投稿系统账号 - [ ] 填写所有必填元数据 - [ ] 上传所有文件到正确位置 - [ ] 系统预览检查格式 - [ ] 确认提交并记录稿件编号 ``` ### Claude Code 辅助自查 ```bash # 投稿前全面检查 > 请帮我检查论文是否符合投稿要求: # # 目标期刊:Landscape and Urban Planning # 要求: # - 字数:5000-8000词 # - 图表:最多8个 # - 参考文献:不限但需相关 # - 格式:Elsevier LaTeX # # 请检查我的论文并指出需要修改的地方 # 生成投稿信 > 根据论文内容,帮我写一份投稿信: # 标题:[你的论文标题] # 期刊:Landscape and Urban Planning # 主要贡献:[简要描述] # # 要求:专业、简洁、突出创新性 # 生成 Highlights(如期刊要求) > 为我的论文生成 3-5 条 Highlights: # 每条不超过 85 个字符(含空格) # 突出核心发现和创新点 ``` --- ## 高级技巧 ### 1. Git 分支管理写作 ```bash # 为每个版本创建分支 git checkout -b draft-v1 # ... 写作 ... git checkout -b revision # ... 修改 ... git checkout master git merge revision # 比较版本差异 git diff draft-v1 revision ``` ### 2. Obsidian 模板系统 ```markdown # {{title}} ## 核心内容 ## 支撑材料 - 文献:{{bibliography}} - 数据:{{data}} - 代码:{{code}} ## 待办事项 - [ ] - [ ] ``` ### 3. Claude Code 自定义指令 ```markdown ## 写作风格偏好 - 使用简洁的学术语言 - 避免过度修饰 - 每段不超过5句话 - 主动语态优先 ## 常用术语翻译 - 生态网络: ecological network - 源地: source / habitat patch - 阻力面: resistance surface - 廊道: corridor - 景观连接度: landscape connectivity ``` --- ## 常见问题 ### Q1: 如何保持写作连贯性? **A**: 在 Obsidian 中使用 MOC (Map of Content) 和双向链接: ```markdown # 论文 MOC ## 相关笔记 - [[核心概念]] - [[方法笔记]] - [[文献笔记]] ## 进度跟踪 - [x] 引言 - [ ] 文献综述 (进行中) - [ ] 方法 ## 待办事项 - [ ] 补充XX文献 - [ ] 重写YY部分 ``` ### Q2: 如何高效处理审稿意见? **A**: 使用 Claude Code 辅助: ```bash # 逐条处理审稿意见 > 审稿人意见:"The method section lacks detail." # # 请帮我: # 1. 分析审稿人关注点 # 2. 列出需要补充的内容 # 3. 生成回复草稿 # 4. 指出需要修改的具体位置 ``` ### Q3: 如何避免学术不端? **A**: 1. **原创性**:自己写初稿,AI仅辅助润色 2. **引用规范**:所有引用明确标注 3. **查重**:投稿前使用查重工具 4. **保存记录**:Git 记录写作过程 --- ## 工具总结 | 任务 | 推荐工具 | 备选方案 | |-----|---------|---------| | 文献管理 | Zotero | Mendeley, EndNote | | 笔记整理 | Obsidian | Notion, Roam | | 文本编辑 | VSCode | Typora, Sublime | | AI辅助 | Claude Code | ChatGPT, Copilot | | 格式转换 | Pandoc | Word, LaTeX | | 版本控制 | Git | SVN | | 参考文献 | BibTeX | Zotero, EndNote | | 图表制作 | Python/R | Origin, Excel | --- ## 延伸资源 - **Pandoc 指南**:https://pandoc.org/MANUAL.html - **Zotero 文档**:https://www.zotero.org/support/ - **Obsidian 帮助**:https://help.obsidian.md/ - **学术写作指南**:各期刊的 Author Guidelines - **Claude Code 文档**:https://claudecode.io/zh --- ## 关键要点 1. **工具分工明确**:Obsidian管理知识,VSCode处理结构,Claude Code辅助写作 2. **版本控制重要**:Git 记录每次修改,方便回溯和对比 3. **模块化写作**:将论文拆分为小文件,逐个击破 4. **AI是助手**:AI辅助而非替代,保持学术诚信 5. **持续优化**:根据反馈不断改进工作流 > "好的工具让写作更高效,但思想永远来自你自己。"