a90f7adfa1
将 Markdown 源文件移入 md/,LaTeX 工作目录保留在 latex/, Word 导出移入 word/;删除临时脚本、调试截图和空 stub。 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
26 KiB
26 KiB
附录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 配置
推荐扩展:
// .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 配置
// ~/.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 设置:
{
"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 文献笔记模板
---
type: literature
citekey: {{citekey}}
title: "{{title}}"
authors: {{authors}}
year: {{year}}
journal: {{publication}}
tags: [文献笔记, {{tags}}]
status: reading
---
# {{title}}
## 一句话总结
## 核心贡献
## 研究方法
## 主要发现
## 局限与展望
## 与我研究的关系
## 可引用的句子
## 相关文献
- [[相关文献1]]
- [[相关文献2]]
Claude Code 辅助文献阅读
# 在 Claude Code 中
# 1. 批量提取文献关键信息
> 帮我分析这个PDF,提取:研究目的、方法、主要发现、局限性
# [上传PDF或使用MCP访问文件]
# 2. 文献对比
> 对比这两篇文献的研究方法差异:
# 文献1: [[Smith2023-methods]]
# 文献2: [[Zhang2024-approach]]
# 3. 寻找研究缺口
> 基于以下文献摘要,分析当前研究的空白点:
# - [[文献1]]
# - [[文献2]]
# - [[文献3]]
# 4. 生成文献综述框架
> 根据我的文献笔记,生成一个"空间AI不确定性"主题的综述框架
阶段二:大纲构思与结构设计
在 Obsidian 中构建论文结构
# 论文大纲
## 摘要
- [[摘要-背景]]
- [[摘要-方法]]
- [[摘要-结果]]
- [[摘要-结论]]
## 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 辅助大纲设计
# 使用 Claude Code 优化大纲
> 我要写一篇关于"生态网络智能分析"的论文,目标期刊是Landscape and Urban Planning。
# 基于以下文献笔记,帮我生成一个详细大纲:
# - [[关键文献1]]
# - [[关键文献2]]
#
# 要求:
# 1. 符合目标期刊的结构要求
# 2. 突出方法创新点
# 3. 逻辑连贯
# 4. 每节说明预计字数
阶段三:内容撰写
VSCode + Claude Code 写作模式
VSCode 编辑区
│
│ 实时编辑
↓
Claude Code 侧边栏/终端
│
├── AI 辅助生成
├── 代码示例生成
├── 文献引用建议
└── 语言润色
写作技能配置
创建 .claude/skills/academic-writing.md:
---
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..."
实际写作示例
# 在 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 辅助代码生成
# 1. 生成分析代码
> 我需要对这个生态网络数据进行分析:
# - 计算节点连通性
# - 识别关键廊道
# - 评估网络鲁棒性
#
# 请生成 Python 代码,使用 networkx 和 geopandas
# 2. 生成可视化代码
> 帮我写代码生成这个图:
# - 三列布局:源地分布、阻力面、廊道网络
# - 使用 matplotlib
# - 符合学术出版要求(300dpi,标注清晰)
# 3. 生成表格
> 将这个结果转换为 LaTeX 表格格式:
# [粘贴结果]
# 4. 调试代码
> 这段代码有错误,帮我找出问题:
# [粘贴代码]
阶段五:初稿完成与格式转换
初稿完成检查点
在从 Markdown 转换到 Word/LaTeX 之前,确认:
# 初稿完成清单
## 内容完整性
- [ ] 各章节齐全(摘要→结论)
- [ ] 字数达到目标要求
- [ ] 图表数量合适
- [ ] 参考文献完整
## Markdown 格式规范
- [ ] 标题层级正确(# ## ###)
- [ ] 段落间有空行
- [ ] 列表格式正确
- [ ] 代码块标识清晰
- [ ] 图片路径正确
- [ ] 表格格式规范
## 引用规范
- [ ] 使用 BibTeX 或 CSL 引用
- [ ] 引用标识符 [@citekey] 正确
- [ ] 参考文献列表完整
## 准备转换
- [ ] Git 提交当前版本
- [ ] 创建格式转换分支
- [ ] 备份原始 Markdown 文件
Markdown → Word 转换
适用场景:导师审阅、多人协作修改
# 基础转换
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 转换
适用场景:期刊投稿、最终定稿
# 基础转换
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
常用期刊模板:
# 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 ...
保留样式的模板制作
# 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 修订模式使用
# Word 审阅功能
## 1. 开启修订模式
【审阅】选项卡 → 【修订】
→ 所有修改会被记录
## 2. 添加批注
选中文字 → 【审阅】→ 【新建批注】
→ 用于提出疑问或建议
## 3. 接受/拒绝修改
【审阅】→ 【接受】/【拒绝】
→ 逐条处理审稿意见
## 4. 比较文档
【审阅】→ 【比较】→ 选择原稿和修改稿
→ 查看所有改动
导师反馈整理
# 导师反馈后,使用 Claude Code 整理修改意见
> 我收到了导师的Word批注意见,请帮我整理成修改清单:
#
# 批注1:第3页第2段,方法描述不够详细
# 批注2:图1的坐标轴标注不清
# 批注3:第5页参考文献 [Smith2023] 引用格式错误
# ...
#
# 请按优先级排序,并给出每条的修改建议
Word 修改后回写到 Markdown
# 方法1:手动同步(推荐用于少量修改)
1. 在 Word 中查看修订
2. 在 VSCode Markdown 中对应修改
3. Git 提交修改记录
4. 重新生成 Word/LaTeX
# 方法2:Pandoc Word → Markdown(大量修改后)
pandoc revised.docx -o revised.md
# 注意:格式可能需要手动调整
阶段七:LaTeX 投稿准备
LaTeX 编译与调试
# 基础编译
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} |
投稿前最终检查
# 投稿前最终检查清单
## 文档检查
- [ ] 符合期刊字数要求
- [ ] 使用期刊模板
- [ ] 图表分辨率足够(300dpi)
- [ ] 补充材料完整
- [ ] 利益冲突声明已签署
## 元数据检查
- [ ] 作者信息完整(姓名、单位、邮箱)
- [ ] 通讯作者已标注
- [ ] 建议审稿人(3-5人,避免利益冲突)
- [ ] 推荐期刊/避免期刊(如有)
- [ ] 关键词已提供
## 文件检查
- [ ] 主文档 (Word/PDF)
- [ ] 图表文件(如要求单独上传)
- [ ] 补充材料/附件
- [ ] 投稿信 (Cover Letter)
- [ ] 许可协议表格
## 系统检查
- [ ] 注册期刊投稿系统账号
- [ ] 填写所有必填元数据
- [ ] 上传所有文件到正确位置
- [ ] 系统预览检查格式
- [ ] 确认提交并记录稿件编号
Claude Code 辅助自查
# 投稿前全面检查
> 请帮我检查论文是否符合投稿要求:
#
# 目标期刊:Landscape and Urban Planning
# 要求:
# - 字数:5000-8000词
# - 图表:最多8个
# - 参考文献:不限但需相关
# - 格式:Elsevier LaTeX
#
# 请检查我的论文并指出需要修改的地方
# 生成投稿信
> 根据论文内容,帮我写一份投稿信:
# 标题:[你的论文标题]
# 期刊:Landscape and Urban Planning
# 主要贡献:[简要描述]
#
# 要求:专业、简洁、突出创新性
# 生成 Highlights(如期刊要求)
> 为我的论文生成 3-5 条 Highlights:
# 每条不超过 85 个字符(含空格)
# 突出核心发现和创新点
高级技巧
1. Git 分支管理写作
# 为每个版本创建分支
git checkout -b draft-v1
# ... 写作 ...
git checkout -b revision
# ... 修改 ...
git checkout master
git merge revision
# 比较版本差异
git diff draft-v1 revision
2. Obsidian 模板系统
<!-- templates/section.md -->
# {{title}}
## 核心内容
## 支撑材料
- 文献:{{bibliography}}
- 数据:{{data}}
- 代码:{{code}}
## 待办事项
- [ ]
- [ ]
3. Claude Code 自定义指令
<!-- .claude/instructions.md -->
## 写作风格偏好
- 使用简洁的学术语言
- 避免过度修饰
- 每段不超过5句话
- 主动语态优先
## 常用术语翻译
- 生态网络: ecological network
- 源地: source / habitat patch
- 阻力面: resistance surface
- 廊道: corridor
- 景观连接度: landscape connectivity
常见问题
Q1: 如何保持写作连贯性?
A: 在 Obsidian 中使用 MOC (Map of Content) 和双向链接:
# 论文 MOC
## 相关笔记
- [[核心概念]]
- [[方法笔记]]
- [[文献笔记]]
## 进度跟踪
- [x] 引言
- [ ] 文献综述 (进行中)
- [ ] 方法
## 待办事项
- [ ] 补充XX文献
- [ ] 重写YY部分
Q2: 如何高效处理审稿意见?
A: 使用 Claude Code 辅助:
# 逐条处理审稿意见
> 审稿人意见:"The method section lacks detail."
#
# 请帮我:
# 1. 分析审稿人关注点
# 2. 列出需要补充的内容
# 3. 生成回复草稿
# 4. 指出需要修改的具体位置
Q3: 如何避免学术不端?
A:
- 原创性:自己写初稿,AI仅辅助润色
- 引用规范:所有引用明确标注
- 查重:投稿前使用查重工具
- 保存记录: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
关键要点
- 工具分工明确:Obsidian管理知识,VSCode处理结构,Claude Code辅助写作
- 版本控制重要:Git 记录每次修改,方便回溯和对比
- 模块化写作:将论文拆分为小文件,逐个击破
- AI是助手:AI辅助而非替代,保持学术诚信
- 持续优化:根据反馈不断改进工作流
"好的工具让写作更高效,但思想永远来自你自己。"