5writing logo

5writing

CommunityPopular
jihe520
5writing

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

Overview

Publisherjihe520
RepositoryMathModelAgent
Skill name5writing
Stars
5.6K
Forks
423
Bundled files
382
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 382 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by jihe520 on GitHub. Read the source before you install it.

Installation

Install the 5writing AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/jihe520/MathModelAgent.git /tmp/MathModelAgent
mkdir -p .claude/skills
cp -r /tmp/MathModelAgent/skills/5writing .claude/skills/5writing
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable 5writing in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads 5writing on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so 5writing is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

竞赛论文撰写(Typst / LaTeX)

本 skill 承接 3coding-visual4drawio。前序阶段只提供真实数据、图表 PDF 和记录文件;本阶段负责选择比赛模板和排版引擎、组织论文结构,并决定每张图表放入哪个章节。

Typst 引擎下可调用 typst-author skill 学习 typst 写法;LaTeX 引擎参考本文件末尾的"LaTeX 写作要点"小节。

数学建模规范参考

如需领域判断,读取 ../_references/math_modeling_norms.md 中的“论文写作”“图表与可视化”和“非数据图工具选择”小节。该文件只作为规范知识库,论文结构仍按比赛模板和当前赛题内容决定。

模板族

本技能内捆绑的模板位于:

text
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 双版本):

text
apmcm, changsanjiao, cumcm, default, diangongbei, dongsansheng,
huashubei, huaweibei, huazhongbei, mathorcup, mcm, shuweibei, stats, wuyibei

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

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

text
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 引擎):

text
长三角 -> zh/changsanjiao
APMCM 英文版 -> en/apmcm
全国赛/国赛/CUMCM -> zh/cumcm
统计建模 -> zh/stats
MCM/ICM/COMAP -> en/mcm

模板键示例(LaTeX 引擎):

text
全国赛/国赛/CUMCM -> zh/cumcm-latex
MCM/ICM/COMAP -> en/mcm-latex

步骤 2:准备模板

用以下命令检查捆绑模板是否可访问(SKILL_DIR 为本 skill 所在目录):

Typst 模板

bash
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 模板

bash
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(如果存在)构建图表规划:

text
图表规划
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 引擎图片插入:

typst
#figure(
  image("../../figures/fig_q1_error_dist.pdf", width: 85%),
  caption: [问题一预测误差分布],
)

LaTeX 引擎图片插入:

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

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

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

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/mcmen/apmcmzh/mcmzh/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

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

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

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

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

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

步骤 5:参考文献

只使用真实存在的参考文献。文件名按引擎选择:Typst 用 paper/references.typ,LaTeX 用 paper/references.tex

Typst 引擎

typst
#set enum(numbering: "[1]")
#enum[
  作者. 题名[J]. 期刊名, 年份, 卷(期): 页码.
  Author. "Title." Journal or Conference, year.
]

正文上标引用:相关研究已用于物流网络优化#super("[1]")。

LaTeX 引擎

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 获取语法帮助。

编译命令

bash
# 中文模板(xelatex,跑两遍解决交叉引用)
xelatex main.tex && xelatex main.tex

# 英文模板(xelatex,同样跑两遍)
xelatex main.tex && xelatex main.tex

文档结构

latex
\documentclass[a4paper,12pt]{article}   % 英文
\documentclass[a4paper,12pt]{ctexart}   % 中文

\usepackage{...}   % 宏包加载
\usepackage{graphicx}   % 图片支持
\usepackage{booktabs}   % 三线表
\usepackage{amsmath,amssymb}   % 数学公式
\usepackage{hyperref}   % 交叉引用(需两遍编译)

图表插入

latex
\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}

交叉引用

latex
如图~\ref{fig:q1}所示,...   % 图片引用
式~(\ref{eq:objective}) 给出...   % 公式引用
见第~\pageref{fig:q1}% 页码引用

数学公式

latex
行内公式:$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}

章节和强调

latex
\section{问题重述}
\subsection{问题背景}
\textbf{问题一:} xxx   % 对应 Typst 的 #strong

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

and 140 more files.

Frequently asked questions

What does the 5writing AI skill do?

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

Why use 5writing on TypingMind?

Because you install it once and use it with any model. 5writing is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install 5writing in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/jihe520/MathModelAgent/tree/main/skills/5writing. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use 5writing?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with 5writing?

As many as you like. As long as a model supports skills, you can use 5writing with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the 5writing AI skill free?

It is published on GitHub by jihe520. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇