1. 从零到一:一份国赛省一论文的LaTeX实战复盘
又到了一年一度的全国大学生数学建模竞赛(国赛)季,看着学弟学妹们开始为论文排版焦头烂额,我就想起了自己当年参赛的经历。我们团队最终拿到了C题省一等奖,除了模型和求解方案本身,一份清晰、专业、格式规范的LaTeX论文,绝对是我们能从众多队伍中脱颖而出的重要加分项。很多人觉得LaTeX门槛高,不如Word上手快,但当你真正用它完成一篇几十页、包含大量公式、图表和参考文献的竞赛论文后,你就会明白,它的“慢”是为了最终的“快”和“美”。今天,我就以一个过来人的身份,复盘一下我们当时用LaTeX撰写国赛C题省一论文的全过程,从环境搭建到最终提交,分享那些踩过的坑和总结出的高效技巧。这篇文章不仅适用于数学建模竞赛,对于任何需要撰写科技报告、学术论文的朋友,都有直接的参考价值。
2. 为什么是LaTeX?竞赛论文的“隐形铠甲”
在决定技术栈时,我们团队内部有过激烈的讨论。Word派认为直观易用,调整方便;LaTeX派则认为排版精美,专注内容。最终我们选择了LaTeX,原因远不止“排版好看”这么简单。
2.1 格式规范的强制执行者
国赛论文有明确的格式要求:标题、摘要、关键词、正文、参考文献、附录,每一部分都有其固定的位置和样式。在Word里,你需要手动设置各级标题的字体、间距,调整图表编号,管理交叉引用,稍有不慎,整个文档的格式就可能“牵一发而动全身”。而LaTeX通过定义好的文档类和宏包,将这些格式规则固化。你只需要用\section{},\subsection{}这样的命令声明结构,LaTeX引擎会自动为你处理好编号、缩进、字体和页眉页脚。这意味着,从第一行代码开始,你的论文骨架就是符合规范的,极大地减少了后期调整格式的时间成本。
2.2 复杂数学公式的“原生语言”
数学建模竞赛,核心是模型,而模型的表达离不开数学公式。LaTeX本身就是为数学排版而生的。在Word里插入复杂的多行公式、矩阵、分段函数,不仅操作繁琐,而且一旦需要调整,很容易错位。在LaTeX中,你可以用直观的语法,像写代码一样流畅地书写公式。例如,一个带条件的优化问题模型:
\begin{equation} \label{eq:model} \begin{aligned} & \min_{x} \quad & f(x) &= \sum_{i=1}^{n} c_i x_i \\ & \text{s.t.} \quad & \sum_{j=1}^{m} a_{ij} x_j & \leq b_i, & i = 1, \dots, p, \\ & & x_j & \geq 0, & j = 1, \dots, n. \end{aligned} \end{equation}这种清晰度和可控性,是可视化编辑器难以比拟的。评委在审阅时,清晰、标准的公式排版能直接提升阅读体验和对你专业度的认可。
2.3 图表与参考文献的自动化管理
论文中通常有大量图表。LaTeX的\ref{}和\label{}机制,使得文中引用“如图1所示”和图表下方的“图1: 模型流程图”能够自动关联、自动编号。即使你在写作中间插入或删除一个图表,所有编号和引用都会自动更新,彻底杜绝了“图5后面引用图4”这种低级错误。参考文献更是如此,使用BibTeX配合.bib文件,你只需维护一个文献数据库,在文中用\cite{}引用,LaTeX会自动在文末生成指定格式(如国赛常用的GB/T 7714-2015)的参考文献列表,排序、编号全部自动化。
2.4 专注内容分离的哲学
LaTeX强制你将内容(.tex文件)与样式(.cls或.sty文件)分离。在紧张的竞赛72小时内,这种分离是高效的。团队成员可以分工:一人负责主文档结构和文字,一人专攻模型部分的公式和算法伪代码,另一人负责绘制图表并导入。大家只需要关注自己负责的.tex片段,最后合并编译即可。这种协作模式,比多人同时编辑一个Word文档导致的版本冲突和格式混乱,要清爽和可靠得多。
3. 我们的LaTeX环境搭建与工具选型
工欲善其事,必先利其器。一套稳定、高效的写作环境是成功的基础。我们避开了需要复杂配置的本地TeX Live+编辑器方案,选择了更符合竞赛节奏的云端协作平台。
3.1 核心平台:Overleaf —— 云端协作的决胜关键
我们最终选择了 Overleaf 作为主力平台。这是一个在线的LaTeX编辑器,其优势在团队作战中体现得淋漓尽致:
- 开箱即用:无需在每个人的电脑上安装几个G的TeX发行版,打开浏览器就能写,环境统一,杜绝了“在我电脑上能编译,在你那里报错”的经典问题。
- 实时编译与预览:一边写代码,右侧实时渲染出PDF效果,任何语法错误或格式问题都能立刻发现,效率极高。
- 强大的协作功能:支持多人同时编辑同一项目,每个人的光标和修改实时可见,并内置了聊天评论功能。这相当于把LaTeX写作变成了“在线文档协作”,极大方便了深夜线上讨论和修改。
- 丰富的模板:Overleaf官方和社区提供了海量模板,包括许多针对国内竞赛的模板,为我们节省了大量从头设计格式的时间。
注意:国赛期间网络访问要稳定。我们当时为防万一,也准备了备用方案:在本地安装轻量级的TeX发行版(如MiKTeX)和编辑器(如TeXstudio),并将Overleaf项目通过Git同步到本地。这样即使网络临时波动,也能继续工作。
3.2 文档类与宏包:构建论文的“钢筋水泥”
选对了平台,接下来要搭建论文的框架。我们经过对比,选择了ctexart文档类来作为基础。
\documentclass[UTF8, a4paper, zihao=-4]{ctexart}UTF8:确保中文编码正确。a4paper:国赛标准纸张。zihao=-4:设置正文字号为小四号(这是国赛正文的常见要求,具体需以当年官方通知为准)。ctexart文档类内部集成了中文排版所需的大部分设置,如字体、标点挤压等,比直接使用article类再加载ctex宏包更简洁、问题更少。
除了文档类,一系列宏包是扩展LaTeX功能的“武器库”。以下是我们论文中实际引入的核心宏包及其作用:
\usepackage{geometry} % 设置页边距 \geometry{left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.0cm} % 国赛常见边距 \usepackage{amsmath, amssymb, amsthm} % 数学公式、符号和定理环境 \usepackage{graphicx} % 插入图片 \usepackage{float} % 提供[H]等浮动体控制选项 \usepackage{caption} % 定制图表标题格式 \usepackage[table,xcdraw]{xcolor} % 颜色支持,用于表格 \usepackage{booktabs} % 绘制三线表,专业美观 \usepackage{multirow} % 表格合并单元格 \usepackage{algorithm, algorithmic} % 算法伪代码环境 \usepackage{listings} % 插入程序代码 \usepackage{hyperref} % 生成PDF书签和超链接 \usepackage{appendix} % 附录环境 \usepackage{cite} % 优化参考文献引用 \usepackage{setspace} % 设置行间距 \onehalfspacing % 设置1.5倍行距每个宏包都解决了具体问题。例如,booktabs绘制的三线表(\toprule,\midrule,\bottomrule)远比原始的\hline美观专业;hyperref会让最终PDF的目录、图表引用都可点击跳转,方便评委阅读。
3.3 文件结构组织:清晰即高效
在Overleaf中,我们不是把所有内容堆在一个main.tex文件里,而是采用了模块化的组织方式:
2022_国赛C题_论文/ ├── main.tex # 主文档,负责组织结构和调用其他文件 ├── preamble.tex # 导言区,集中放置所有宏包和自定义命令 ├── sections/ │ ├── 00_abstract.tex # 摘要 │ ├── 01_introduction.tex # 问题重述与分析 │ ├── 02_model.tex # 模型建立 │ ├── 03_solution.tex # 模型求解 │ ├── 04_results.tex # 结果分析与检验 │ ├── 05_conclusion.tex # 结论与展望 │ └── 06_references.tex # 参考文献 ├── figures/ # 存放所有图片文件(.pdf, .png, .jpg) │ ├── flow_chart.pdf │ └── result_plot.png ├── tables/ # 存放独立的表格文件(如果需要) └── code/ # 存放引用的源代码文件在主文档main.tex中,结构非常清晰:
\input{preamble} % 导入导言区设置 \begin{document} \maketitle % 生成标题(标题、作者信息在preamble或此处定义) \input{sections/00_abstract} \newpage \tableofcontents % 生成目录 \newpage \input{sections/01_introduction} \input{sections/02_model} % ... 其他章节 \input{sections/06_references} \begin{appendix} % 附录 \input{sections/appendix_A} % 附录A,如核心代码 \end{appendix} \end{document}这种结构的好处是:分工明确,易于管理,降低冲突。每个人负责编辑自己的.tex文件,最后合并编译。修改某个章节时,不会意外影响到其他部分。
4. 核心内容模块的LaTeX实现技巧
有了稳固的框架,接下来就是往里面填充血肉。论文的每个部分都有其LaTeX实现的技巧和坑点。
4.1 标题、摘要与关键词:第一印象的塑造
标题、队员信息、摘要和关键词是评委最先看到的部分,必须规范、醒目。
% 在preamble.tex或main.tex的\begin{document}之前定义 \title{基于改进模拟退火算法的XXXX问题研究\\——2022年高教社杯全国大学生数学建模竞赛C题} \author{队员A \quad 队员B \quad 队员C\\ (学校名称, 城市, 邮编)} \date{} % 留空,不显示日期 % 在main.tex中 \begin{document} \maketitle % 此命令根据上面的定义生成标题页 \begin{abstract} 这里是摘要内容。摘要应简明扼要,包含研究问题、所用方法、主要模型、关键结论和亮点。通常控制在一段之内,300-500字为宜。摘要独立成页。 \textbf{关键词}:关键词一; 关键词二; 关键词三; 关键词四 \end{abstract} \thispagestyle{empty} % 摘要页不显示页眉页脚 \newpage实操心得:摘要页的页码样式(
\thispagestyle{empty})和后续正文的页码样式(通常从目录开始用阿拉伯数字1编号)需要特别注意。我们通过\pagenumbering{roman}和\pagenumbering{arabic}来切换页码格式,确保符合国赛论文要求(摘要、目录通常用罗马数字,正文用阿拉伯数字)。
4.2 数学公式与模型描述:竞赛论文的灵魂
这部分是LaTeX大显身手的地方。除了基本的行内公式($...$)和行间公式(\[...\]或equation环境),我们大量使用了align,gather,cases等环境来排版多行公式和分段函数。
技巧一:善用\label{}和\eqref{}为重要的公式添加标签,方便在文中引用。这不仅自动化了编号,也让文章逻辑更清晰。
\begin{equation}\label{eq:objective} \max Z = \sum_{i=1}^{n} p_i x_i \end{equation} 在模型中,我们的目标函数是追求总利润最大化(见式\eqref{eq:objective})。技巧二:自定义命令简化输入如果模型中反复出现某个复杂的符号或表达式,可以在导言区定义新命令。
% 在preamble.tex中 \newcommand{\vect}[1]{\boldsymbol{#1}} % 定义向量为粗体 \newcommand{\mat}[1]{\mathbf{#1}} % 定义矩阵为大写粗体 \newcommand{\R}{\mathbb{R}} % 实数集 % 在正文中 设决策变量 $\vect{x} \in \R^n$, 系数矩阵 $\mat{A} \in \R^{m \times n}$。这极大地提高了代码的可读性和输入效率。
技巧三:算法伪代码的专业呈现对于模型的求解算法,用伪代码描述比大段文字更清晰。我们使用algorithm和algorithmic宏包。
\begin{algorithm}[H] % [H]强制算法位于此处,不浮动 \caption{改进的模拟退火算法} \begin{algorithmic}[1] \REQUIRE 初始解 $s_0$, 初始温度 $T_0$, 终止温度 $T_f$, 降温系数 $\alpha$ \ENSURE 最优解 $s^*$ \STATE $s \gets s_0$, $T \gets T_0$, $s^* \gets s$ \WHILE{$T > T_f$} \FOR{$i = 1$ to $L$} \COMMENT{$L$为马尔可夫链长度} \STATE $s' \gets \text{Neighbor}(s)$ \COMMENT{产生新解} \STATE $\Delta E \gets f(s') - f(s)$ \IF{$\Delta E < 0$ or $\exp(-\Delta E / T) > \text{rand}(0,1)$} \STATE $s \gets s'$ \ENDIF \IF{$f(s) < f(s^*)$} \STATE $s^* \gets s$ \ENDIF \ENDFOR \STATE $T \gets \alpha \cdot T$ \COMMENT{降温} \ENDWHILE \RETURN $s^*$ \end{algorithmic} \end{algorithm}4.3 图表插入与排版:可视化表达的严谨性
“一图胜千言”,但图表的排版质量直接影响到论文的专业形象。
图片插入最佳实践:
- 格式优先:尽量使用矢量图格式,如
.pdf或.eps,放大不失真。我们用Python的Matplotlib或MATLAB绘图时,都直接保存为.pdf格式。 - 路径管理:将图片统一放在
figures/文件夹下,引用时路径清晰。 - 标准化插入:
\begin{figure}[H] % [H]强制图片位于此处 \centering \includegraphics[width=0.8\textwidth]{figures/flow_chart.pdf} \caption{模型求解流程图} \label{fig:flow_chart} \end{figure}[width=0.8\textwidth]使图片宽度为文本宽度的80%,美观且自适应。\caption和\label必须紧跟在\includegraphics之后,顺序不能错。
表格排版进阶:坚决使用booktabs宏包绘制三线表,避免使用竖直边框。
\begin{table}[H] \centering \caption{不同算法性能对比} \label{tab:comparison} \begin{tabular}{cccc} \toprule 算法 & 平均求解时间(s) & 最优解平均值 & 标准差 \\ \midrule 标准SA & 125.4 & 956.2 & 15.7 \\ 改进SA & 118.6 & 972.8 & 9.3 \\ 遗传算法 & 203.7 & 948.5 & 22.1 \\ \bottomrule \end{tabular} \end{table}对于复杂表格,结合multirow和multicolumn来合并单元格。
4.4 参考文献管理:学术规范的体现
我们使用BibTeX来管理参考文献。在sections/06_references.tex中,内容非常简单:
\bibliographystyle{gbt7714-numerical} % 使用符合国标GB/T 7714的数字标注样式 \bibliography{refs} % 引用名为refs.bib的数据库文件真正的功夫在refs.bib文件里。我们会在备赛期间和解题过程中,就将参考的文献(书籍、论文、网页)按BibTeX格式录入。
@article{knuth1984, title={Literate Programming}, author={Knuth, Donald E.}, journal={The Computer Journal}, volume={27}, number={2}, pages={97--111}, year={1984} } @book{latexcompanion, title={The {\LaTeX} Companion}, author={Mittelbach, Frank and Goossens, Michel}, publisher={Addison-Wesley}, year={2004} }在文中引用时,直接用\cite{knuth1984}或\cite{latexcompanion}。编译时,LaTeX会自动从.bib文件中提取被引用的条目,按顺序编号,并生成格式完美的参考文献列表。这完全避免了手动调整编号和格式的噩梦。
5. 竞赛实战中的高效工作流与避坑指南
72小时的高强度竞赛,效率就是生命。一套顺畅的LaTeX工作流至关重要。
5.1 分工协作模式
- 队长负责框架:一人在Overleaf上创建项目,搭建好
main.tex,preamble.tex和章节文件骨架,设置好编译方式(XeLaTeX或LuaLaTeX以更好支持中文),然后邀请队友加入。 - 并行内容创作:每人认领1-2个核心章节(如模型、求解、结果分析),在自己的
.tex文件里工作。Overleaf的实时预览让每个人都能看到自己的修改效果。 - 图表专人负责:指定一位队员专门负责用Python/MATLAB等工具绘图和制表,并将成品导出为
.pdf或.png上传至项目的figures/目录。其他队员在文中只需引用文件名。 - 定期合并与编译:每完成一个阶段性任务(如模型部分写完),负责人就在主文档中检查编译是否通过。避免最后时刻一次性合并导致错误百出。
5.2 常见编译错误与排查
即使有实时预览,也难免遇到编译报错(红色感叹号)。以下是几个我们踩过的坑:
- “Undefined control sequence”:最常见,通常是命令拼写错误或未加载所需宏包。仔细检查报错行附近的命令,并确认相关宏包已在导言区用
\usepackage{}引入。 - “Missing $ inserted”:数学环境错误。检查是否在文本模式中误用了数学符号(如
_,^,\sum),或者数学模式没有正确闭合。确保所有数学公式都被$...$,\[...\]或数学环境包裹。 - “File not found”:引用外部文件(如图片、.bib文件)时路径或文件名错误。检查文件名大小写、后缀名以及路径是否正确。Overleaf中注意文件是否已成功上传。
- 参考文献相关错误:编译顺序很重要。完整的编译流程应是:XeLaTeX -> BibTeX -> XeLaTeX -> XeLaTeX。在Overleaf中,通常将编译器设置为“XeLaTeX”,它有时会自动处理BibTeX。如果参考文献编号显示为“?”,手动执行一遍上述编译流程即可。
5.3 版本备份与应急方案
Overleaf虽好,但也不能把鸡蛋放在一个篮子里。
- 启用Git同步:Overleaf专业版支持与GitHub/GitLab等同步。我们当时使用的是免费版,所以设定了每半天手动下载一次完整的项目ZIP包到本地和网盘,作为备份。
- 本地备用环境:如前所述,我们在至少两台队员的电脑上安装了本地LaTeX环境(MiKTeX+TeXstudio),并测试过可以成功编译Overleaf下载的项目。这在最后提交前进行最终本地校对和生成PDF时也用上了。
- 最终PDF检查:在提交前,用Adobe Acrobat或福昕PDF编辑器等专业软件打开生成的PDF,检查:
- 所有字体是否已嵌入(防止在评委电脑上显示异常)。
- 所有图表是否清晰,有无模糊或错位。
- 超链接和书签是否正常。
- 页码编号是否正确、连续。
6. 从省一到国奖:LaTeX之外的思考
最后,我想说,LaTeX是一个强大的工具,但它终究只是工具。我们团队能获得省一,根本在于模型的新颖性、求解的严谨性和分析的深度。LaTeX所做的是,将我们这三天的智力成果,以一种无可挑剔的、专业的形式呈现出来,减少了评委在阅读时的任何“不适感”,让他们能把所有注意力都放在我们的模型和结论上。
它像一位沉默而专业的助手,帮我们处理了所有繁琐的格式问题。当你不再为调整一个公式的位置、一个表格的边框、一个参考文献的标点而分心时,你就能更专注于思考模型本身。这份专注,或许就是LaTeX带给竞赛队伍最大的礼物。
所以,如果你和你的团队正在备战,我强烈建议你们花上一天时间,一起学习并搭建起LaTeX写作环境。最初的爬坡确实需要一点耐心,但一旦掌握,它在整个竞赛期间乃至未来的学术生涯中,带给你的回报将是巨大的。从一篇格式工整、排版优美的论文开始,向评委展示你们团队的严谨与专业。