mem-thesis-build · git:20260704.d00de62 · 2026-07-04 · sha256 2989056d50625fba
mem-thesis-build git:20260704.d00de62A
Immutable. This exact content never changes and is served at /api/v1/blob/2989056d50625fba.
--- name: mem-thesis-build description: >- ZJU MEM 论文 LaTeX 编译。格式预检→环境验证→四遍编译→PDF输出验证。支持 quick/full/clean 模式。 触发词:编译论文、build thesis、编译、生成PDF、LaTeX、xelatex。 argument-hint: "[quick|full|clean]" allowed-tools: Read, Bash --- # ZJU MEM 论文 LaTeX 编译 基于 zjuthesis 模板的完整编译工作流。 ## 模板与环境 ### 模板路径 论文 LaTeX 源码位于项目 `zjuthesis/` 目录,主文件 `zjuthesis.tex`。典型结构: ``` zjuthesis/ ├── zjuthesis.tex # 主文件 ├── body/ref.bib # 参考文献 ├── body/graduate/master/ # 正文章节 (chapter1-7.tex) ├── page/graduate/ # 封面/摘要/声明等 └── config/ # 格式/命令/宏包配置 ``` ### 编译环境要求 - **XeLaTeX**:TeX Live 2024+(Mac: MacTeX,Windows: TeX Live,Linux: `apt install texlive-xetex`) - **Biber**:参考文献编译(通常随 TeX Live 安装) - **中文字体**:宋体(SimSun/STSong)、黑体(SimHei/STHeiti)、仿宋(FangSong/STFangsong)、楷体(KaiTi/STKaiti) - Mac:系统自带,无需额外安装 - Windows:系统自带 - Linux:`apt install fonts-wqy-zenhei fonts-wqy-microhei` - **可选**:`latexmk`(自动化编译)、`pygmentize`(代码高亮) ### 环境验证 ```bash which xelatex && xelatex --version | head -1 which biber && biber --version | head -1 fc-list :lang=zh | grep -i "song\|simsun\|宋" | head -1 fc-list :lang=zh | grep -i "hei\|simhei\|黑" | head -1 ``` ## 编译流程 ### Step 1: 格式预检 编译前快速检查 `references/zju-format-rules.md`(完整预检清单与 PDF 输出验证清单见 `references/build-precheck-and-verification.md`): - [ ] 图表自明性:图题下图上方表,按章编号(图 X.Y / 表 X.Y) - [ ] 三线表(顶线、栏目线、底线) - [ ] 章节编号阿拉伯数字(1, 1.1, 1.1.1) - [ ] 参考文献 GB/T 7714-2015,全文统一 - [ ] 公式独立成行,编号右对齐 ### Step 2: 四遍编译 ```bash cd <项目路径>/zjuthesis export PATH="/Library/TeX/texbin:$PATH" # Mac 加此条 # 1. 生成 aux + toc xelatex -interaction=nonstopmode zjuthesis # 2. 处理参考文献 biber zjuthesis # 3. 插入引用 + 交叉引用 xelatex -interaction=nonstopmode zjuthesis # 4. 最终解决所有引用 xelatex -interaction=nonstopmode zjuthesis ``` ### Step 3: 错误诊断 编译失败时读 `.log` 文件: | 错误 | 原因 | 解决 | |------|------|------| | `Undefined control sequence` | 未定义命令 | 检查拼写,确认宏包已加载 | | `Citation XXX undefined` | 引用 key 不存在 | 检查 .bib;重跑 biber | | `Font ... not found` | 缺中文字体 | 安装对应字体 | | `Overfull \hbox` | 文字超版心(警告) | 调整断词或手动断行 | | `File XXX not found` | 缺少文件 | 检查 input/include 路径 | ### Step 4: PDF 验证 - [ ] PDF 成功生成,3-10MB - [ ] 封面信息正确(题目/姓名/学号/导师/学院) - [ ] **学位类型正确**(专业硕士易错,见下方陷阱) - [ ] 目录页码与正文一致 - [ ] 图表编号连续,无空白页 > **⚠️ 专业学位封面陷阱(MEM/MBA/MPA 等)**:zjuthesis 模板用 `zjuthesis.tex` 的 `Type` 字段区分学位类型—— > - **专业学位**须设 `Type=design`:封面显示「硕士专业学位论文」+「专业学位类别/专业学位领域」(`\Major`/`\Topic` 分别填类别与领域); > - **学术学位**才用 `Type=thesis`:封面显示「硕士学位论文」+「学科(专业)/研究方向」。 > > `graduate/master` 下的 `design` 分支只改封面标题与字段标签,**不会**触发本科模板里的「毕业设计」字样(那仅在本科评分表)。若封面出现「专业学位类别/领域」字段却仍写「硕士学位论文」,即为 `Type` 设成了 `thesis` 的混搭错误。 ## 参数模式 | 参数 | 行为 | |------|------| | `quick` | 仅一遍 xelatex(快速预览) | | `full`(默认) | 四遍编译(xelatex→biber→xelatex→xelatex) | | `clean` | 清理辅助文件后重新四遍编译 |