版本:1.0.8。此版本在 1.0.7 的终校验基础上,修复 CUMCM 中文图表题名冒号和附录编号显示;同时保留 1.0.5 的 ref.bib 与交叉引用修复基础上,进一步移除 CUMCM 模板中的“总体思路”小节,并新增关键词约束:关键词必须优先选用数学建模教材和竞赛论文中常见的模型、方法、算法、评价或检验术语,避免把题目对象或行业场景直接作为关键词。
这是一个给 Codex 和 Claude Code 使用的 skill,用来生成和检查美赛 MCM/ICM、国赛 CUMCM 的 LaTeX 数学建模论文项目。
它不是一个单独发布的 LaTeX 模板包,而是一组给 AI 编程助手读取的工作规则、模板和检查脚本。安装后,你可以直接让 Codex 或 Claude Code 按比赛类型生成论文项目,并让它处理模板选择、引用方式、匿名信息检查和编译前检查。
- 生成 MCM/ICM 英文论文项目。
- 生成 CUMCM 中文论文项目,并默认采用优秀论文常见章节命名与写法,避免教学式或说明文式章节。
- 在
mcmthesis、cumcmthesis兼容类、ctexartfallback 之间做稳定选择。 - 默认使用
ref.bib/ BibTeX 管理参考文献,并提供引用键检查;模板不再放置活动的手写参考文献块。 - 检查摘要关键词是否为数学建模相关术语,避免使用“农作物种植策略”等题目对象词作为关键词。
- 避免默认写入学校、队员、导师、赛区等真实身份信息。
- 提供 PDF 页数、大小和身份关键词风险的提交前检查脚本,默认预警,最终提交前可切到严格模式。
把整个 mathmodel-latex-skill 文件夹复制到对应助手的 skills 目录下。文件夹名建议保持为 mathmodel-latex-skill。
Windows PowerShell 示例:
$skills = "$env:USERPROFILE\.codex\skills"
New-Item -ItemType Directory -Force $skills | Out-Null
Copy-Item -Recurse -Force . "$skills\mathmodel-latex-skill"WSL / macOS / Linux 示例:
mkdir -p "${CODEX_HOME:-$HOME/.codex}/skills"
cp -R . "${CODEX_HOME:-$HOME/.codex}/skills/mathmodel-latex-skill"如果你使用 cc-switch 管理 Claude Code skills,放到 .cc-switch/skills。
Windows PowerShell 示例:
$skills = "$env:USERPROFILE\.cc-switch\skills"
New-Item -ItemType Directory -Force $skills | Out-Null
Copy-Item -Recurse -Force . "$skills\mathmodel-latex-skill"WSL / macOS / Linux 示例:
mkdir -p "$HOME/.cc-switch/skills"
cp -R . "$HOME/.cc-switch/skills/mathmodel-latex-skill"如果你的 Claude Code 使用其他 skills 目录,请复制到你实际配置的 skills 路径。
安装后建议开启一个新会话,让新 skill 被重新发现。
在 Codex 或 Claude Code 里直接描述你的数学建模论文任务即可。可以显式提到 skill 名,也可以只描述比赛类型。
示例:
使用 mathmodel-latex-skill,给我创建一份 MCM/ICM A 题论文项目,启用 ref.bib。
使用 mathmodel-latex-skill,生成国赛 CUMCM 电子版论文模板;如果没有 cumcmthesis,就用 ctexart fallback。
用这个 skill 检查我的 CUMCM 论文 PDF,确认页数、大小和身份信息风险。
- 复制整个
mathmodel-latex-skill文件夹到 Codex 或 Claude Code 的 skills 目录。 - 新建一个空论文项目目录,让助手按比赛类型复制对应模板。
- 检查 LaTeX 环境:
python scripts/check_latex_env.py --contest mcm-icm
python scripts/check_latex_env.py --contest cumcm
python scripts/check_latex_env.py --contest cumcm --strict-class
python scripts/check_latex_env.py --contest mcm-icm --use-ref-bib
python scripts/check_latex_refs.py main.tex --bib ref.bib
python scripts/check_latex_keywords.py main.tex- 根据检查结果选择
mcmthesis、内置轻量cumcmthesis兼容类,或 CUMCM 的ctexartfallback。 - 编译:MCM/ICM 可用
latexmk -pdf main.tex;CUMCM 中文模板应使用latexmk -xelatex main.tex,或在携带本 skill 的latexmkrc时使用latexmk main.tex。不要用latexmk -pdf编译 CUMCM 中文模板,因为它会强制走 pdfLaTeX。 - 运行 PDF preflight:
python scripts/check_pdf.py main.pdf --identity-mode warn
python scripts/check_pdf.py main.pdf --identity-mode strict
python scripts/check_pdf.py main.pdf --ignore-keyword University --ignore-keyword 大学- 人工核查匿名信息、当年官方规则、页数/大小限制、AI 使用说明和支撑材料清单。
contest:比赛类型。常用值是 MCM/ICM 或 CUMCM。
参考文献模式:默认且推荐使用 ref.bib。正文用 \cite{...} 引用,文献信息统一写入 ref.bib;若用户明确要求不用 BibTeX,再由助手另行生成手写 thebibliography,不要在同一主文件中混用两套模式。
strict_class:是否严格要求类文件。CUMCM 模板目录内置一个轻量 cumcmthesis.cls 兼容类;如果项目中删除或替换了它,仍可回退到 ctexart fallback。若你要求使用第三方/官方风格的完整 cumcmthesis,应自行提供并核验其授权、字体依赖和当年格式适配。
identity-mode:PDF 身份关键词检查模式。默认 warn 只提示风险;真正提交前可以改成 strict,让关键词命中直接失败。
ignore-keyword:对已经人工确认的误报关键词做临时忽略,例如参考文献或数据来源里的 University、大学。
SKILL.md:AI 助手实际读取的工作规则。templates/mcm-icm/:MCM/ICM 模板,优先使用mcmthesis。templates/cumcm/:CUMCM 模板,包含轻量cumcmthesis.cls兼容类、cumcmthesis入口和ctexartfallback。scripts/check_latex_env.py:按比赛类型检查本机 LaTeX 类文件、fallback 和 BibTeX 环境。scripts/check_pdf.py:检查 PDF 页数、文件大小和身份关键词风险,支持warn/strict模式。scripts/check_latex_refs.py:检查\ref/\eqref/\cite是否存在未定义标签或未定义文献键。scripts/check_latex_keywords.py:检查摘要关键词是否属于数学建模方法、模型、算法、评价或检验术语。latexmkrc:默认使用 XeLaTeX 的构建配置。
- 本仓库现在内置一个轻量
cumcmthesis.cls兼容类,目的是保证 CUMCM 默认入口可离线编译;它不是上游 CUMCMThesis 模板的逐字复制,也不包含字体文件。 mcmthesis通常由 TeX Live / MiKTeX 管理。- 若需要第三方完整
cumcmthesis模板,请自行提供或安装,并核验许可证、字体依赖和当年格式规则;不要假设tlmgr一定能安装。 - CUMCM 模板新增
templates/cumcm/STYLE_GUIDE.md,用于约束“数据预处理”“模型假设:解释”等优秀论文风格写法。 - 最终比赛提交前,应以当年官方规则为准。
- 任何由 AI 生成的论文内容都需要人工核验。
- 默认使用
ref.bib作为唯一参考文献数据库。 - 正文文献引用只使用
\cite{key},不要用\ref{key}引用文献。 - 图、表、公式引用只使用
\ref{label}或\eqref{label},不要用\cite{label}。 - 不主动使用
\nocite{...};没有被正文引用的.bib条目不应出现在最终参考文献中。 - 交付前运行:
python scripts/check_latex_refs.py main.tex --bib ref.bib;若为 CUMCM 项目,再运行python scripts/check_latex_keywords.py main.tex。
- CUMCM 正文不单独设置“总体思路”小节;问题分析节按小问展开,例如
2.1 问题一的分析、2.2 问题二的分析。 - 若需要展示模型路线,优先使用“模型流程图”并放入问题分析或模型建立部分的自然段中,不另起
2.4 总体思路。 - 关键词必须优先选择数学建模教材和竞赛论文中常见的术语,例如:优化模型、线性规划、混合整数规划、目标规划、动态规划、蒙特卡洛模拟、回归分析、聚类分析、主成分分析、层次分析法、综合评价、风险决策、灵敏度分析、敏感性分析、鲁棒性分析、时间序列、灰色预测等。
- 关键词不要直接使用题目对象、行业背景或宽泛任务词,例如:农作物种植策略、乡村农业、蔬菜销售、企业生产、交通问题、研究方法。
- 交付前运行:
python scripts/check_latex_keywords.py main.tex。
- 在
templates/cumcm/和templates/mcm-icm/内分别加入模板本地latexmkrc,使用户单独复制模板目录时也能使用 BibTeX fallback,不依赖 skill 根目录的latexmkrc。 - CUMCM 模板本地
latexmkrc默认 XeLaTeX;MCM/ICM 模板本地latexmkrc仅处理 BibTeX fallback,保留latexmk -pdf main.tex工作流。 - BibTeX 检测从“命令存在”升级为“命令存在且可执行
--version”,避免损坏的bibtex替代项导致编译失败。
- CUMCM 模板现在默认将图表题名渲染为
表 1 标题、图 1 标题,去掉表 1: 标题中的英文冒号。 - 附录一级标题现在渲染为
附录A 支撑材料文件列表、附录B 源程序代码说明、附录C AI 工具使用详情说明。 - 该修正已同时应用到
main.tex、main-cumcmthesis.tex和main-ctexart-fallback.tex。