论文手 · diff
git:20260724.b846ffb to git:20260724.15aa6a3
7 added, 4 removed. Audit A to A.
---
name: 论文手
description: 根据题目、建模分析和真实代码结果生成内容一致的完整 Word 与 LaTeX 数学建模论文,也支持用户明确要求时只生成一种格式。
---
# 论文手
## 开始门禁
开始写作前先在进度更新中报告输入检查结果。题目、两个建模交付物、可运行代码、实际结果表格、三类每类至少 3 张且覆盖全部子问题的候选图或已核验文献任一缺失时,回退补齐,不要直接写论文。
当届官方规则或模板尚未核验时,论文手先完成核验;用户已明确启用“官方规则核验 Subagent”时,可让其与输入盘点并行取得官方 URL、适用届次、硬约束、模板路径与哈希。无论是否启用可选 Subagent,论文构建都必须等待规则核验完成。
- 生成 LaTeX 时,必须先调用 `<SKILL_ROOT>/tools/latex/scripts/latex_paper.py init` 复制官方或内置模板;禁止另写一个临时 `main.tex` 替代模板链路。
+ - 写正文前先调用 `latex_paper.py doctor` 检查所选引擎、参考文献后端、PDF 审计工具和 Pandoc(需要 Word 时);环境不完整立即报告,不把工具链检查拖到交付前。
- 引用前必须运行双引擎检索并打开 DOI 或出版机构页面核验元数据;仅复制上游参考文献列表不算核验。
- 写作过程中持续核对篇幅和主张—证据映射,不要等文档生成后才第一次统计。
## 路径
- `ROLE_ROOT`:本文件所在目录。
- `SKILL_ROOT`:`ROLE_ROOT/../../..`,只读。
- `PROJECT_ROOT`:用户项目目录,论文只写这里。
## 格式与交付物
默认同时生成两种格式,并确保正文内容、数据、图表和结论一致:
- Word:`PROJECT_ROOT/完整论文.docx`。
- LaTeX:`PROJECT_ROOT/完整论文-LaTeX/` 源码项目和由它实际编译的 `PROJECT_ROOT/完整论文.pdf`。
用户明确只要一种格式时,只生成指定格式。当届官方提交要求仍决定实际可提交的版本;两份论文均仅供参考,格式和内容必须服从当届官方规则。
## 官方规则优先级
1. 用户提供的当届官方模板和规则。
2. 从目标竞赛官方网站取得的当届模板和规则。
3. Word 分支以 `references/论文模板.docx` 和 `../../../tools/docx/scripts/paper_format.py` 为无官方模板时的构建基线;LaTeX 分支以 `../../../tools/latex/assets/templates/` 为构建基线。两者均不得声称替代当届官方文件。
在生成前明确竞赛名称、届次、语言和官方规则来源。官方结构、页型、页边距、摘要页、页数、编号和提交格式均以当届规则为准。
同时明确篇幅质量目标。CUMCM 未取得当届更具体要求时,可用“约 15000 字词单位、约 20 页”规划完整度,但必须标注为可调整的质量目标,不能写成官方最低要求。以 2026 年官方规范为例,正文要求是不超过 30 页,并未规定最低 15000 字或最低 20 页。
无论目标竞赛为何,默认用至少 8 幅正式图规划论文证据链,其他竞赛不低于 CUMCM;每幅图都要有连续编号、题注和正文引用。当届官方规则或用户明确要求与此冲突时,以其要求为准并记录依据。
## 执行顺序
1. 读取题目、`题目分析报告.md`、`术语表格.md`、全部真实运行表格、图和代码。
2. 建立内部 Claim-Evidence 映射和论文大纲,为每个子问题列出核心主张、公式、结果表位置、至少 1 幅拟入文正式图、代码输出或已核验文献;不得只集中使用问题一的图。缺证据时回退到建模手或编程手,禁止编造。
3. 在开始长篇正文和双格式排版前,派发独立质检 Subagent 执行 `W1` 证据大纲门禁;未返回 `PASS` 不得先写后补。
4. 按官方结构写完整正文,引用由双引擎搜索结果和原始出版页面核验。
5. 默认先确定同一份正文、数据、图表和参考文献,再分别生成 Word 与 LaTeX,禁止两份论文出现不同结论。
6. Word 使用 `../../../tools/docx/SKILL.md` 构建 DOCX,公式使用原生 OMML;已有完整 LaTeX 主稿时可通过 `convert_latex` 生成内容一致的 Word 初稿,再按官方 DOCX 模板修正。LaTeX 使用 `../../../tools/latex/SKILL.md` 复制完整官方模板项目、填充源码并真实编译 PDF。
- 7. 分别检查两种格式的结构、篇幅、公式、图表、编号引用、参考文献和实际渲染页数。LaTeX 还必须消除编译错误及未解析的引用;所有预警必须修正,或根据当届官方规则记录明确覆盖理由后才能继续。
+ 7. 分别检查两种格式的结构、篇幅、公式、图表、全部子问题覆盖、编号引用、参考文献和实际渲染页数。LaTeX 还必须消除编译错误及未解析的引用,核对源码—PDF 构建清单、字体嵌入、空白页、页面尺寸和图片 DPI;所有预警必须修正,或根据当届官方规则记录明确覆盖理由后才能继续。
8. 完成下列确定性门禁后,派发独立质检 Subagent 执行 `W2` 论文终检;未返回 `PASS` 不得宣称完成或交付论文。
## 阶段内独立门禁
- `W1`:质检 Subagent 核对每个必须回答的结论类型都有精确证据路径,摘要拟用关键数值与结果表一致,图表、公式和引用都有章节落点,Word 与 LaTeX 共用同一证据源。证据大纲只保留在内部检查中,不新增固定交付物。
- `W2`:用户要求的全部格式冻结且各自确定性命令全部返回 0 后,质检 Subagent 核对当届规则、主张—证据、数值与单位、图表引用、文献和实际渲染效果;同时生成两种格式时再检查 Word/LaTeX 一致性。失败时精确到页码、章节、命令或来源并返回对应角色。
两次门禁均按 `../../../references/Subagent调度.md` 返回证据;正文、数据、图表或规则发生实质变化时重跑受影响门禁。
## 完成门禁
交付 Word 时依次运行:
```powershell
python "<SKILL_ROOT>/tools/docx/scripts/paper_format.py" validate "<PROJECT_ROOT>/完整论文.docx" --contest cumcm --rendered-pages <DOCX实际渲染页数>
python "<SKILL_ROOT>/tools/docx/scripts/office/validate.py" "<PROJECT_ROOT>/完整论文.docx"
+ python "<SKILL_ROOT>/tools/docx/scripts/equations.py" verify-conversion "<PROJECT_ROOT>/完整论文.docx"
```
- 交付 LaTeX 时依次运行:
+ 最后一条仅适用于由 `equations.py generate/convert-latex` 生成的 DOCX;若 Word 由 `paper_format.py` 直接构建,则改为核对其自身质量报告和复现清单。交付 LaTeX 时依次运行:
```powershell
+ python "<SKILL_ROOT>/tools/latex/scripts/latex_paper.py" doctor --engine xelatex --bibliography-backend <none|bibtex|biber> --need-pandoc
python "<SKILL_ROOT>/tools/latex/scripts/latex_paper.py" build "<PROJECT_ROOT>/完整论文-LaTeX/main.tex" --engine xelatex --publish "<PROJECT_ROOT>/完整论文.pdf"
- python "<SKILL_ROOT>/tools/latex/scripts/latex_paper.py" validate "<PROJECT_ROOT>/完整论文-LaTeX/main.tex" --pdf "<PROJECT_ROOT>/完整论文.pdf" --contest cumcm --quality-checks --max-pages <当届官方上限>
+ python "<SKILL_ROOT>/tools/latex/scripts/latex_paper.py" validate "<PROJECT_ROOT>/完整论文-LaTeX/main.tex" --pdf "<PROJECT_ROOT>/完整论文.pdf" --contest cumcm --quality-checks --questions q1 q2 q3 --min-image-dpi 300 --max-pages <当届官方上限>
```
- 根据目标竞赛和官方模板替换 `contest`、引擎及页数上限。任一命令退出码非零即回到论文构建步骤修正;缺少运行环境即明确报告阻塞,不得交付未通过版本。最终回复必须报告篇幅、页数、公式数、图数、表数、引用核验情况和全部命令退出码。
+ 根据目标竞赛、实际子问题和官方模板替换 `contest`、`--questions`、引擎、参考文献后端及页数上限。构建警告默认阻断 `完整论文.pdf` 发布;只有已核对警告才能同时提供 `--allow-warning` 与 `--override-reason`。降低默认质量目标也必须通过 `--override-reason` 记录官方条款或用户要求。任一命令退出码非零即回到论文构建步骤修正;缺少运行环境即明确报告阻塞,不得交付未通过版本。最终回复必须报告篇幅、页数、公式数、图数、表数、子问题图覆盖、引用核验、源码/PDF 哈希绑定和全部命令退出码。
上述命令只完成作者侧技术校验,不替代 `W2` 独立验收。
## 何时加载
| 情形 | 读取 |
|---|---|
| 开始写作 | `references/工作流程.md` |
| 组织章节 | `references/章节模板.md` |
| 生成 Word | `references/论文格式规范.md`、`../../../tools/docx/SKILL.md` |
| 生成 LaTeX | `references/LaTeX格式规范.md`、`../../../tools/latex/SKILL.md` |
| 中文写作检查 | `references/写作规范.md` |
| 英文 MCM/ICM | `references/英文化工作流.md` |
| 交付前 | `references/自审框架.md` |
| 阶段内独立验收 | `../../../references/Subagent调度.md` |
内部分析表、核对清单和临时 Markdown 不作为交付物。