数学建模竞赛论文 Typst 撰写阶段。根据 ANALYSIS_MODELING_REPORT.md、RESULTS_REPORT.md 和 figures/*.pdf 选择比赛模板、组织章节,并在论文正文中按章节直接插入图表。
---
name: 5writing
description: "数学建模竞赛论文 Typst 撰写阶段。根据 ANALYSIS_MODELING_REPORT.md、RESULTS_REPORT.md 和 figures/*.pdf 选择比赛模板、组织章节,并在论文正文中按章节直接插入图表。"
allowed-tools: Bash(*), Read, Write, Edit, Grep, Glob, Agent, WebSearch, WebFetch
---
# 竞赛论文 Typst 撰写
本 skill 承接 `3coding-visual` 和 `4drawio`。前序阶段只提供真实数据、图表 PDF 和记录文件;本阶段负责选择比赛模板、组织论文结构,并决定每张图表放入哪个章节。
调用 typst-author skill 学习 typst 写法
## 数学建模规范参考
如需领域判断,读取 `../_references/math_modeling_norms.md` 中的“论文写作”“图表与可视化”和“非数据图工具选择”小节。该文件只作为规范知识库,论文结构仍按比赛模板和当前赛题内容决定。
## 模板族
本技能内捆绑的 Typst 模板位于:
```text
templates/zh/<竞赛>/main.typ
templates/en/<竞赛>/main.typ
```
支持的中文模板:
```text
apmcm, changsanjiao, cumcm, default, diangongbei, dongsansheng,
huashubei, huaweibei, huazhongbei, mathorcup, mcm, shuweibei, stats, wuyibei
```
华为杯、华中杯、五一杯统一使用 `huaweibei`、`huazhongbei`、`wuyibei` 作为模板。
支持的英文模板:
```text
apmcm, default, mcm
```
论文中的所有数值图表结论必须来自 `reports/RESULTS_REPORT.md` 或 `figures/*`。不得编造、估算或使用不同的四舍五入方式。
## 工作流
### 步骤 0:选择语言和模板
除非用户明确要求中文,否则 MCM/ICM/COMAP 一律使用英文。所有中文竞赛名称使用中文。
模板键示例:
```text
长三角 -> zh/changsanjiao
APMCM 英文版 -> en/apmcm
全国赛/国赛/CUMCM -> zh/cumcm
统计建模 -> zh/stats
MCM/ICM/COMAP -> en/mcm
```
### 步骤 1:准备模板
用以下命令检查捆绑模板是否可访问(`SKILL_DIR` 为本 skill 所在目录):
```bash
ls "$SKILL_DIR/templates/zh/<竞赛>/main.typ" 2>/dev/null && echo "OK" || echo "MISSING"
```
- **文件存在(OK)**:直接将 `templates/zh/<竞赛>/` 或 `templates/en/<竞赛>/` 整目录复制到 `paper/`。这些模板是自包含入口文件,不依赖额外共享样式文件。
- **文件不存在(MISSING)**:说明 skill 未完整安装或在沙箱中,此时依照本 SKILL.md 步骤 3 列出的对应节文件结构,从零重建最小可编译 Typst 框架,并在 `paper/` 内注明"重建自 default 结构"。
存在匹配模板时,绝不从零开始写论文。
### 步骤 2:构建图表规划
在写正文各节之前,根据 `figures/*.pdf`、`reports/RESULTS_REPORT.md`,以及 `reports/DRAWIO_REPORT.md`(如果存在)构建图表规划:
```text
图表规划
fig_roadmap.pdf -> 引言/问题重述
fig_flow_q1.pdf -> 问题一模型构建
fig_flow_q2.pdf -> 问题二模型构建
fig_pipeline.pdf -> 数据预处理/方法节
结果图 -> 对应的结果节
```
然后使用 Typst 将已有的 PDF 图片直接嵌入相关的章节文件。注意 Typst 图片路径相对于写入该 `image(...)` 的 `.typ` 文件:写在 `paper/main.typ` 中通常用 `../figures/xxx.pdf`,写在 `paper/sections/*.typ` 中通常用 `../../figures/xxx.pdf`。
```typst
#figure(
image("../../figures/fig_q1_error_dist.pdf", width: 85%),
caption: [问题一预测误差分布],
)
```
英文论文使用英文图注。
### 步骤 3:撰写各节
中文数学建模通用模板各节文件(`changsanjiao`、`diangongbei`、`huashubei`、`mathorcup`、`wuyibei`):
```text
1_restatement.typ - 问题重述与分析
2_analysis.typ - 数据理解与总体思路
3_assumptions.typ - 模型假设
4_symbols.typ - 符号说明
5_problem1.typ - 问题一建模与求解
6_problem2.typ - 问题二建模与求解
7_problem3.typ - 问题三建模与求解
... - 根据题目调整问题数量
8_evaluation.typ - 灵敏度分析、模型评价与推广
A_code.typ - 附录代码
```
国赛/华中杯/华为杯(`cumcm`、`huazhongbei`、`huaweibei`)按
```text
1_restatement.typ
2_analysis.typ
3_assumptions.typ
4_symbols.typ
5_problem1.typ
6_problem2.typ
7_problem3.typ
... - 根据题目调整问题数量
8_sensitivity.typ
9_evaluation.typ
A_code.typ
```
东三省模板(`dongsansheng`)额外使用单独摘要文件:
```text
abstract.typ
1_restatement.typ
2_analysis.typ
3_assumptions.typ
4_symbols.typ
5_problem1.typ
6_problem2.typ
7_problem3.typ
... - 根据题目调整问题数量
8_evaluation.typ
A_code.typ
```
数维杯模板(`shuweibei`)保留原 LaTeX 的示例入口命名:
```text
Abstract.typ
Introduction.typ
2_analysis.typ
3_assumptions.typ
4_symbols.typ
5_problem1.typ
6_problem2.typ
7_problem3.typ
... - 根据题目调整问题数量
8_evaluation.typ
Appendices1.typ
A_code.typ
```
中文默认模板(`default`):
```text
1_restatement.typ
2_assumptions.typ
3_symbols.typ
4_problem1.typ
5_problem2.typ
6_problem3.typ
... - 根据题目调整问题数量
7_sensitivity.typ
8_evaluation.typ
A_code.typ
```
中文统计建模各节文件:
```text
1_introduction.typ
2_method.typ
3_data.typ
4_analysis.typ
5_results.typ
6_conclusion.typ
A_code.typ
```
英文 MCM/APMCM 各节文件(`en/mcm`、`en/apmcm`、`zh/mcm`、`zh/apmcm`):
```text
1_introduction.typ
2_assumptions.typ
3_model_design.typ
4_solution.typ
5_sensitivity.typ
6_strengths_weaknesses.typ
7_conclusions.typ
A_code.typ
```
英文默认模板(`en/default`)default:
```text
1_introduction.typ
2_assumptions.typ
3_notations.typ
4_model.typ
5_sensitivity.typ
6_evaluation.typ
7_conclusions.typ
A_code.typ
```
**正文写作应使用连贯的学术段落。避免在最终论文中出现工作流内部名称,如 `reports/`、`figures/` 或 `CLAUDE.md`。**
### 步骤 4:参考文献
创建 `paper/references.typ`。只使用真实存在的参考文献。
中文参考文献块:
```typst
#set enum(numbering: "[1]")
#enum[
作者. 题名[J]. 期刊名, 年份, 卷(期): 页码.
]
```
英文参考文献块:
```typst
#set enum(numbering: "[1]")
#enum[
Author. "Title." Journal or Conference, year.
]
```
只对真实存在的文献使用上标引用标记:
```typst
相关研究已用于物流网络优化#super("[1]")。
```
### 步骤 5:最后撰写摘要或总结
在所有章节完成后撰写中文摘要或英文 Summary Sheet。必须包含每个子问题的方法和精确的数值结果。
Creator's repository · jihe520/mathmodelagent