
1. 项目概述为什么数学建模必须拥抱LaTeX如果你正在准备数学建模竞赛或者正在撰写一篇包含大量公式的学术论文还在为Word里那些永远对不齐的公式编号、混乱的交叉引用和格式崩溃而头疼那么是时候认真了解一下LaTeX了。这不是一个简单的“公式编辑器”而是一个专业的文档排版系统尤其在数学、物理、计算机科学等理工科领域它几乎是学术写作的“标准答案”。我见过太多同学在国赛、美赛MCM/ICM或者亚太杯的deadline前夜因为Word文档的格式问题而崩溃最终影响了论文的呈现质量。而LaTeX恰恰就是为了解决这些问题而生的。简单来说LaTeX让你从繁琐的格式调整中解放出来你只需要关心你的内容——你的模型、你的推导、你的结论。它通过一套简洁的标记语言自动处理公式排版、编号、引用、目录生成、参考文献列表等所有排版细节。最终生成的PDF文档其公式的美观度和专业程度是任何“所见即所得”编辑器都难以媲美的。对于数学建模而言一篇排版精良、公式清晰的论文本身就是对评委专业性的尊重也能在无形中为你的作品加分。接下来我将从一个多年LaTeX使用者和数学建模指导者的角度为你拆解如何高效地利用LaTeX来书写数学建模论文中的公式并分享那些只有踩过坑才知道的实战经验。2. 核心需求解析数学建模论文对公式排版的具体要求在深入技术细节之前我们必须先明确数学建模论文中的公式有什么特殊要求。这不仅仅是“把公式打出来”那么简单它关系到论文的逻辑表达和专业性。2.1 公式的规范性与美观性数学建模论文中的公式往往是模型的核心。它们需要被清晰、准确地呈现。LaTeX默认的数学字体如Computer Modern在印刷品级别的分辨率下其间距、上下标位置、积分号和求和号的大小都经过精心设计。例如在Word中你可能会遇到分式中的分子分母看起来过于拥挤或者多重积分符号大小不协调的问题。LaTeX的数学引擎会自动处理这些细节确保即使是最复杂的多重积分或分块矩阵也能排版得赏心悦目。2.2 公式编号与交叉引用的自动化这是LaTeX相对于Word最大的优势之一。在数学建模论文中你建立的模型、推导的结论公式都需要被编号如公式(1)、公式(2)并在后文的“模型求解”、“结果分析”等部分反复引用。在Word中手动编号和交叉引用是一场噩梦插入一个新公式后面的所有编号都要手动更新引用链接也容易失效。而在LaTeX中你只需要为公式环境加上一个\label{eq:model}的标签在文中任何需要引用的地方使用\eqref{eq:model}命令。无论你之前如何增删公式编号和引用都会自动、准确地更新。这对于在最后时刻还在调整模型结构的竞赛场景来说是至关重要的效率工具。2.3 复杂数学结构的支持数学建模中常用的结构远不止简单的上下标。你可能会用到多行公式对齐在推导过程中一连串的等号需要严格对齐。分段函数用于表示不同条件下的模型表达式。矩阵与向量特别是带省略号的大型矩阵用于表示线性规划或状态空间模型。算法伪代码虽然不属于严格意义上的公式但也是模型求解部分的核心内容。特殊符号如黑体字母表示向量或矩阵\mathbf{x},\boldsymbol{\beta}花体字母表示集合\mathcal{S}等等。LaTeX通过相应的宏包如amsmath,algorithm2e,bm提供了对这些结构的原生且优雅的支持。2.4 与文本和图表的高效协同公式不是孤立的。它需要与周围的文字描述流畅结合有时还需要与表格、图片进行对照。LaTeX的浮动体figure,table环境和灵活的引用机制使得“见图X 其关系由公式Y描述”这样的叙述变得非常容易管理和维护。3. 环境搭建与工具选型打造顺手的LaTeX工作流工欲善其事必先利其器。选择一个适合自己的LaTeX发行版和编辑器能极大提升写作效率减少不必要的干扰。3.1 LaTeX发行版的选择与安装LaTeX本身是一个宏命令集合需要一个TeX系统引擎来编译。我们通常直接安装一个包含了引擎、宏包和常用工具的“发行版”。Windows用户首选MiKTeXMiKTeX的优势在于其“按需安装”机制。它体积相对较小在编译文档时如果遇到未安装的宏包会自动从网络仓库下载并安装。这对于新手和存储空间有限的用户非常友好。直接从其官网下载安装程序即可。macOS用户首选MacTeXMacTeX是macOS上最完整的发行版基于TeX Live包含了GUI工具和编辑器。安装简单一站式解决所有问题。跨平台/高级用户TeX LiveTeX Live是最全面的发行版更新及时包罗万象。你可以下载其网络安装器或完整ISO镜像进行安装。它也是大多数Linux发行版仓库中的标准选择。注意尽量避免从非官方或第三方网站下载所谓的“绿色版”或“破解版”这可能导致宏包缺失、编译错误或安全风险。务必从官网下载。3.2 编辑器的选择VSCode LaTeX Workshop 组合虽然有很多专用的LaTeX编辑器如TeXstudio, TeXmaker但我强烈推荐使用Visual Studio Code (VSCode)配合LaTeX Workshop扩展。理由如下一体化环境你可以用VSCode写代码、写文档、做笔记现在再加上写LaTeX无需在不同软件间切换。强大的扩展LaTeX Workshop扩展提供了近乎完美的LaTeX支持语法高亮、代码补全、一键编译、实时预览PDF、错误提示跳转、引用补全、大纲视图等。版本控制友好VSCode与Git无缝集成方便你管理论文的不同版本这对于团队协作的数学建模尤为重要。自定义性强你可以通过配置settings.json来定制编译链如用XeLaTeX处理中文字体用BibTeX管理参考文献。安装与配置简述安装VSCode。在扩展商店搜索并安装 “LaTeX Workshop”。基本的配置已经足够好用。如果需要处理中文可以在你的LaTeX文档所在文件夹下创建一个.vscode/settings.json文件配置编译命令为xelatex。3.3 必备宏包介绍宏包是LaTeX的功能扩展。对于数学建模你需要在文档导言区\begin{document}之前加载以下核心宏包\usepackage{amsmath} % 数学公式基础提供了 align, gather, multline 等环境 \usepackage{amssymb} % 额外的数学符号 \usepackage{bm} % 用于生成粗体的数学符号如向量 \bm{x} \usepackage{graphicx} % 插入图片 \usepackage{float} % 提供 [H] 等更灵活的浮动位置控制 \usepackage{booktabs} % 绘制三线表更美观 \usepackage{algorithm} % 算法伪代码环境 \usepackage{algpseudocode} % 算法伪代码样式 \usepackage{hyperref} % 让PDF中的引用和目录可点击跳转务必最后加载这些宏包涵盖了数学建模论文90%的需求。其他特殊需求如画电路图用的circuitikz 你搜索热词中提到的可以在需要时再安装。4. LaTeX公式语法精讲与实战示例这是最核心的部分。我们将从基础到进阶逐一拆解数学建模中会用到的公式写法。4.1 基础公式环境行内公式使用单个美元符号$...$或\(...\)。例如设变量 $x \in \mathbb{R}^n$ 则目标函数为 $f(x)$。行间公式无编号使用双美元符号$$...$$或\[...\]。但更推荐使用equation*环境因为它与amsmath宏包配合更好。这是一个无编号的行间公式 \[ E mc^2 \] 或者 \begin{equation*} E mc^2 \end{equation*}行间公式有编号使用equation环境。务必立即为其添加标签以便引用。\begin{equation}\label{eq:energy} E mc^2 \end{equation} 如公式 \eqref{eq:energy} 所示...4.2 多行公式对齐align环境这是推导过程最常用的环境。用指定对齐点通常放在等号前用\\换行。\begin{align} \min_{x} \quad f(x) \frac{1}{2} x^T Q x c^T x \label{eq:qp_obj} \\ \text{s.t.} \quad A x b, \label{eq:qp_eq} \\ x \geq 0. \label{eq:qp_ineq} \end{align}这段代码会生成一个优化问题模型三个公式分别编号(1)(2)(3)并且等号完美对齐。\quad用于增加一些水平间距让模型更美观。你可以用\label为每一行单独打标签。如果不想某一行编号就在该行换行符\\之前加上\notag。4.3 复杂数学结构矩阵\begin{equation} \mathbf{A} \begin{bmatrix} a_{11} a_{12} \cdots a_{1n} \\ a_{21} a_{22} \cdots a_{2n} \\ \vdots \vdots \ddots \vdots \\ a_{m1} a_{m2} \cdots a_{mn} \end{bmatrix}, \quad \mathbf{x} \begin{pmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{pmatrix} \end{equation}使用bmatrix环境生成方括号矩阵pmatrix生成圆括号矩阵。\cdots,\vdots,\ddots分别生成横、竖、斜向的省略号。分段函数使用cases环境。f(x) \begin{cases} x^2, \text{if } x \geq 0, \\ -x, \text{if } x 0. \end{cases}\text{}命令用于在数学模式中插入正体文本。积分、求和、极限\int_{0}^{\infty} e^{-x^2} dx \frac{\sqrt{\pi}}{2}, \quad \sum_{i1}^{n} i \frac{n(n1)}{2}, \quad \lim_{x \to 0} \frac{\sin x}{x} 1.上下标在行内公式和行间公式中会自动调整大小和位置。4.4 公式引用与自动编号的进阶技巧子公式编号当一组公式作为一个整体但内部又需要分别引用时使用subequations环境。\begin{subequations}\label{eq:sys} \begin{align} \dot{x} v, \label{eq:sys_a} \\ \dot{v} u - kx. \label{eq:sys_b} \end{align} \end{subequations}这会生成如 (4a)、(4b) 的编号。引用时\eqref{eq:sys}指向整个系统\eqref{eq:sys_a}指向第一个方程。手动调整编号在附录或特殊情况下你可以用\tag{}命令手动指定公式的编号标签。\begin{equation} a^2 b^2 c^2 \tag{Pythagoras} \end{equation}5. 数学建模论文LaTeX模板实战理解了基本语法后我们需要将其组织成一篇完整的论文。使用一个现成的、为数学建模竞赛优化的模板是最高效的方式。5.1 模板结构解析一个典型的数学建模LaTeX论文模板例如国赛或美赛的常用模板通常包含以下文件your_paper/ ├── main.tex % 主文档组织全文结构 ├── sections/ % 文件夹存放各章节 │ ├── abstract.tex % 摘要 │ ├── introduction.tex % 问题重述与背景 │ ├── model.tex % 模型建立公式核心区 │ ├── solve.tex % 模型求解 │ ├── result.tex % 结果分析 │ └── conclusion.tex % 结论与展望 ├── figures/ % 存放所有图片 │ └── flowchart.pdf ├── references.bib % BibTeX参考文献数据库 └── custom.sty % 自定义的宏包和样式文件可选这种模块化结构让协作和管理变得非常清晰。main.tex文件通过\input{sections/introduction.tex}这样的命令将各个章节组合起来。5.2 主文档 (main.tex) 框架示例\documentclass[12pt, a4paper]{article} % 文档类article适合论文 \usepackage[UTF8]{ctex} % 支持中文XeLaTeX编译必需 \usepackage{amsmath, amssymb, bm} % 数学宏包 \usepackage{graphicx, float} % 图片宏包 \usepackage{booktabs} % 表格宏包 \usepackage{algorithm, algpseudocode} % 算法宏包 \usepackage{hyperref} % 超链接必须最后加载之一 % 页面设置 \usepackage{geometry} \geometry{left2.5cm, right2.5cm, top2.5cm, bottom2.5cm} \title{202X年XX数学建模竞赛题目名称} \author{队伍编号XXXX \\ 成员张三\ 李四\ 王五} \date{\today} \begin{document} \maketitle % 生成标题 \tableofcontents % 生成目录 \newpage \begin{abstract} \input{sections/abstract} % 导入摘要 \end{abstract} \section{问题重述与分析} \input{sections/introduction} \section{模型假设与符号说明} \input{sections/assumptions} \section{模型的建立} \input{sections/model} % 这里将是公式最密集的部分 \section{模型的求解与算法} \input{sections/solve} \section{结果分析与检验} \input{sections/result} \section{模型的评价与推广} \input{sections/conclusion} \newpage \bibliographystyle{plain} % 参考文献样式 \bibliography{references} % 导入参考文献数据库 \begin{appendix} % 附录 \section{核心代码} \section{附加数据图表} \end{appendix} \end{document}5.3 在model.tex中组织你的公式这是你展示建模思想的核心章节。建议按逻辑分小节每个模型或公式集清晰标出。\subsection{问题一基于XXX的预测模型} 首先我们定义决策变量。令 $x_{ij} \in \{0, 1\}$ 表示... 其中 $i1,\dots,m$, $j1,\dots,n$。 我们的目标是最大化总收益同时满足资源约束。因此建立如下0-1整数规划模型 \begin{align} \max \quad Z \sum_{i1}^{m}\sum_{j1}^{n} p_{ij} x_{ij} \label{eq:p1_obj} \\ \text{s.t.} \quad \sum_{j1}^{n} r_{kj} x_{ij} \leq R_k, \quad \forall k, \label{eq:p1_res} \\ \sum_{i1}^{m} x_{ij} 1, \quad \forall j, \label{eq:p1_assign} \\ x_{ij} \in \{0, 1\}. \label{eq:p1_bin} \end{align} 其中式 \eqref{eq:p1_obj} 为目标函数...式 \eqref{eq:p1_res} 表示第 $k$ 类资源的总消耗量不得超过其上限 $R_k$式 \eqref{eq:p1_assign} 保证了每个任务 $j$ 必须被分配且仅分配给一个主体 $i$。 \subsection{问题二考虑不确定性的鲁棒优化模型} 在问题一的基础上考虑到参数 $p_{ij}$ 可能存在不确定性我们采用鲁棒优化方法... % 继续书写更多模型这种写法结构清晰引用方便极大增强了论文的可读性和专业性。6. 常见问题与排查技巧实录即使掌握了语法在实际写作和编译过程中也难免会遇到问题。以下是我总结的“高频坑点”及解决方案。6.1 编译错误与警告“Undefined control sequence”最常见的错误意味着你使用了一个LaTeX不认识的命令。排查检查命令拼写是否正确大小写敏感。确认是否忘记了加载必要的宏包如使用\bm却没加载bm宏包。技巧在VSCode中LaTeX Workshop扩展会在错误处划线将鼠标悬停其上可以看到提示。仔细阅读错误信息它通常会告诉你错误发生在哪一行。“Missing $ inserted”通常意味着你在数学模式外使用了数学符号或者在数学模式内错误地使用了文本命令。排查检查是否漏写了包裹公式的$...$或\[...\]。在数学模式中插入正体文本时是否使用了\text{...}。“LaTeX Warning: Citation ‘XXX’ on page Y undefined”参考文献引用未定义。解决流程使用BibTeX管理文献时需要多次编译。标准的编译顺序是XeLaTeX-BibTeX-XeLaTeX-XeLaTeX。在VSCode中可以配置一个编译工具链recipe自动完成这个过程。“Overfull \hbox” 警告一行文字超出了页边距。处理这通常是一个警告而非错误。可以检查是否在不该换行的地方手动换行了或者某个单词太长如长URL。有时可以忽略但太多会影响美观需要手动调整断行位置使用\\或调整措辞。6.2 公式排版中的“顽固”问题公式编号与引用变成“??”原因这是交叉引用信息没有更新。和参考文献一样需要完整编译流程。解决在VSCode中清理辅助文件删除.aux,.bbl,.blg 等然后重新完整编译。通常使用LaTeX Workshop的“Build LaTeX project”命令即可它会自动处理流程。公式与文字行间距过大原因行间公式上下默认有一定的垂直间距。调整可以在公式环境前后使用\vspace{-0.5em}进行微调负值减小间距。但需谨慎避免影响整体排版。长公式断行方法在align或multline环境中自然换行。对于行内公式如果太长可以考虑将其改为行间公式。也可以使用\split环境需要amsmath在一个equation环境内对长公式进行多行排版。自定义算子如期望E、方差Var的排版错误做法直接打E(X) 这会让“E”变成斜体看起来像变量。正确做法使用\operatorname或预先定义。\DeclareMathOperator{\E}{\mathbb{E}} % 在导言区定义 \DeclareMathOperator{\Var}{Var} 然后在文中使用$\E[X]$ 和 $\Var(X)$。6.3 中文支持与字体问题这是中文用户最常遇到的问题。关键在于使用ctex宏包或文档类并选择XeLaTeX或LuaLaTeX作为编译引擎。确保文档类或宏包支持中文最简单的方式是使用\documentclass[UTF8]{ctexart}或者\documentclass{article}配合\usepackage[UTF8]{ctex}。编译命令在编辑器设置或编译工具链中指定使用xelatex命令进行编译。pdflatex无法直接处理中文字体。字体警告如果遇到字体找不到的警告ctex宏包通常会回退到系统字体。如果想指定字体可以在导言区进行配置但对于数学建模竞赛默认的宋体/黑体搭配已完全足够。6.4 团队协作与版本管理数学建模是团队项目。如何高效协作编写LaTeX论文使用版本控制系统强烈推荐使用Git 配合GitHub或Gitee。将论文仓库化每个人在自己的分支上写作定期合并。这能完美解决版本冲突和回溯问题。分文件写作如前文模板所示将论文按章节拆分成多个.tex文件由main.tex组织。这样不同成员可以同时编辑不同章节减少冲突。定义统一命令在custom.sty或导言区统一定义常用的自定义命令、缩写和符号。例如\newcommand{\R}{\mathbb{R}} % 实数集 \newcommand{\diff}{\mathrm{d}} % 直立的微分算子d \newcommand{\T}{\mathsf{T}} % 转置符号这样在文中用$\R^n$代替$\mathbb{R}^n 不仅输入更快而且保证了全文格式统一。如果需要修改只需改定义一处即可。7. 从入门到精通效率提升与资源推荐掌握了基础之后如何进一步提升LaTeX写作效率和质量7.1 效率工具与技巧代码片段Snippets在VSCode中你可以为常用代码块创建片段。例如输入align然后按Tab自动补全一个完整的align环境框架。这能节省大量输入时间。引用自动补全LaTeX Workshop扩展提供了强大的引用补全功能。输入\eqref{后会弹出所有已定义的公式标签供你选择。反向搜索在生成的PDF中双击公式或章节可以跳转回VSCode中对应的源代码位置。这是调试和修改的神器。在线协作平台如Overleaf。它免安装实时预览内置版本历史非常适合团队协作。你可以将本地写好的模板上传到Overleaf继续协作。但注意网络稳定性关键时刻最好有本地备份。7.2 学习资源推荐入门教程一份不太简短的 LaTeX 2ε 介绍(lshort-zh-cn)最经典的中文入门教程覆盖了绝大多数基础知识。Overleaf LearnOverleaf官方的互动式学习指南有大量实例。符号查询Detexify手绘符号自动识别LaTeX命令。不认识符号时的救命稻草。The Comprehensive LaTeX Symbol List长达数百页的PDF收录了几乎所有符号。问题求助TeX - LaTeX Stack Exchange全球最专业的LaTeX问答社区。你遇到的几乎所有问题都能在这里找到答案。提问前请先搜索。CTeX论坛中文LaTeX用户社区适合讨论中文相关的问题。7.3 数学建模LaTeX写作的最后叮嘱尽早开始使用不要在比赛当天才开始学LaTeX。在平时练习、课程作业中就用起来熟悉基本语法和编译流程。备份备份备份无论是用Git还是云盘定期提交和备份。LaTeX是纯文本体积小非常适合版本管理。保持代码整洁多使用空行分隔逻辑块为复杂的公式块添加注释%。这不仅方便队友阅读几天后你自己回头看也能快速理解。先关注内容再微调样式LaTeX的默认样式已经非常专业。不要在比赛初期过度纠结于页眉页脚、字体颜色等细节。先把模型、公式、结果这些核心内容扎实地写进去。最后留出时间统一调整格式。PDF是最终成果提交前务必仔细检查最终生成的PDF。检查所有交叉引用是否正确图片是否清晰有无乱码或溢出页面。让队友也从读者的角度检查一遍。LaTeX的学习曲线初期确实比Word陡峭但一旦跨越你将获得的是整个学术生涯的写作效率与质量红利。对于数学建模而言它不仅仅是一个排版工具更是一种促使你结构化、逻辑化思考的写作方式。当你习惯了用代码思维去组织论文你会发现表达清晰、格式完美的论文本身就是强大建模能力的一部分。从这篇博文介绍的核心技巧开始实践找一道往年的赛题试着用LaTeX从头到尾完成一篇论文的写作你很快就能体会到那种“一切尽在掌控之中”的畅快感。