Skill v1.0.1
currentAutomated scan100/100+2 new
version: "1.0.1" name: 5writing description: "数学建模竞赛论文撰写阶段,支持 Typst 和 LaTeX 双引擎。根据 ANALYSIS_MODELING_REPORT.md、RESULTS_REPORT.md 和 figures/.pdf 选择比赛模板、排版引擎、组织章节,并在论文正文中按章节直接插入图表。" allowed-tools: Bash(), Read, Write, Edit, Grep, Glob, Agent, WebSearch, WebFetch
竞赛论文撰写(Typst / LaTeX)
本 skill 承接 3coding-visual 和 4drawio。前序阶段只提供真实数据、图表 PDF 和记录文件;本阶段负责选择比赛模板和排版引擎、组织论文结构,并决定每张图表放入哪个章节。
Typst 引擎下可调用 typst-author skill 学习 typst 写法;LaTeX 引擎参考本文件末尾的"LaTeX 写作要点"小节。
数学建模规范参考
如需领域判断,读取 ../_references/math_modeling_norms.md 中的“论文写作”“图表与可视化”和“非数据图工具选择”小节。该文件只作为规范知识库,论文结构仍按比赛模板和当前赛题内容决定。
模板族
本技能内捆绑的模板位于:
templates/zh/<竞赛>/main.typ # Typst 模板templates/zh/<竞赛>-latex/main.tex # LaTeX 模板templates/en/<竞赛>/main.typ # Typst 模板templates/en/<竞赛>-latex/main.tex # LaTeX 模板
LaTeX 模板覆盖范围:所有中文模板和英文模板均已提供 LaTeX 版本(-latex 后缀),使用 xelatex 编译。
支持的中文模板(Typst + LaTeX 双版本):
apmcm, changsanjiao, cumcm, default, diangongbei, dongsansheng,huashubei, huaweibei, huazhongbei, mathorcup, mcm, shuweibei, stats, wuyibei
华为杯、华中杯、五一杯统一使用 huaweibei、huazhongbei、wuyibei 作为模板。
支持的英文模板(Typst + LaTeX 双版本):
apmcm, default, mcm
论文中的所有数值图表结论必须来自 reports/RESULTS_REPORT.md 或 figures/*。不得编造、估算或使用不同的四舍五入方式。
工作流
步骤 0:确定排版引擎
撰写论文前必须让用户选择排版引擎。 引擎决定后续所有步骤(模板路径、章节文件扩展名、图片插入语法、编译命令),选错会导致整篇论文格式错误。
使用 AskUserQuestion 工具向用户询问:"撰写论文使用哪种排版引擎?"
- 选项 1:LaTeX(xelatex 编译,数学建模竞赛主流,模板已全部就绪)— 推荐选项放第一位
- 选项 2:Typst(typst 编译,调用 typst-author skill 辅助写作)
询问前先读取 plan.md 的"用户偏好 → 排版引擎"字段作为预选项:
- 若 plan.md 已记录引擎选择,向用户确认:"检测到之前选择的引擎是 <LaTeX/Typst>,是否沿用?"
- 若 plan.md 不存在或未记录引擎选择,直接询问用户选择。
- 若用户未明确指定或跳过,默认使用 LaTeX。
根据确定的引擎选择对应模板族:
- Typst 引擎:使用
templates/<lang>/<竞赛>/main.typ,调用 typst-author skill。编译命令typst compile main.typ。 - LaTeX 引擎:使用
templates/<lang>/<竞赛>-latex/main.tex,xelatex 编译(中文和英文均需跑两遍解决交叉引用)。编译命令xelatex -interaction=nonstopmode main.tex(执行两次)。
后续步骤中的所有代码示例、文件扩展名、图片插入语法都必须按所选引擎选择对应版本,不要混用。
步骤 1:选择语言和模板
除非用户明确要求中文,否则 MCM/ICM/COMAP 一律使用英文。所有中文竞赛名称使用中文。
模板键示例(Typst 引擎):
长三角 -> zh/changsanjiaoAPMCM 英文版 -> en/apmcm全国赛/国赛/CUMCM -> zh/cumcm统计建模 -> zh/statsMCM/ICM/COMAP -> en/mcm
模板键示例(LaTeX 引擎):
全国赛/国赛/CUMCM -> zh/cumcm-latexMCM/ICM/COMAP -> en/mcm-latex
步骤 2:准备模板
用以下命令检查捆绑模板是否可访问(SKILL_DIR 为本 skill 所在目录):
Typst 模板:
ls "$SKILL_DIR/templates/zh/<竞赛>/main.typ" 2>/dev/null && echo "OK" || echo "MISSING"
- 文件存在(OK):直接将
templates/zh/<竞赛>/整目录复制到paper/。这些模板是自包含入口文件,不依赖额外共享样式文件。 - 文件不存在(MISSING):说明 skill 未完整安装或在沙箱中,此时依照本 SKILL.md 步骤 3 列出的对应节文件结构,从零重建最小可编译 Typst 框架,并在
paper/内注明"重建自 default 结构"。
存在匹配模板时,绝不从零开始写论文。
LaTeX 模板:
ls "$SKILL_DIR/templates/zh/<竞赛>-latex/main.tex" 2>/dev/null && echo "OK" || echo "MISSING"
- 文件存在(OK):将
templates/zh/<竞赛>-latex/整目录复制到paper/。 - 文件不存在(MISSING):说明 skill 未完整安装或在沙箱中,此时依照本 SKILL.md 步骤 3 列出的对应节文件结构,从零重建最小可编译 LaTeX 框架,并在
paper/内注明"重建自 default-latex 结构"。
步骤 3:构建图表规划
在写正文各节之前,根据 figures/*.pdf、reports/RESULTS_REPORT.md,以及 reports/DRAWIO_REPORT.md(如果存在)构建图表规划:
图表规划fig_roadmap.pdf -> 引言/问题重述fig_flow_q1.pdf -> 问题一模型构建fig_flow_q2.pdf -> 问题二模型构建fig_pipeline.pdf -> 数据预处理/方法节结果图 -> 对应的结果节
图片路径相对于写入该图片的文件:写在 paper/main.typ 或 paper/main.tex 中通常用 ../figures/xxx.pdf,写在 paper/sections/*.typ 或 paper/sections/*.tex 中通常用 ../../figures/xxx.pdf。
Typst 引擎图片插入:
#figure(image("../../figures/fig_q1_error_dist.pdf", width: 85%),caption: [问题一预测误差分布],)
LaTeX 引擎图片插入:
\begin{figure}[H]\centering\includegraphics[width=0.85\textwidth]{../../figures/fig_q1_error_dist.pdf}\caption{问题一预测误差分布}\label{fig:q1_error}\end{figure}
英文论文使用英文图注。
步骤 4:撰写各节
以下章节文件名按所选引擎使用 `.typ`(Typst)或 `.tex`(LaTeX)扩展名。 例如 Typst 引擎用 1_restatement.typ,LaTeX 引擎用 1_restatement.tex。文件名主体保持一致。
中文数学建模通用模板各节文件(changsanjiao、diangongbei、huashubei、mathorcup、wuyibei):
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)按以下章节结构:
1_restatement.typ2_analysis.typ3_assumptions.typ4_symbols.typ5_problem1.typ6_problem2.typ7_problem3.typ... - 根据题目调整问题数量8_sensitivity.typ9_evaluation.typA_code.typ
东三省模板(dongsansheng)额外使用单独摘要文件:
abstract.typ1_restatement.typ2_analysis.typ3_assumptions.typ4_symbols.typ5_problem1.typ6_problem2.typ7_problem3.typ... - 根据题目调整问题数量8_evaluation.typA_code.typ
数维杯模板(shuweibei)保留原 LaTeX 的示例入口命名:
Abstract.typIntroduction.typ2_analysis.typ3_assumptions.typ4_symbols.typ5_problem1.typ6_problem2.typ7_problem3.typ... - 根据题目调整问题数量8_evaluation.typAppendices1.typA_code.typ
中文默认模板(default):
1_restatement.typ2_assumptions.typ3_symbols.typ4_problem1.typ5_problem2.typ6_problem3.typ... - 根据题目调整问题数量7_sensitivity.typ8_evaluation.typA_code.typ
中文统计建模各节文件:
1_introduction.typ2_method.typ3_data.typ4_analysis.typ5_results.typ6_conclusion.typA_code.typ
英文 MCM/APMCM 各节文件(en/mcm、en/apmcm、zh/mcm、zh/apmcm):
1_introduction.typ2_assumptions.typ3_model_design.typ4_solution.typ5_sensitivity.typ6_strengths_weaknesses.typ7_conclusions.typA_code.typ
LaTeX 模板章节文件(对应 -latex 后缀模板,结构与 Typst 版本一一对应):
国赛 LaTeX 模板(zh/cumcm-latex,对应 cumcm Typst 版本):
1_restatement.tex2_analysis.tex3_assumptions.tex4_symbols.tex5_problem1.tex6_problem2.tex7_problem3.tex8_sensitivity.tex9_evaluation.texA_code.tex
MCM/ICM LaTeX 模板(en/mcm-latex):
1_introduction.tex2_assumptions.tex3_model_design.tex4_solution.tex5_sensitivity.tex6_strengths_weaknesses.tex7_conclusions.texA_code.tex
其余 LaTeX 模板(changsanjiao-latex、default-latex、huashubei-latex、mathorcup-latex、wuyibei-latex、huazhongbei-latex、huaweibei-latex、diangongbei-latex、dongsansheng-latex、shuweibei-latex、stats-latex、apmcm-latex、mcm-latex、en/apmcm-latex、en/default-latex)的章节文件命名与上述结构类似,以 main.tex 中 \input{} 引用的文件名为准。
英文默认模板(en/default):
1_introduction.typ2_assumptions.typ3_notations.typ4_model.typ5_sensitivity.typ6_evaluation.typ7_conclusions.typA_code.typ
正文写作应使用连贯的学术段落。避免在最终论文中出现工作流内部名称,如 `reports/`、`figures/` 或 `CLAUDE.md`。
步骤 5:参考文献
只使用真实存在的参考文献。文件名按引擎选择:Typst 用 paper/references.typ,LaTeX 用 paper/references.tex。
Typst 引擎:
#set enum(numbering: "[1]")#enum[作者. 题名[J]. 期刊名, 年份, 卷(期): 页码.Author. "Title." Journal or Conference, year.]
正文上标引用:相关研究已用于物流网络优化#super("[1]")。
LaTeX 引擎:
\begin{thebibliography}{99}\bibitem{ref1} 作者. 题名[J]. 期刊名, 年份, 卷(期): 页码.\bibitem{ref2} Author. "Title." Journal, year.\end{thebibliography}
正文引用用 \cite{ref1} 或 \cite{ref1,ref2}。
步骤 6:最后撰写摘要或总结
在所有章节完成后撰写中文摘要或英文 Summary Sheet。必须包含每个子问题的方法和精确的数值结果。
LaTeX 写作要点
以下要点供 LaTeX 引擎使用。Typst 引擎请调用 typst-author skill 获取语法帮助。
编译命令
# 中文模板(xelatex,跑两遍解决交叉引用)xelatex main.tex && xelatex main.tex# 英文模板(xelatex,同样跑两遍)xelatex main.tex && xelatex main.tex
文档结构
\documentclass[a4paper,12pt]{article} % 英文\documentclass[a4paper,12pt]{ctexart} % 中文\usepackage{...} % 宏包加载\usepackage{graphicx} % 图片支持\usepackage{booktabs} % 三线表\usepackage{amsmath,amssymb} % 数学公式\usepackage{hyperref} % 交叉引用(需两遍编译)
图表插入
\begin{figure}[H]\centering\includegraphics[width=0.85\textwidth]{../../figures/fig_q1.pdf}\caption{图注}\label{fig:q1}\end{figure}% 三线表\begin{table}[htbp]\centering\caption{表注}\begin{tabular}{ccc}\toprule\textbf{列1} & \textbf{列2} & \textbf{列3} \\\midrule数据 & 数据 & 数据 \\\bottomrule\end{tabular}\end{table}
交叉引用
如图~\ref{fig:q1}所示,... % 图片引用式~(\ref{eq:objective}) 给出... % 公式引用见第~\pageref{fig:q1} 页 % 页码引用
数学公式
行内公式:$f(x) = \sum_{i=1}^n \theta_i \phi_i(x)$行间公式:\begin{equation}\mathcal{L}(\theta) = \frac{1}{N}\sum_{i=1}^N (y_i - \hat{y}_i)^2\label{eq:objective}\end{equation}
章节和强调
\section{问题重述}\subsection{问题背景}\textbf{问题一:} xxx % 对应 Typst 的 #strong