CtrlK
BlogDocsLog inGet started
Tessl Logo

5writing

数学建模竞赛论文撰写阶段,支持 Typst 和 LaTeX 双引擎。根据 ANALYSIS_MODELING_REPORT.md、RESULTS_REPORT.md 和 figures/*.pdf 选择比赛模板、排版引擎、组织章节,并在论文正文中按章节直接插入图表。

66

Quality

80%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Failed to scan

The risk profile of this skill

Fix and improve this skill with Tessl

tessl review fix ./skills/5writing/SKILL.md
SKILL.md
Quality
Evals
Security

竞赛论文撰写(Typst / LaTeX)

本 skill 承接 3coding-visual4drawio。前序阶段只提供真实数据、图表 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

华为杯、华中杯、五一杯统一使用 huaweibeihuazhongbeiwuyibei 作为模板。

支持的英文模板(Typst + LaTeX 双版本):

apmcm, default, mcm

论文中的所有数值图表结论必须来自 reports/RESULTS_REPORT.mdfigures/*。不得编造、估算或使用不同的四舍五入方式。

工作流

步骤 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/changsanjiao
APMCM 英文版 -> en/apmcm
全国赛/国赛/CUMCM -> zh/cumcm
统计建模 -> zh/stats
MCM/ICM/COMAP -> en/mcm

模板键示例(LaTeX 引擎):

全国赛/国赛/CUMCM -> zh/cumcm-latex
MCM/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/*.pdfreports/RESULTS_REPORT.md,以及 reports/DRAWIO_REPORT.md(如果存在)构建图表规划:

图表规划
fig_roadmap.pdf -> 引言/问题重述
fig_flow_q1.pdf -> 问题一模型构建
fig_flow_q2.pdf -> 问题二模型构建
fig_pipeline.pdf -> 数据预处理/方法节
结果图 -> 对应的结果节

图片路径相对于写入该图片的文件:写在 paper/main.typpaper/main.tex 中通常用 ../figures/xxx.pdf,写在 paper/sections/*.typpaper/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。文件名主体保持一致。

中文数学建模通用模板各节文件(changsanjiaodiangongbeihuashubeimathorcupwuyibei):

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         - 附录代码

国赛/华中杯/华为杯(cumcmhuazhongbeihuaweibei)按以下章节结构:

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)额外使用单独摘要文件:

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 的示例入口命名:

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):

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

中文统计建模各节文件:

1_introduction.typ
2_method.typ
3_data.typ
4_analysis.typ
5_results.typ
6_conclusion.typ
A_code.typ

英文 MCM/APMCM 各节文件(en/mcmen/apmcmzh/mcmzh/apmcm):

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

LaTeX 模板章节文件(对应 -latex 后缀模板,结构与 Typst 版本一一对应):

国赛 LaTeX 模板(zh/cumcm-latex,对应 cumcm Typst 版本):

1_restatement.tex
2_analysis.tex
3_assumptions.tex
4_symbols.tex
5_problem1.tex
6_problem2.tex
7_problem3.tex
8_sensitivity.tex
9_evaluation.tex
A_code.tex

MCM/ICM LaTeX 模板(en/mcm-latex):

1_introduction.tex
2_assumptions.tex
3_model_design.tex
4_solution.tex
5_sensitivity.tex
6_strengths_weaknesses.tex
7_conclusions.tex
A_code.tex

其余 LaTeX 模板(changsanjiao-latexdefault-latexhuashubei-latexmathorcup-latexwuyibei-latexhuazhongbei-latexhuaweibei-latexdiangongbei-latexdongsansheng-latexshuweibei-latexstats-latexapmcm-latexmcm-latexen/apmcm-latexen/default-latex)的章节文件命名与上述结构类似,以 main.tex\input{} 引用的文件名为准。

英文默认模板(en/default):

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

步骤 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
Repository
jihe520/MathModelAgent
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.