公司动态
LaTeX在数学建模竞赛中的核心优势与实战应用指南
1. 从零到一为什么国赛论文必须用LaTeX如果你正在准备全国大学生数学建模竞赛或者任何需要提交高质量学术论文的比赛那么“用什么工具写论文”这个问题很可能已经困扰了你一阵子。你身边或许有同学在用Word觉得所见即所得上手快也有的在用WPS功能类似。但当你看到那些排版精美、公式工整、引用规范的获奖论文时心里多半会嘀咕他们是怎么做到的答案大概率是LaTeX。这不是一个软件而是一个专业的排版系统。你可以把它理解为一个“代码驱动的排版引擎”。你写的是纯文本代码比如\section{问题重述}然后通过编译生成一个格式完美的PDF文档。这个过程就像程序员写代码然后运行出程序一样。为什么国赛这种级别的竞赛LaTeX几乎是默认的“专业选手”入场券原因很直接公式与排版的绝对优势数学建模论文的核心是数学公式。在Word里插入复杂的多行公式、矩阵、分段函数对齐和调整格式是场噩梦一个微小的改动就可能让整个文档的排版乱掉。LaTeX则不然它生来就是为了处理数学公式用简洁的语法如\begin{equation}就能生成出版级质量的公式且全局自动编号、交叉引用稳如泰山。结构与内容的分离你只需要关心“写什么”内容而“长什么样”格式由文档类.cls和宏包预先定义好。这意味着一旦你选好或定制了一个优秀的论文模板你的所有论文都会自动遵循统一的、专业的格式无需在字体、行距、页边距上浪费时间。引用与文献管理的自动化论文中引用参考文献是刚需。LaTeX配合BibTeX可以让你用一个.bib文件管理所有文献在文中用\cite{}命令引用最后自动生成格式完美的参考文献列表。完全不用担心顺序错乱、格式不一。版本控制友好因为源文件是纯文本你可以用Git等工具进行版本管理清晰地看到每一次修改的内容方便团队协作。而Word的.docx文件是二进制格式很难进行有效的差异对比。所以当你决定参加国赛使用LaTeX不是一个“可选项”而是一个能让你在起跑线上就获得显著优势的“必选项”。它前期学习曲线稍陡但一旦掌握在撰写长篇、多公式、多参考文献的学术文档时效率和质量是碾压级的。接下来的内容我将为你汇总一套经过实战检验的LaTeX代码框架、核心模块和避坑指南。这不是一个简单的模板压缩包而是一套“可运营”的解决方案我会解释每一部分为什么这样设计以及在实际比赛中如何高效使用。2. 国赛LaTeX论文的核心骨架与文件结构一个管理良好的LaTeX项目文件结构清晰至关重要。这不仅能让你自己思路清晰也便于队友协作。下面是一个我推荐并经过多次比赛验证的目录结构your_project/ ├── main.tex # 主文档论文的入口 ├── preamble.tex # 导言区设置所有样式和宏包定义 ├── references.bib # BibTeX参考文献数据库 ├── assets/ # 资源文件夹 │ ├── figures/ # 存放所有图片.pdf, .png, .jpg │ └── codes/ # 存放重要的算法代码片段备用 ├── chapters/ # 章节文件夹 │ ├── 01_abstract.tex │ ├── 02_introduction.tex │ ├── 03_model_building.tex │ ├── 04_model_solving.tex │ ├── 05_results_analysis.tex │ ├── 06_discussion.tex │ └── 07_conclusion.tex └── Makefile (或 compile.sh) # 编译脚本可选但强烈推荐为什么这样设计主次分离 (main.texpreamble.tex): 将长长的宏包加载和样式设置扔进preamble.tex让main.tex只负责组织文档结构\include或\input章节这样主文件非常干净修改结构一目了然。章节模块化 (chapters/): 每个章节一个独立.tex文件。好处是① 可以多人同时编辑不同章节用Git管理时冲突概率低② 编译时可以暂时注释掉未完成的章节快速编译已完成部分进行检查③ 心理上攻克一个个小文件比面对一个巨型文件压力小得多。资源集中管理 (assets/): 所有图片集中放置引用路径统一如assets/figures/model_flow.pdf。永远使用相对路径这样你把整个项目文件夹打包发给队友或上传系统不会出现图片丢失的惨剧。编译自动化 (Makefile): 国赛论文通常需要编译多次LaTeX - BibTeX - LaTeX x2才能生成正确的引用和目录。手动执行这些命令既容易错又浪费时间。一个简单的脚本能一键完成所有步骤。下面我们深入main.tex和preamble.tex的核心代码。2.1 主文档 (main.tex) 的标准化写法main.tex是论文的蓝图。它的核心任务是按顺序“组装”各个部分。% main.tex \documentclass[12pt, a4paper]{article} % 国赛一般用article12ptA4纸 \input{preamble} % 引入导言区设置 \begin{document} % 前置部分 \maketitle % 生成标题标题信息在preamble.tex中定义 \begin{abstract} \input{chapters/01_abstract} % 摘要单独文件 \end{abstract} \keywords{关键词一关键词二关键词三} % 关键词 % 主体部分 \tableofcontents % 目录 \newpage \input{chapters/02_introduction} % 问题重述与分析 \input{chapters/03_model_building} % 模型建立 \input{chapters/04_model_solving} % 模型求解 \input{chapters/05_results_analysis} % 结果分析 \input{chapters/06_discussion} % 模型的评价与推广 % \input{chapters/07_conclusion} % 结论如果要求 % 参考文献 \newpage \bibliographystyle{plain} % 参考文献样式国赛常用plain或unsrt \bibliography{references} % 指定BibTeX数据库文件 % 附录可选 \newpage \begin{appendix} \section{核心算法代码} % 可以在这里直接写代码或者输入外部文件 % \lstinputlisting[languagePython]{assets/codes/main_algorithm.py} \section{大型数据表格} % 如果正文放不下的超大表格可以放这里 \end{appendix} \end{document}注意这里使用了\input命令。它与\include的区别在于\input是简单插入而\include会另起一页并且有缓存机制适合更大的文档。对于国赛论文\input完全足够且更灵活。2.2 导言区 (preamble.tex) 的详细配置这里是LaTeX的“控制中心”所有样式和功能扩展都在此定义。一份好的导言区能让后续写作事半功倍。% preamble.tex % 标题、作者信息定义 \title{基于XXXX模型的XXXX问题研究} % 你的论文标题 \author{ 作者一 \thanks{学校邮箱} \\ 作者二 \thanks{学校邮箱} \\ 作者三 \thanks{学校邮箱} } \date{\today} % 自动生成当前日期或手动指定 \date{2023年9月10日} % 核心宏包加载 \usepackage[UTF8]{ctex} % 中文支持国赛必备确保你的编译器支持如XeLaTeX \usepackage{geometry} % 页面设置 \geometry{a4paper, left2.5cm, right2.5cm, top2.5cm, bottom2.5cm} % 国赛建议页边距 \usepackage{amsmath, amssymb, amsthm} % AMS数学公式宏包套件必备 \usepackage{bm} % 加粗的数学符号如向量 \bm{v} \usepackage{graphicx} % 插入图片 \graphicspath{{assets/figures/}} % 设置默认图片路径这样写\includegraphics{filename}即可 \usepackage{booktabs} % 绘制三线表专业美观 \usepackage{multirow, multicol} % 表格合并行/列 \usepackage{longtable} % 跨页长表格 \usepackage{hyperref} % 生成超链接目录、引用可点击 \hypersetup{ colorlinkstrue, linkcolorblue, filecolormagenta, urlcolorcyan, citecolorblue, } \usepackage{listings} % 插入代码 \usepackage{xcolor} % 代码高亮颜色定义 \lstset{ basicstyle\ttfamily\small, keywordstyle\color{blue}, commentstyle\color{green!60!black}, stringstyle\color{red}, numbersleft, numberstyle\tiny\color{gray}, framesingle, breaklinestrue, captionposb, tabsize4 } \usepackage{float} % 提供[H]等浮动体位置强制选项 \usepackage{caption} % 定制图表标题格式 \captionsetup{fontsmall, labelfontbf} % 标题字体设置 \usepackage{enumitem} % 定制列表环境 \setlist{nosep} % 减少列表项间距更紧凑 % 自定义命令与环境效率神器 % 1. 定义常用的数学符号集 \newcommand{\R}{\mathbb{R}} % 实数集 \newcommand{\N}{\mathbb{N}} % 自然数集 \newcommand{\E}{\mathbb{E}} % 期望 \newcommand{\prob}{\mathbb{P}} % 概率 % 2. 定义定理类环境如果论文需要 \newtheorem{definition}{定义}[section] \newtheorem{theorem}{定理}[section] \newtheorem{lemma}{引理}[section] \newtheorem{proof}{证明}[section] % 3. 定义一个用于输入模型假设的便捷环境 \newenvironment{assumptions} {\begin{itemize}[label{\textbf{假设 \arabic*.}}, leftmargin*]} {\end{itemize}} % 编译与调试提示 % 如果编译报错可以暂时注释掉hyperref宏包它有时会干扰错误定位。 % 使用XeLaTeX编译以支持ctex宏包的中文。这份preamble.tex是一个功能完备的起点。在实际比赛中你可能不需要所有宏包但有了它你可以随时按需启用或注释掉某些部分。3. 数学建模论文各章节的LaTeX写作范式有了骨架我们来填充血肉。数学建模论文有固定的章节结构每个部分都有其写作要点和对应的LaTeX实现技巧。3.1 摘要与关键词摘要虽然短但至关重要。它需要独立成页且严格控制在规定字数内国赛通常一页以内。% chapters/01_abstract.tex 本文针对\textbf{“XXXX问题”}通过分析其内在规律与约束条件建立了相应的数学模型并设计了高效的求解算法最终给出了具有参考价值的结论与建议。 首先针对问题一描述问题一我们提出了基于\textbf{XXX理论}的\textbf{YYY模型}。该模型的核心思想是用一两句话概括。通过具体方法如拟合、优化、仿真等我们得到了关键结果1。其指标达到了数值表明结论1。 其次对于问题二描述问题二我们在问题一模型的基础上引入了\textbf{ZZZ因素}进行拓展构建了\textbf{AAA-BBB联合模型}。该模型考虑了新考虑的条件。利用算法如遗传算法、模拟退火等进行求解得到了关键结果2。分析显示结论2。 进一步地针对问题三描述问题三我们综合前两问的结论建立了\textbf{综合评价体系}。通过评价方法如熵权法、TOPSIS等对对象进行评价/排序/预测结果为关键结果3。敏感性分析表明模型对某个参数的变化较为稳健/敏感。 最后我们总结了模型的优点如通用性强、求解效率高与局限性如对数据质量依赖大并提出了若干改进方向与推广建议。 \textbf{关键词}应在 main.tex 的 \keywords{} 命令中填写而不是在这里。这里只是摘要正文。摘要写作心得倒金字塔结构先总述再分问题阐述最后总结。每个问题遵循“模型-方法-结果-结论”的逻辑链。量化结果尽可能给出具体的数值结果如“误差降低15%”、“满意度达到92%”这比模糊的“效果良好”更有力。避免细节不要出现公式、图表引用、参考文献引用。用文字描述模型和结果。反复打磨摘要通常是评委最先看且看得最仔细的部分务必字斟句酌写完初稿后全文写完再回来修改摘要确保它精准概括全文精华。3.2 问题重述与分析这一部分不是简单抄写赛题而是展示你对问题的理解深度。% chapters/02_introduction.tex \section{问题重述与分析} \subsection{问题背景与重述} % 用自己的话重新组织题目背景突出问题的现实意义。 随着某个领域的发展某个问题日益凸显。本题要求参赛者基于提供的数据/信息解决以下X个核心问题 \begin{enumerate} \item \textbf{问题一}精确、简洁地重述问题一可拆分小点。 \item \textbf{问题二}精确、简洁地重述问题二。 \item \textbf{问题三}精确、简洁地重述问题三。 \end{enumerate} \subsection{问题分析} % 这是展示你解题思路的窗口多用流程图。 \textbf{3.2.1 问题一分析} 问题一的核心是指出核心矛盾或目标。其难点在于例如数据量大、约束复杂、目标多元。我们初步认为可以将其抽象为一个优化/预测/分类问题。解决思路如图\ref{fig:analysis1}所示。 \begin{figure}[H] % [H]强制图片就在当前位置需要float宏包 \centering \includegraphics[width0.8\textwidth]{problem1_analysis.pdf} % 使用矢量图PDF更清晰 \caption{问题一求解思路流程图} \label{fig:analysis1} \end{figure} \textbf{3.2.2 问题二分析} 问题二在问题一的基础上增加了新的条件或维度这使得原有模型的哪个部分不再适用。因此我们需要着重考虑如何整合新条件可能的途径是构建耦合模型或引入新的决策变量。 \textbf{3.2.3 问题三分析} 问题三要求进行评价/预测/决策这需要建立一个系统的评价体系。我们将综合考虑前两问的结果/指标利用某种评价方法进行量化评估。问题分析的心得图文并茂一张清晰的思路流程图可以用Visio、Draw.io甚至PPT画导出为PDF比大段文字更有说服力。抓住核心分析不是罗列所有可能而是直奔主题指出你认为最关键的一两个难点和突破口。承上启下分析的最后要自然过渡到下一章“我们因此建立如下模型”。3.3 模型建立这是论文的理论核心需要清晰地定义符号、阐述假设、建立数学模型。% chapters/03_model_building.tex \section{模型的建立} \subsection{模型准备} \subsubsection{符号说明} 为保证表述清晰本文使用的主要符号及其含义如表\ref{tab:symbols}所示。 \begin{table}[H] \centering \caption{主要符号说明} \label{tab:symbols} \begin{tabular}{ccl} \toprule \textbf{符号} \textbf{类型} \textbf{含义} \\ \midrule $N$ 标量 客户总数量 \\ $x_{ij}$ 0-1变量 表示客户$i$是否由配送中心$j$服务 \\ $d_{ij}$ 标量 从点$i$到点$j$的距离 \\ $\mathbf{w}$ 向量 神经网络权重向量 \\ $\mathcal{S}$ 集合 所有可能的解空间 \\ \bottomrule \end{tabular} \end{table} \subsubsection{基本假设} 为简化问题突出主要矛盾本文作出如下合理假设 \begin{assumptions} % 使用preamble中自定义的环境 \item 假设数据来源真实可靠无系统性误差。 \item 假设在短时间内系统的外部环境参数保持稳定。 \item 假设每个客户的需求必须被且仅被一个配送中心满足。 \item 根据具体问题继续添加... \end{assumptions} \subsection{问题一模型基于XXX的YYY模型} \subsubsection{模型构建} 基于问题分析我们将问题一建模为一个线性/非线性/整数规划模型。 \begin{itemize} \item \textbf{目标函数} 目标是最小化总成本/最大化总收益/最小化误差。其数学表达式为 \begin{equation} \min Z \sum_{i1}^{N}\sum_{j1}^{M} c_{ij} x_{ij} \label{eq:obj1} \end{equation} \item \textbf{约束条件} \begin{align} \sum_{j1}^{M} x_{ij} 1, \quad \forall i \in \{1,\dots,N\} \label{eq:con1} \\ \sum_{i1}^{N} d_i x_{ij} \le C_j, \quad \forall j \in \{1,\dots,M\} \label{eq:con2} \\ x_{ij} \in \{0, 1\}, \quad \forall i,j \label{eq:con3} \end{align} 其中式\eqref{eq:con1}保证了每个客户只被服务一次式\eqref{eq:con2}表示容量约束式\eqref{eq:con3}定义了决策变量的取值范围。 \end{itemize} \subsubsection{模型解释与创新点} 此处用文字解释模型的经济或物理意义并可以简要说明模型的创新之处例如“引入了模糊系数以处理不确定性”。 % 如果有多个子模型继续用\subsection, \subsubsection组织 \subsection{问题二模型ZZZ拓展模型} 结构类似注意引用问题一中的公式或变量体现模型的递进关系。模型建立的心得符号表先行在写公式前先给出符号表读者查阅方便显得非常专业。公式编号与引用使用\eqref{}引用公式编号LaTeX会自动处理编号和更新。如果公式很长需要换行使用\begin{align} ... \end{align}环境用于对齐\\用于换行。假设要合理且必要每一条假设都应服务于简化模型并且要在后面的“模型评价”部分讨论其合理性及放宽假设可能带来的影响。模型阐述重于罗列不要只扔出一堆公式。每个重要的公式下面都应该有一两句解释说明它代表了什么现实含义。3.4 模型求解与结果分析这部分展示你如何“算”出结果以及结果说明了什么。% chapters/04_model_solving.tex \section{模型的求解与结果分析} \subsection{求解算法设计} 对于\ref{sec:model1}节建立的模型这是一个混合整数线性规划模型我们选择使用\textbf{分支定界法}并调用\textbf{Gurobi}优化求解器进行求解。Gurobi是目前性能领先的商业优化求解器能高效处理大规模整数规划问题。 \textbf{算法核心步骤简述如下} \begin{enumerate} \item \textbf{松弛} 首先忽略整数约束求解线性规划松弛问题得到下界。 \item \textbf{分支} 选择一个分数变量 $x_{ij}$创建两个子问题分别固定 $x_{ij}0$ 和 $x_{ij}1$。 \item \textbf{定界与剪枝} 求解子问题的松弛解。若子问题不可行或其目标值差于当前最优整数解则剪枝该分支若得到新的整数解则更新当前最优解。 \item \textbf{迭代} 重复分支、定界过程直到所有分支被探查完毕。 \end{enumerate} 对于问题二的复杂非线性模型我们设计了\textbf{模拟退火算法}。其关键参数设置如下初始温度 $T_0 1000$衰减系数 $\alpha 0.95$马尔可夫链长度 $L 200$终止温度 $T_{end} 1e-6$。算法流程图如图\ref{fig:sa_flowchart}所示。 % 插入算法流程图 \subsection{数据处理与实验设置} 我们使用Python的Pandas库对提供的原始数据进行清洗处理了缺失值与异常值。所有实验均在配置为CPU: i7-12700H, RAM: 16GB的计算机上运行操作系统为Windows 11。编程环境为Python 3.9。 \subsection{求解结果与分析} \subsubsection{问题一结果} 运行模型求解后得到最优目标函数值 $Z^* 15432.7$单位。具体的配送方案如表\ref{tab:solution1}所示。 \begin{table}[H] \centering \caption{问题一最优配送方案部分} \label{tab:solution1} \begin{tabular}{cccc} \toprule \textbf{客户ID} \textbf{配送中心} \textbf{需求量} \textbf{是否服务} \\ \midrule C001 DC-A 150 是 \\ C002 DC-B 200 是 \\ ... ... ... ... \\ \bottomrule \end{tabular} \end{table} 为了更直观地展示结果我们绘制了配送网络图图\ref{fig:network1}。从图中可以看出方案呈现出明显的“聚类”特征符合预期。 % 插入结果图 \subsubsection{问题二结果} 在问题一基础上引入时间窗约束后总成本上升至 $16895.3$增幅约 $9.5\%$。这反映了服务质量准时性与成本之间的权衡。不同时间窗宽度下的成本变化曲线如图\ref{fig:cost_vs_window}所示可见当时间窗宽于4小时后成本增长趋于平缓。 % 插入敏感性分析图 \subsubsection{敏感性分析} 为检验模型的稳健性我们对关键参数如单位运输成本 $c_{ij}$进行了 $\pm 10\%$ 的扰动。结果显示最优目标值的变化范围在 $[-5.2\%, 6.1\%]$ 之间表明模型对参数波动不敏感具有较好的稳定性。求解与分析的心得算法要说人话不要只写“我们用了遗传算法”要简要说明为什么选它适合离散搜索、全局优化能力强以及关键参数是如何设定的可以引用一般经验值或说明经过了简单测试。环境要交代写明使用的软件、工具包、版本和硬件环境这是可重复性的体现。结果可视化图表比表格更直观表格比文字更精确。多用高质量的图表建议使用矢量图格式如PDF、SVG放大不失真。每个图表都必须有自解释性的标题和编号并在正文中引用。分析要深入不要只说“结果如表X所示”。要解读数据这个结果说明了什么趋势与你的预期是否一致为什么会出现这个结果结合模型本身和问题背景进行解释。4. 高效协作与编译团队如何玩转LaTeX数学建模是团队作战LaTeX项目的协作顺畅与否直接影响效率。4.1 版本控制Git避免“论文合并地狱”强烈建议使用Git配合GitHub、Gitee或GitLab管理你们的LaTeX项目。初始化一人在项目根目录执行git init创建.gitignore文件忽略编译中间文件如.aux,.log,.out,.bbl,.blg等。分工每人负责1-2个章节文件chapters/下的.tex文件。修改preamble.tex、main.tex或添加图片前先在团队内沟通。提交规范每次完成一个逻辑完整的修改后如写完一个小节执行git add chapters/03_model_building.tex git commit -m “feat: 完成3.1节符号说明与基本假设部分”提交信息写清楚方便回溯。解决冲突如果两人同时修改了同一行Git会标记冲突。此时需要面对面沟通决定保留谁的版本或手动合并。4.2 编译脚本一键生成最终PDF手动执行xelatex - bibtex - xelatex - xelatex太麻烦。创建一个脚本吧。对于Linux/macOS或Windows的Git Bash创建compile.sh#!/bin/bash # compile.sh echo 开始编译LaTeX文档... # 1. 第一次编译生成 .aux 等辅助文件 xelatex -synctex1 -interactionnonstopmode main.tex if [ $? -ne 0 ]; then echo 第一次xelatex编译失败请检查错误。 exit 1 fi # 2. 编译参考文献 bibtex main.aux if [ $? -ne 0 ]; then echo bibtex编译失败请检查 .bib 文件。 exit 1 fi # 3. 第二次编译插入参考文献引用 xelatex -synctex1 -interactionnonstopmode main.tex # 4. 第三次编译确保交叉引用目录、图表编号正确 xelatex -synctex1 -interactionnonstopmode main.tex echo 编译完成请查看 main.pdf 文件。对于Windows可以创建compile.batecho off REM compile.bat echo 开始编译LaTeX文档... xelatex -synctex1 -interactionnonstopmode main.tex if errorlevel 1 ( echo 第一次xelatex编译失败请检查错误。 pause exit /b 1 ) bibtex main.aux if errorlevel 1 ( echo bibtex编译失败请检查 .bib 文件。 pause exit /b 1 ) xelatex -synctex1 -interactionnonstopmode main.tex xelatex -synctex1 -interactionnonstopmode main.tex echo 编译完成请查看 main.pdf 文件。 pause在终端中运行./compile.sh或双击compile.bat即可一键得到最终的main.pdf。4.3 图片管理矢量图优先规范命名格式优先流程图、示意图尽量用矢量图.pdf,.svg。代码画图Python的Matplotlib保存时用plt.savefig(figure.pdf, bbox_inchestight)。软件画图Visio, Draw.io导出为PDF。位图.png,.jpg只用于照片或屏幕截图并确保分辨率足够300 dpi以上。规范命名图片文件名要有意义如problem1_analysis.pdf,result_comparison.png。避免使用1.png,aaa.jpg这种无法区分的名字。统一尺寸在LaTeX中用[width0.8\textwidth]或[height5cm]来控制图片大小保持全文图表风格统一。5. 实战中的高频“踩坑点”与解决方案即使有了模板在实际写作中你依然会遇到各种报错和奇葩问题。下面是一些我踩过的坑和填坑方法。5.1 中文与字体问题乱码与找不到字体问题使用ctex宏包后编译中文显示为乱码或报错“字体XXX找不到”。根因与解决编译器选错必须使用XeLaTeX或LuaLaTeX编译器因为它们原生支持UTF-8编码和系统字体。在Overleaf上菜单的“编译器”选项中选择“XeLaTeX”。在本地TeX发行版如TeX Live, MiKTeX的编辑器中如TeXstudio, VS Code with LaTeX Workshop也需要在设置里将默认编译器改为XeLaTeX。文件编码错误确保你的所有.tex文件都以UTF-8 without BOM格式保存。这是现代编辑器的默认设置但如果你用Windows记事本编辑过可能会出问题。用VS Code、Sublime Text等编辑器重新保存。字体缺失本地编译ctex默认会尝试使用系统中文字体。如果报字体错误可以在preamble.tex中显式指定字体\usepackage{fontspec} \setmainfont{SimSun} % 设置宋体为主字体 \setsansfont{SimHei} % 设置黑体为无衬线字体 \setmonoffont{Consolas} % 设置等宽字体将SimSun,SimHei替换成你系统里有的中文字体名如“Microsoft YaHei”。5.2 参考文献管理引用显示问号 [?]问题文中用\cite{key}引用的文献在PDF里显示为 [?]。根因与解决这是LaTeX引用机制的问题。参考文献需要多轮编译才能正确显示。确保编译流程正确这就是为什么需要编译脚本。必须执行xelatex - bibtex - xelatex - xelatex。检查.bib文件确保\bibliography{references}中的文件名不包含后缀与你的.bib文件如references.bib匹配。确保\cite{key}中的key在.bib文件中存在且拼写一致。检查.bib文件语法常见条目如下article{greenwade93, author George Greenwade, title The {C}omprehensive {T}ex {A}rchive {N}etwork ({CTAN}), year 1993, journal TUGBoat, volume 14, number 3, pages 342--351 } book{knuth84, author Donald E. Knuth, title The {TeX}book, year 1984, publisher Addison-Wesley }清理中间文件再重试删除所有.aux,.bbl,.blg,.log文件除了.tex,.bib,.pdf和图片然后重新执行完整编译流程。很多编辑器有“清理辅助文件”的功能。5.3 浮动体排版图表乱跑不听话问题图表没有出现在我插入的代码附近而是跑到了下一页或某一页的顶部/底部。根因LaTeX中figure和table环境默认是“浮动体”LaTeX会为了优化整体版面而调整它们的位置。这是特性不是bug。解决策略轻度控制使用[htbp]位置参数表示“尽量放在这里(h)顶部(t)底部(b)单独一页(p)”。\begin{figure}[htbp]。强制放置慎用加载float宏包后使用[H]大写H选项强制将浮动体放在当前代码位置。\begin{figure}[H]。缺点可能导致当前页留下大片空白。心理接受对于大型文档适当浮动是正常的。确保所有图表都有清晰的标题和标签\label并在文中用图\ref{fig:xxx}正确引用读者可以根据编号找到它实际位置不重要。使用\caption和\label的顺序\label必须放在\caption之后因为\caption才会生成编号。\begin{figure} ... \caption{...} \label{...} ... \end{figure}。5.4 复杂表格制作三线表与合并单元格问题如何制作专业的三线表如何合并行和列解决方案使用booktabs宏包绘制三线表用multirow和multicolumn宏包合并单元格。\usepackage{booktabs, multirow, multicol} % 在preamble中 \begin{table}[H] \centering \caption{一个合并单元格的三线表示例} \label{tab:complex_table} \begin{tabular}{cccc} \toprule \multirow{2}{*}{\textbf{类别}} \multicolumn{2}{c}{\textbf{指标}} \multirow{2}{*}{\textbf{备注}} \\ \cmidrule(lr){2-3} % 2-3列的中线 指标A 指标B \\ \midrule 模型X 0.95 0.87 表现优秀 \\ 模型Y 0.89 0.92 \multirow{2}{*}{需要调参} \\ 模型Z 0.78 0.85 \\ \bottomrule \end{tabular} \end{table}5.5 最后时刻的终极检查清单在提交论文前请对照此清单逐项检查格式合规性[ ] 页边距、字体大小、行距是否符合竞赛要求国赛通常有官方模板或说明[ ] 摘要是否单独一页关键词格式是否正确[ ] 图表标题、表头、公式编号格式是否全文统一[ ] 参考文献格式是否符合要求如国赛常用plain或unsrt内容完整性[ ] 所有章节标题编号是否连续、正确[ ] 文中所有\ref{}和\cite{}引用是否都显示为正确编号而非 [?][ ] 目录、图表索引是否生成且页码正确编译足够次数[ ] 是否已删除所有用于调试的注释如% TODO:和无关代码文件与提交[ ] 最终提交的PDF是否由脚本完整编译生成避免用“打印为PDF”功能可能丢失超链接[ ] 是否将整个项目文件夹含.tex,.bib, 图片文件夹打包备份这是你宝贵的原始资料。[ ] 如果要求提交源代码是否整理了相关的算法代码文件如.py,.m并放在指定位置LaTeX是一把利器初学时会觉得繁琐但一旦掌握它带给你的效率提升和成果质量是质的飞跃。这份汇总不仅提供了代码模板更希望传递一种“结构化、可管理”的写作思想。在三天高强度的国赛竞争中一个稳定、高效的写作框架能让你和你的团队更专注于建模与求解本身而不是和格式纠缠。希望这套从骨架到细节再到协作避坑的完整方案能成为你冲击国赛奖项的坚实助力。