
去年参加美赛我们队其实只花了不到三天就把模型和论文内容搞完了最后半天却差点崩溃在排版上。公式编号乱跳、图表位置失控、参考文献格式被指导老师批了又批凌晨四点还在Word里手动微调页码。那时候才意识到免费开源的美赛模板才是真正值得提前搞定的东西。后来我认真把GitHub上能搜到的开源美赛模板翻了一遍自己也用完整跑过比赛流程从Overleaf在线编译到本地TeX Live都试过。这篇文章就把我对开源美赛模板的理解、选型、部署过程和踩坑记录完整写出来。无论你是第一次参加MCM/ICM还是已经被Word折磨过一轮想换方案这篇都值得存下来。1. 被Word排版逼疯之后我为什么转向开源LaTeX模板1.1 美赛论文的隐性格式红线很多人第一次参加美赛注意力全放在模型推导和算法实现上觉得排版是最后一天的事。但美赛官方对论文格式其实有非常明确的隐性要求最终提交的PDF论文通常不能超过25页第一页必须是独立的Summary Sheet摘要页正文字体建议用Times New Roman 12磅图表必须清晰可读参考文献要规范统一。这些要求单看每一条都不难难的是所有要求叠加在一起还要在96小时内完成。用Word排过比赛论文的人应该都有体会公式是一个一个敲的编号是手动改的图表的标题和正文交叉引用一旦调整位置就全乱套。更不用说当你把某个模型截图插进去之后整篇行距突然不对了页数直接超限。美赛评阅的时候评委每天要看成百上千篇论文。格式混乱、图表不清晰、摘要页超页哪怕模型再好第一印象也会扣分。这个道理和面试穿搭一样——内容很重要但表达形式决定了对方愿不愿意深入了解你的内容。1.2 Word排版的三座大山我用Word排过完整的一篇美赛论文踩过的坑我可以列得很具体。第一座大山是公式编号。美赛论文里的公式非常多而且需要在正文里反复引用比如由式(3)可得。Word自带的公式编号功能在单独使用时候还行一旦正文插入新公式后面的所有编号都要手动改。比赛后期模型优化之后我加了一个约束条件结果前面五个公式全部错位光改编号就花了半小时。第二座大山是图表位置控制。论文中的图片和表格经常需要放在指定的位置比如某一段分析之后。Word里插入图片后行距、段落、分页符经常互相影响。图表一多经常出现图在上一页、图的题注在下一页的尴尬情况。手动固定之后换一台电脑或者转成PDF又全乱了。第三座大山是多人在线协作时的格式冲突。三个人分别写模型、求解、灵敏度分析的部分最后合并文档的时候样式和编号几乎是必炸。甚至两人同时编辑同一段改动会互相覆盖凌晨三四点排查这种问题真的很消耗精力。1.3 开源模板的解决思路后来我接触了LaTeX准确说是接触了GitHub上那些人维护了多年的开源美赛模板才明白什么叫内容和样式分离。LaTeX的思路和Word完全不同。Word是拖拽式排版你直接操作内容样式跟着内容走LaTeX是编译式排版你只管写内容版面样式全部交给模板类和编译引擎去处理。写正文的时候你只需要用\section{}声明这是新的一节\begin{equation}声明这是公式模板会自动生成目录、编号和排版你不用去操心字体大小、段落缩进、行距这些细枝末节。开源美赛模板的核心价值就是把COMAP官方要求都预制成了一个.cls类文件。比如摘要页单独一页、字号行距、标题格式、页边距这些模板都已经写好。你要做的只是往里面填内容最后编译出一条干净的PDF。这也是为什么很多获奖队伍都坚持用LaTeX模板写论文——不是因为他们技术多高是因为这套工具真的能把格式问题从比赛时间里剥离出去。2. 货比三家LaTeX、Overleaf、Markdown转PDF哪套方案适合你的队2.1 三条主流开源路线盘点先说结论开源美赛模板并不是只有一个选择围绕免费和开源两个关键词我把它分成了三条路线。第一条是纯LaTeX路线最经典的是GitHub上的mcmthesis模板由latexstudio团队维护。这个模板直接用LaTeX类文件实现你可以在本地用TeX Live编译也可以在Overleaf上直接打开。它内置了MCM和ICM两种模式可以很方便地切换题目类型页面样式、目录、摘要页、附录都处理得很成熟。第二条是Overleaf在线模板路线。Overleaf是一个在线的LaTeX编辑平台模板库里有大量美赛模板包括mcmthesis的在线版本以及各种个人维护的改进版。你在浏览器里就能完成全部操作不需要本地安装任何环境多人还能实时协同编辑。它的体验很接近Google Docs但底层是真正的LaTeX编译。第三条是Markdown转PDF路线。严格来说这不是纯LaTeX而是用Markdown写作再用Pandoc或者Typora等工具套一个LaTeX模板导出PDF。市面上的开源Markdown美赛模板也不少优点是写作门槛低、上手快缺点是复杂公式和精细排版的灵活度不如直接用LaTeX。2.2 对照表优点、缺点、适合人群我直接把三条路线的关键差异整理成一张表方便按团队情况对号入座方案上手成本排版精细度协作便利性适合人群mcmthesis本地编译较高最高低需配Git有一定LaTeX基础追求专业排版Overleaf在线模板中低高高想省环境配置多人同时写Markdown转PDF最低中中团队习惯用Markdown公式较少补充一点Overleaf上的美赛模板绝大多数底层还是mcmthesis或者它的改进版。所以无论你选Overleaf还是本地编译学习成本最终都会落在mcmthesis这一个模板上。学会它就同时掌握了三条路线。另一点需要提前说明美赛题目每年都在变化但模板的核心机制是稳定的。你不需要等当年的新版模板再开始准备完全可以提前三个月就用上一届的模板练习写作和排版比赛时只修改年份、队伍控制号和题目类型即可。2.3 选型建议我个人建议按团队的技术储备来选。如果三个人里有一个写过LaTeX直接上mcmthesis本地编译或Overleaf都行效率极高。如果三个人全都是小白又不愿意花两天学LaTeX可以先走Overleaf上的模板库把模板当填空题做。最不建议的情况是比赛开始之后才第一次打开模板。美赛的时间非常紧张如果连编译工具链都没跑通过最后一天出现任何一个小报错都可能让人崩溃。提前跑通一遍比什么准备都重要。3. 从零跑通mcmthesis模板部署与配置的完整记录3.1 获取模板Overleaf一键复用我建议第一次接触的人先用Overleaf跑通因为省去了环境配置的麻烦。打开Overleaf官网注册账号后在模板库搜索MCM/ICM会看到很多结果。找那个下载量最高、更新时间最新的版本。这里有几个判断标准模板描述里有没有写支持MCM/ICM、最近的更新时间是不是在一年以内、有没有在评论区说明适用年份。选定后点击Open as Template项目会自动生成在你的账号下。这时候什么都不用改直接点击顶部绿色按钮Recompile如果能看到一份完整的示例PDF说明模板本身没有问题环境也没问题。Overleaf上生成的PDF如果正常显示就说明你的编译链路是通的。这时候再去逐个文件看里面的内容理解模板的结构而不是一上来就闷头改代码。3.2 本地环境准备TeX Live还是MacTeX如果你更习惯本地编辑或者电脑配置足够本地环境是更稳的选择。Windows系统建议装TeX LivemacOS系统建议装MacTeX。安装的时候我强烈建议选完整版安装包不要为了省硬盘空间选basic版。美赛论文里会遇到各种宏包如果只装了基础版编译时会频繁报! LaTeX Error: File xxx.sty not found.每一次都要临时用tlmgr install补包比赛时根本没这个时间。国内下载TeX Live的时候速度可能不稳定清华开源软件镜像站提供了完整的安装包镜像下载速度快很多。安装时间会有点长建议留出至少一小时期间电脑别断电。安装完成后在命令行里输入xelatex -version如果能看到版本号环境就准备好了。这里提醒一句mcmthesis模板推荐用xelatex编译而不是默认的pdfLaTeX因为xelatex对中文的支持更好后面处理中文字体的时候你会感谢这个选择的。3.3 模板目录与核心文件跑通一次之后就该搞清楚模板里每个文件是干什么的。以mcmthesis为例一个完整模板项目的目录结构大概是这样的mcmthesis/ ├── mcmthesis.cls # 模板类文件定义了论文整体样式 ├── mcmthesis-demo.tex # 示例主文件 ├── mcmthesis.pdf # 编译出来的示例PDF ├── figures/ # 存放图片 ├── reference.bib # BibTeX参考文献数据库 └── ...其中.cls文件是模板的灵魂。它定义了摘要页样式、页面尺寸、标题字体、页眉页脚、目录格式等内容。正常使用中你几乎不需要改这个文件——除非你想自定义样式。mcmthesis-demo.tex是真正要动笔的地方。它负责引入类文件、声明题目类型、拼接各个章节、引入参考文献。你不需要从零开始写只需要在它的框架里替换内容。3.4 必改项队伍控制号、选题与摘要页模板跑通后有几个位置是你用得最频繁的我直接列出来。第一个是队伍控制号。通常在\begin{document}前的一行类似\title{}或者\settings{}的位置你需要在控制号那里填美赛官网分配的6位数字控制号。这个数字要反复检查如果填错提交后可能直接关联不到你的队伍。第二个是选题。美赛分MCM和ICM题目从A到F。模板里通常有一个参数或一行代码声明你选了哪道题比如在摘要页标题位置填Problem Chosen: A。这行信息必须和实际提交系统里选的题一致否则算无效提交。第三个是摘要页正文。摘要页是美赛论文里最重要的一页也是模板里唯一需要你认真写满的固定版面。mcmthesis模板已经生成好了Summary Sheet的结构你需要把摘要内容写在对应区域控制在严格一页以内。在.tex主文件里你还会看到类似这样的示例代码\problem{A} \team{123456} \name{Alice \\ Bob \\ Carol}这里每一行都要核对。\problem是选题\team是队伍控制号\name是队员姓名。具体字段名因模板版本不同会有差异但逻辑是一致的先声明这些元信息模板会自动把它们渲染到摘要页和页眉。3.5 第一次编译与常见报错改完关键信息后第一次编译时大概率会遇到一些小问题。说几个最常见的。如果在Windows系统下使用TeX Live编译时提示缺少字体多半是LaTeX字体缓存没有更新。可以尝试运行fc-cache -f刷新系统字体缓存再重新编译。如果编译过程中出现Undefined control sequence说明某个宏包没有成功加载或者你的LaTeX版本太老。先检查拼写再考虑升级宏包。如果出现Citation undefined的警告通常是因为BibTeX没有正确执行。编译LaTeX文档不是一次点按钮就完事的。正确的流程是连续执行多次先xelatex编译再bibtex处理参考文献然后再xelatex两次让交叉引用生效。Overleaf会自动处理这个流程本地编辑时一定要记住这个编译顺序。4. 实际使用中的五个绊脚石字体、摘要页、交叉引用与参考文献4.1 Windows下的中文字体与乱码用mcmthesis写美赛论文时很多队伍会用到中文注释或者中英文混排。在Windows系统下最容易踩的坑是字体映射问题。mcmthesis默认面向英文排版但比赛过程中你的模型假设、思路备注、甚至摘要的初稿都可能是中文写的。如果直接编译中文可能变成一串乱码或者直接消失。解决办法是用ctex宏包配置中文字体。在引入类文件之后新增一行\usepackage[UTF8]{ctex}编译时一定要用xelatex不要用pdfLaTeX。pdfLaTeX对UTF8中文支持非常弱而xelatex能直接调用系统中的中文字体。Windows自带的中易字体一般够用如果你需要更美观的中文字体可以安装思源黑体或思源宋体在ctex中可以通过\setCJKmainfont{思源宋体}指定。注意字体名称必须和系统里安装的字体名称完全一致包括空格和大小写。另外提醒最终提交论文中尽量以英文为主中文注释要在编译前清理掉。美赛是国际竞赛评委不会阅读中文中文残留还会影响PDF的字体嵌入和页数统计。4.2 摘要页必须控制在一页内摘要页是整个美赛论文的门面也是模板里最精密的一块。官方明确要求Summary Sheet只能是一页多一页都不行。模板虽然已经帮你把摘要页设计成单独的页面但它不会帮你控制内容长度。很多队伍写摘要时习惯把背景、模型、结论、灵敏度分析全塞进去。结果编译完发现摘要页被挤成两页整个版面全乱。这里分享一个我自己的处理思路摘要分三段来写第一段用两三句交代问题背景和建模目标第二段用主要篇幅概括模型思路、关键算法和求解方法第三段用一句话点出核心结论和创新点。总字数控制在350到450个英文单词比较稳妥。如果实在有太多内容要说可以在摘要页末尾补充一句详见正文第X节而不要把详细展开写进摘要页。比赛评分会对应看正文内容摘要页的作用是让评委快速抓住你的故事主线不是把所有细节都堆在首页。4.3 图表编号与交叉引用的正确姿势LaTeX里图表编号和交叉引用的机制是它比Word高效的关键但前提是你用对了。图片的常规写法是\begin{figure}[htbp] \centering \includegraphics[width0.8\textwidth]{figures/model.pdf} \caption{模型整体流程图} \label{fig:model} \end{figure}在正文里引用这张图时写如图\ref{fig:model}所示。编译后LaTeX会自动替换成正确的图编号。你在写正文时完全不需要手动记住这是第几章第几张图只要给label起一个可读的名字比如fig:model、fig:sensitivity。表格也是一样的逻辑\label{tab:xxx}配合\ref{tab:xxx}使用。htbp参数是需要理解的h表示here放在当前位置t表示top页面顶部b表示bottom底部p表示独立一页放置浮动体。建议直接写[htbp]让LaTeX自己决定最优位置不要为了强制定位而使用[h]后者很容易导致图表堆到文档末尾。4.4 用BibTeX管理参考文献美赛论文对参考文献的规范程度要求很高模板通常提供了BibTeX支持。BibTeX的做法是让参考文献从正文中分离出来你只需要在正文里引用剩下的排序和格式交给工具处理。在正文中引用参考文献的位置使用这样一行\cite{kim2023optimization}这里的kim2023optimization是一个唯一标识符指向reference.bib文件里的一个条目。每个条目的格式类似article{kim2023optimization, author {Kim, J. and Park, S.}, title {Optimization Strategies for ...}, journal {Applied Mathematics}, year {2023} }BibTeX的正确用法是当你需要引用一篇文献时先去Google Scholar搜索并导出BibTeX格式条目然后粘贴到reference.bib里最后在正文中用\cite{}插入。编译时的顺序我前面提过必须是xelatex、bibtex、xelatex、xelatex。如果漏掉bibtex这一步正文中文中会出现一个带问号的引用标记报Citation undefined。如果出现这种情况不要慌重新按顺序编译一遍基本就好。4.5 25页限制怎么分配最划算美赛规则中正文的页数和总页数限制一直是个容易混淆的点。不同年份的规则有微调但总体逻辑是摘要页独立一页之后是正文、参考文献和附录。官方对总页数有明确上限近年是25页。这25页怎么分配最合理我自己的经验是摘要页占1页正文18到20页参考文献1到2页附录最多留3页。正文里不要堆大段代码和原始数据那些全部放到附录。正文的核心是讲清楚你的建模思路、模型设计、求解过程和结论评委最关心的是为什么这么建模和模型效果到底如何不是你的代码实现细节。如果发现正文字数太多优先压缩灵敏度分析和补充实验部分保留最关键的图表和结论。关于页数上限每一年以官网发布的规则为准提前确认清楚不要让模板的默认设置坑了你。5. 模板只是起点三天美赛写作流程与提交前自检5.1 写作分工摘要先行正文并行模板解决了排版问题但美赛真正的战场是内容。三天时间其实非常紧我建议的写作节奏是这样的第一天上午确定选题和分析思路下午开始建模和求解同时负责写作的队员先动笔写摘要的骨架第二天全部精力投入模型完善和正文分章节写作第三天上午整合内容下午统一排版、检查图表和参考文献留出至少四小时给最后的反复编译和修错。写作分工上建议三个人分别负责模型建立、模型求解、结果分析和灵敏度这三块一人写一章第三天再合并到主文件。这样虽然会用到Git或Overleaf的协同功能但每个章节可以独立成\section{}文件最后统一\include{}引入互不干扰。摘要千万不要等到最后再写。我见过太多队伍最后半天赶摘要结果摘要质量跟不上正文水平。摘要要随写随改尤其是模型的创新点和结论部分赛后我发现每次看摘要都会想改几个词这个打磨过程对最终评分非常关键。5.2 用版本管理保护三天的劳动成果美赛交卷前最惨痛的场景不是模型跑不出来而是改了一晚上的文件不小心被覆盖连备份都没有。用Overleaf的话它自带历史版本功能可以追溯每次修改并恢复旧版本。用本地环境的话建议整个项目文件夹用Git管理。我参与过几次比赛最后一天的修改频率极高一个人改完图表另一个人马上又要调文字如果没有版本管理两个人同时编辑同一个文件很容易互相覆盖。Git的基本操作只需要三个命令git add .、git commit -m 描述、git pull交替提交和拉取就能保证代码不冲突。如果你不熟悉Git至少要做到每天把整个项目复制一份备份命名加上日期和版本号比如mcm_day1_before_solve.zip、mcm_final_v3.tex。这个习惯在比赛阶段能救命。5.3 图表命名与引用规范化随着论文推进图片和表格文件会越来越多。如果随意命名第三天你会发现满屏的未命名.jpg和最终版(2).png根本分不清哪张图对应哪个模型。我建议从一开始就在figures文件夹里按章节和内容命名比如fig/model_architecture.pdf、fig/sensitivity_analysis.png。在LaTeX中引用时\label也保持一致的命名规范比如fig:model_architecture、tab:sensitivity_metrics。这样做的好处是即使第三天头脑已经不清醒看到文件名也能立刻定位到对应的章节和图表。另外图片插入前统一处理一下格式。LaTeX支持PDF、PNG、JPG但PDF矢量图在清晰度上明显占优。能用Python或Matplotlib导出PDF格式的图就不要用截图或PNG。美赛评委经常会在屏幕上放大查看图表细节模糊的图会影响专业度。5.4 提交前两小时的最终自检所有内容写完后给自己留两个小时做最后一轮检查。我的自检清单是这样的队伍控制号是否已填对队员姓名是否拼写正确PDF总页数是否超过限制摘要页是否独立一页且未超页每张图是否清晰图题、表题是否完整文中是否残留TODO、XXX等未完成标记参考文献条目是否全部被正文引用是否存在Citation undefined的警告编译一遍后生成的PDF是否是最新版文件大小是否在提交系统允许范围内特别注意美赛官网提交系统一般只接受PDF文件提交前一定要用官方要求格式命名并最后确认一次。如果在提交截止前发现问题宁可推迟半小时提交也要修正但绝对不要错过截止时间。最终导出的PDF我习惯再从头到尾翻一遍。重点不是看文字而是看页码、页眉、摘要页版面是否正常。模板在编译正常的情况下页眉和页码会自动生成但如果你手动删过某些标记页眉可能出错。翻一遍的时间不过三分钟能避免很多低级失误。说回开头的那个翻车故事。我们当时如果提前哪怕一周打开一次开源美赛模板后面那一整夜都能用来优化模型和打磨摘要。现在我把这套流程完整写下来就是希望后来的队伍别再走我们的弯路。从GitHub上找一个合适的mcmthesis模板花两小时跑通再花一下午写一篇模拟论文这一套准备工作做完比赛时才算是真的在拼建模和思路而不是和排版软件搏斗。