1. 项目概述:为什么是LaTeX,为什么是现在?
如果你正在准备数学建模美赛、国赛,或者刚开始接触科研论文写作,大概率已经听人提过无数次“用LaTeX排版”。第一次听到这个词,你可能会觉得它很神秘,甚至有点“劝退”——它不像Word那样有个直观的界面,点开就能打字。但当你看到那些排版精美、公式工整、引用规范的学术论文时,心里又会痒痒的。这个教程的目的,就是帮你用最短的时间,跨过从“听说”到“上手”这道门槛。我不讲复杂的历史和底层原理,只聚焦一件事:如何在30分钟内,让你能独立完成一份基础但规范的LaTeX文档,并应用到数学建模或科研写作中。
LaTeX本质上是一个专业的文档排版系统。你可以把它理解为一个“用代码写文章”的工具。你写下一段段带有特定命令的“源代码”,然后通过编译,生成最终的PDF文档。这种“内容与格式分离”的思想,正是它强大之处的根源。在Word里,你可能需要不停地调整字体、间距、对齐,一个公式的编号变动就可能让整个文档的引用乱套。而在LaTeX里,你只需要声明“这里是一个公式”,系统会自动为你处理编号、引用和格式,确保整篇文档风格统一、结构严谨。对于数学建模论文这种包含大量公式、图表、参考文献的文档,LaTeX的效率优势是碾压性的。
网络上关于LaTeX的教程浩如烟海,但很多要么过于简略,只给个“Hello World”例子;要么过于深入,一上来就讲宏包和自定义命令,让新手望而却步。我这个“30分钟速通”的思路,是经过多年带学生和自身科研写作总结出来的最短学习路径。它基于一个核心判断:对于新手,最重要的不是掌握LaTeX的全部,而是快速建立“我能用它干活”的信心。因此,我会带你搭建一个“最小可行环境”,然后直接上手写一篇包含标题、章节、公式、表格、图片和参考文献的“麻雀虽小,五脏俱全”的短文。整个过程,你就像在组装一个乐高模型,我会告诉你每一块积木(命令)是干什么的,以及应该放在哪里。30分钟后,你不仅会得到一个可运行的PDF,更会理解LaTeX的基本工作逻辑,从而具备了自己查阅资料、解决更复杂问题的基础能力。
2. 环境搭建与工具选择:告别复杂配置
工欲善其事,必先利其器。但LaTeX的“器”常常是新手的第一道拦路虎。网上有各种发行版(TeX Live, MiKTeX, MacTeX)、各种编辑器(TeXworks, TeXstudio, VS Code),让人眼花缭乱。我的建议是:在入门阶段,追求极简和稳定,避免在环境配置上消耗过多精力。
2.1 在线方案:Overleaf——零配置的起点
对于绝大多数新手,尤其是时间紧迫的数学建模参赛者,我首推Overleaf。它是一个在线的LaTeX编辑和编译平台,你只需要一个浏览器。
为什么首选Overleaf?
- 零安装:无需在本地安装任何软件,打开网站注册即可使用。完美解决了“安装报错”、“环境冲突”这些令人头疼的问题。
- 协作方便:美赛、科研经常需要团队合作。Overleaf天然支持多人实时在线编辑,修改历史清晰可查,比用Word传来传去高效得多。
- 模板丰富:Overleaf有海量的官方和用户贡献的模板,包括各大期刊、会议以及数学建模比赛的模板。你几乎可以“开箱即用”。
- 自动编译:你一边写代码,它一边在后台预览PDF,错误提示也很直观。
操作步骤:
- 访问 Overleaf 官网并注册账号。
- 点击“New Project”,选择“Blank Project”创建一个空项目。
- 系统会自动生成一个包含基本框架的
main.tex文件和一个预览窗口。至此,你的LaTeX环境已经就绪。
注意:Overleaf的免费版本对于撰写数学建模论文或普通科研论文完全够用。它的主要限制是编译速度在高峰期可能稍慢,以及需要联网使用。但对于入门和绝大多数应用场景,这都不是问题。
2.2 本地方案:TeX Live + VS Code——追求效率的进阶之选
如果你追求极致的编译速度、需要离线工作、或习惯本地管理的安全感,那么搭建本地环境是更好的选择。这套组合是我个人科研写作的主力工具。
1. 安装LaTeX发行版:TeX LiveTeX Live是跨平台、功能最全的发行版。它包含了LaTeX核心引擎、宏包、字体等所有必要组件。
- Windows/Mac/Linux用户:均推荐从TeX Live官网下载安装包。安装过程时间较长(约1-2小时,取决于网速和组件选择),但一劳永逸。安装时选择“简易安装”即可,无需自定义。
- Windows用户替代方案:也可以选择MiKTeX,它的特点是“按需安装”,即用到某个宏包时才下载安装,初始安装快,但可能在写作过程中因下载宏包而中断。
2. 安装编辑器:Visual Studio Code (VS Code)VS Code不是专为LaTeX设计,但通过插件可以变成非常强大的LaTeX IDE。
- 安装VS Code。
- 安装LaTeX Workshop插件。这个插件提供了语法高亮、代码补全、一键编译、正向/反向搜索(在代码和PDF间跳转)等几乎所有你需要的功能。
3. 配置VS Code(关键步骤)安装插件后,需要进行简单配置以适配中文和优化体验。按下Ctrl+Shift+P,输入“Open Settings (JSON)”,在用户设置文件中添加或修改以下配置:
{ "latex-workshop.latex.recipes": [ { "name": "xelatex -> bibtex -> xelatex*2", "tools": ["xelatex", "bibtex", "xelatex", "xelatex"] } ], "latex-workshop.latex.tools": [ { "name": "xelatex", "command": "xelatex", "args": ["-synctex=1", "-interaction=nonstopmode", "-file-line-error", "%DOCFILE%"] }, { "name": "bibtex", "command": "bibtex", "args": ["%DOCFILE%"] } ], "latex-workshop.view.pdf.viewer": "tab", "latex-workshop.latex.autoClean.run": "onBuilt", "latex-workshop.latex.autoBuild.run": "onSave" }这段配置定义了一个编译链(recipe),能正确处理含参考文献的文档,并设置了保存时自动编译、在VS Code内预览PDF等功能。
实操心得:本地环境配置看似步骤多,但一旦配好,写作流畅度远超在线平台。特别是“正向搜索”(从PDF点击跳回源码对应行)和“反向搜索”,在调试长文档时是神器。建议新手可以先在Overleaf上熟悉基本操作,等完成第一个项目后,再迁移到本地环境,这样心理负担小。
3. LaTeX核心语法与文档结构:从“Hello World”到论文框架
现在,无论你选择在线还是本地,我们都已经有了一个可以编写和编译LaTeX代码的环境。让我们从一个最简单的文档开始,逐步拆解LaTeX的核心语法。
3.1 第一个LaTeX文档
在编辑器里,输入以下代码:
\documentclass{article} \usepackage[UTF8]{ctex} % 支持中文 \begin{document} Hello, LaTeX! 这是我的第一个LaTeX文档。 \end{document}点击编译按钮(在Overleaf中是“Recompile”,在VS Code中默认是保存后自动编译),你将在右侧看到生成的PDF,里面显示着“Hello, LaTeX! 这是我的第一个LaTeX文档。”
逐行解析:
\documentclass{article}:这是每个LaTeX文档的第一条命令。它声明了文档的类型(class)。article是最常用的类型,适用于短文、报告、论文等。其他常见类型还有report(长报告、学位论文)、book(书籍)、beamer(幻灯片)。\usepackage[UTF8]{ctex}:这是一条加载宏包(package)的命令。宏包用来扩展LaTeX的基础功能。ctex宏包是处理中文排版的核心,[UTF8]选项指定文件编码为UTF-8,这是现代文本文件的通用编码。\begin{document}和\end{document}:这一对命令定义了文档正文(body)的开始和结束。所有你希望出现在最终PDF里的内容,都必须写在这两者之间。- 中间的那行文字就是正文内容。
一个重要的概念:命令与环境。
- 命令(Command):以反斜杠
\开头,用于执行特定操作。有的命令带花括号{}参数,有的带方括号[]可选参数。例如\documentclass{article},article是传递给该命令的参数。 - 环境(Environment):以
\begin{环境名}开始,以\end{环境名}结束。环境用于定义一块具有特殊格式或行为的区域。document环境就是最重要的一个。我们后面会用到equation(公式)、table(表格)、figure(图片)等环境。
3.2 构建完整的论文结构
一篇数学建模或科研论文,通常包含标题、作者、摘要、章节、段落等结构。我们来一步步构建它。
\documentclass{article} \usepackage[UTF8]{ctex} \usepackage{amsmath, amssymb} % 数学公式宏包 \usepackage{graphicx} % 插入图片宏包 \usepackage{geometry} % 页面设置宏包 \geometry{a4paper, scale=0.8} % 设置A4纸,缩放80%(可选,让版面更紧凑) \title{基于灰色预测模型的城市用电量分析} % 标题 \author{张三 \\ 北京大学 \and 李四 \\ 清华大学} % 作者,\\ 换行,\and 分隔不同作者 \date{\today} % 日期,\today 会自动生成当前日期 \begin{document} \maketitle % 生成标题页 \begin{abstract} 本文针对城市用电量的预测问题,建立了基于灰色系统理论GM(1,1)的预测模型。首先,我们对原始用电量数据进行预处理与检验;其次,构建了GM(1,1)模型并求解其时间响应函数;最后,利用该模型对未来三年的用电量进行了预测,并进行了后验差检验。结果表明,模型精度等级为“好”,预测结果可为城市电网规划提供参考。 \textbf{关键词:} 灰色预测;GM(1,1)模型;用电量;数学建模 \end{abstract} \section{引言} % 一级章节 随着我国城市化进程的加速,城市用电负荷持续增长,对电网的规划和运行提出了更高要求。准确预测未来用电量,是保障电力系统安全、稳定、经济运行的基础。传统的预测方法如时间序列分析、回归分析等,往往需要大量数据且要求数据服从典型分布。而灰色预测模型\cite{deng1989}对数据要求较低,适用于“小样本”、“贫信息”的不确定性问题,在电力负荷预测领域展现出独特优势。 \section{模型建立与求解} \subsection{数据预处理} % 二级章节 设原始非负用电量数据序列为 $X^{(0)} = (x^{(0)}(1), x^{(0)}(2), \dots, x^{(0)}(n))$。首先对其进行级比检验... \subsection{GM(1,1)模型} 对 $X^{(0)}$ 进行一次累加生成(1-AGO),得到新序列 $X^{(1)}$... GM(1,1)模型的白化微分方程为: \begin{equation} % 单行公式环境,自动编号 \frac{dx^{(1)}}{dt} + a x^{(1)} = b \end{equation} 其中,$a$ 为发展系数,$b$ 为灰色作用量... \section{模型检验与预测} \subsection{后验差检验} 后验差比值 $C$ 和小误差概率 $P$ 是衡量灰色模型精度的两个重要指标... 模型精度等级对照表如表\ref{tab:accuracy}所示。 % 引用表格标签 \begin{table}[htbp] % 表格环境,[htbp]是位置参数,表示尽量放在这里(h),页顶(t),页底(b),独立一页(p) \centering % 表格居中 \caption{灰色模型精度等级对照表} % 表格标题 \label{tab:accuracy} % 表格标签,用于引用 \begin{tabular}{|c|c|c|} % 开始表格,{|c|c|c|} 定义三列都居中,竖线表示列边框 \hline % 横线 精度等级 & 后验差比值 $C$ & 小误差概率 $P$ \\ \hline 好(一级) & $C \leq 0.35$ & $P \geq 0.95$ \\ \hline 合格(二级) & $0.35 < C \leq 0.5$ & $0.80 \leq P < 0.95$ \\ \hline 勉强(三级) & $0.5 < C \leq 0.65$ & $0.70 \leq P < 0.80$ \\ \hline 不合格(四级) & $C > 0.65$ & $P < 0.70$ \\ \hline \end{tabular} \end{table} \subsection{预测结果} 根据建立的模型,未来三年用电量预测值如图\ref{fig:forecast}所示。 % 引用图片标签 \begin{figure}[htbp] \centering \includegraphics[width=0.8\textwidth]{forecast_curve.png} % 插入图片,宽度设为文本宽度的80% \caption{未来三年城市用电量预测曲线} % 图片标题 \label{fig:forecast} % 图片标签,用于引用 \end{figure} \section{结论} 本文成功应用GM(1,1)灰色预测模型对城市用电量进行了分析...模型预测结果显示,未来三年用电量将保持稳定增长趋势,增长率约为...本研究为小样本条件下的电力负荷预测提供了一种有效方法。 % 参考文献部分 \begin{thebibliography}{99} % 开始参考文献环境,{99}设置标签宽度 \bibitem{deng1989} 邓聚龙. 灰色控制系统[J]. 华中理工大学出版社, 1985. \bibitem{liu2010} 刘思峰, 党耀国. 灰色系统理论及其应用[M]. 科学出版社, 2010. \end{thebibliography} \end{document}这段代码已经是一篇结构完整的“微型论文”了。我们来梳理一下新增的核心要点:
- 标题、作者、日期:使用
\title{},\author{},\date{}命令定义,但必须要在正文中使用\maketitle命令才会实际生成标题页。 - 摘要环境:
abstract环境用于撰写摘要。注意关键词的加粗使用了\textbf{}命令。 - 章节命令:
\section{}生成一级标题,\subsection{}生成二级标题。LaTeX会自动进行编号(1, 1.1, 2...)。 - 数学公式:
- 行内公式:用单个美元符号
$...$包裹,如$a x^{(1)} = b$。 - 行间公式(自动编号):使用
equation环境。 - 我们加载了
amsmath和amssymb宏包,它们提供了更丰富的数学符号和排版功能。
- 行内公式:用单个美元符号
- 表格环境:
table环境是表格的浮动体(float),[htbp]是位置参数,告诉LaTeX尽量将表格放在此处(h)、页顶(t)、页底(b)或独立一页(p)。多写几个选项能提高放置成功率。\caption设置表格标题,\label设置标签。tabular环境是实际绘制表格的地方。{|c|c|c|}定义了表格格式:三列,每列居中(c),列之间有竖线(|)。\hline画横线,\\换行。
- 图片环境:
figure环境是图片的浮动体,参数同table。\includegraphics命令插入图片。[width=0.8\textwidth]将图片宽度缩放至文本宽度的80%,这是一个保持图片清晰且适配版面的常用比例。forecast_curve.png是图片文件名(需与.tex文件在同一目录,或在指定路径下)。- 同样使用
\caption和\label。
- 交叉引用:使用
\ref{标签名}来引用图表或公式的编号。例如,在文中写“如表\ref{tab:accuracy}所示”,编译后会自动变成“如表1所示”。这是LaTeX自动化管理的精髓之一,无论你如何调整图表顺序,编号和引用都会自动更新。 - 参考文献(基础方法):
thebibliography环境用于手动管理参考文献。\bibitem{标签}定义一条文献,在文中用\cite{标签}引用,如\cite{deng1989}。
注意事项:图片路径问题在本地编译时最常见。确保图片文件(如
forecast_curve.png)与你的.tex主文件在同一个文件夹中,或者使用相对路径(如figures/forecast.png)。推荐将所有图片放在一个名为figures的子文件夹中,使用\includegraphics{figures/forecast.png}来引用,这样项目结构更清晰。
4. 数学公式与图表进阶:让论文“专业”起来
掌握了基本结构,我们就可以深入数学建模和科研中最核心的部分:公式和图表的精细化排版。
4.1 复杂数学公式排版
数学建模论文离不开复杂的公式。amsmath宏包提供了强大的支持。
多行公式对齐:在公式推导中,我们经常需要将一系列等号对齐。这时可以使用align环境。
\begin{align} % align环境,每行公式都有编号 \hat{a} &= (B^T B)^{-1} B^T Y \label{eq:estimate_a} \\ % \\ 换行, & 是对齐点(通常放在等号前) \hat{b} &= \frac{1}{n} \sum_{k=1}^{n} \left( x^{(0)}(k) - \hat{a} z^{(1)}(k) \right) \label{eq:estimate_b} \end{align}\label可以为公式打上标签,方便后用\eqref{eq:estimate_a}引用。\left(和\right)会自动调整括号大小以适应内容。
矩阵与向量:
\[ % 这是行间公式的另一种写法(不带编号) B = \begin{bmatrix} % bmatrix环境生成带方括号的矩阵 -z^{(1)}(2) & 1 \\ -z^{(1)}(3) & 1 \\ \vdots & \vdots \\ -z^{(1)}(n) & 1 \end{bmatrix}, \quad Y = \begin{bmatrix} x^{(0)}(2) \\ x^{(0)}(3) \\ \vdots \\ x^{(0)}(n) \end{bmatrix} \]\begin{bmatrix} ... \end{bmatrix}用于生成矩阵。\vdots生成竖省略号。\quad插入一个较大的水平间距。
分段函数:
\[ P = \begin{cases} % cases环境 0.95, & \text{若 } C \leq 0.35 \\ 0.80, & \text{若 } 0.35 < C \leq 0.5 \\ 0.70, & \text{若 } 0.5 < C \leq 0.65 \\ 0, & \text{其他} \end{cases} \]cases环境完美排版分段函数。\text{}命令在数学模式中插入正常的文本。
4.2 三线表与跨页表格
学术论文中常用三线表,看起来更简洁专业。我们使用booktabs宏包来绘制高质量的表格。
首先在导言区加载宏包:\usepackage{booktabs}。
\begin{table}[htbp] \centering \caption{模型预测结果与误差分析} \label{tab:prediction} \begin{tabular}{cccc} % 四列,都居中,去掉所有竖线 \toprule % 顶线 年份 & 实际值(亿千瓦时) & 预测值(亿千瓦时) & 相对误差(\%) \\ \midrule % 中线 2021 & 1250.3 & 1248.7 & 0.13 \\ 2022 & 1320.8 & 1325.1 & 0.33 \\ 2023 & 1395.2 & 1402.9 & 0.55 \\ 2024 & -- & 1482.5 & -- \\ 2025 & -- & 1564.0 & -- \\ \bottomrule % 底线 \end{tabular} \end{table}\toprule,\midrule,\bottomrule是booktabs提供的命令,它们会产生粗细得当、间距优美的横线,比\hline美观得多。
如果表格特别长,需要跨页显示,可以使用longtable宏包。它替代了tabular环境,能自动处理分页。
4.3 子图与图片排版技巧
一篇论文中经常需要并排展示多张图片进行对比。subfigure或subcaption宏包可以实现子图功能。这里推荐更现代的subcaption宏包。
\usepackage{subcaption} % 导言区加载 \begin{figure}[htbp] \centering \begin{subfigure}[b]{0.48\textwidth} % [b]底部对齐,宽度占文本宽度的48% \centering \includegraphics[width=\linewidth]{data_original.png} % \linewidth是子图的宽度 \caption{原始用电量序列} \label{fig:sub1} \end{subfigure} \hfill % 填充水平空间,使两个子图分开 \begin{subfigure}[b]{0.48\textwidth} \centering \includegraphics[width=\linewidth]{data_ago.png} \caption{一次累加生成(AGO)序列} \label{fig:sub2} \end{subfigure} \caption{用电量数据预处理前后对比} \label{fig:data_process} \end{figure}这样就能生成并排的两张子图,每张图都有自己的小标题(\caption)和标签(\label),同时还有一个总标题。
实操心得:图片格式与清晰度。LaTeX最兼容的矢量图格式是PDF和EPS,它们无限放大不失真,非常适合论文中的曲线图(建议从Matlab、Python的Matplotlib等工具直接导出PDF)。对于照片、屏幕截图等,可以使用PNG或JPG格式。在最终提交论文前,务必检查生成PDF中图片的清晰度,确保打印后依然清晰可辨。一个常见技巧是,在
\includegraphics命令中指定dpi=300或更高,但更根本的是确保原始图片有足够分辨率。
5. 参考文献管理与高级功能
手动在thebibliography环境里一条条添加文献,在文献数量多时非常繁琐,且格式容易出错。学术写作强烈推荐使用BibTeX或BibLaTeX进行自动化参考文献管理。
5.1 使用BibTeX管理文献
工作流程:
- 创建一个纯文本文件,例如
refs.bib。在这个文件里,你不用管格式,只需要按字段填写文献信息。 - 在LaTeX文档中,用
\cite{标签}引用。 - 使用特定的编译链(前面VS Code配置中的
xelatex -> bibtex -> xelatex*2)来编译,LaTeX会自动从.bib文件中提取被引用的文献,并按指定格式排版。
一个refs.bib文件的例子:
@article{deng1989, title={Introduction to grey system theory}, author={Deng, Julong}, journal={The Journal of Grey System}, volume={1}, number={1}, pages={1--24}, year={1989} } @book{liu2010, title={灰色系统理论及其应用}, author={刘思峰 and 党耀国}, publisher={科学出版社}, year={2010}, address={北京} } @inproceedings{smith2021, title={A novel load forecasting method based on hybrid model}, author={Smith, John and Doe, Jane}, booktitle={2021 IEEE Power \& Energy Society General Meeting}, pages={1--5}, year={2021} }每条文献都有一个类型(如@article,@book,@inproceedings)和一个唯一的引用标签(如deng1989)。
修改你的.tex文档:
- 删除原来的
thebibliography环境。 - 在
\end{document}之前,添加以下命令来指定参考文献样式和数据库文件:\bibliographystyle{plain} % 指定参考文献样式,如 plain, unsrt, ieee等 \bibliography{refs} % 指定 .bib 数据库文件名(不要加后缀)
编译顺序(关键!): 对于包含BibTeX引用的文档,必须按顺序编译多次:
- XeLaTeX:编译主文件,生成
.aux文件,其中记录了引用信息。 - BibTeX:处理
.aux文件,从.bib数据库中提取被引用的文献,生成.bbl文件(格式化后的参考文献列表)。 - XeLaTeX (两次):第一次编译将参考文献列表插入文档并解析引用标记;第二次编译确保所有交叉引用(如文献编号)正确无误。
这就是为什么我们在VS Code配置里定义了那个包含四个工具的recipe。在Overleaf上,你只需要将refs.bib文件上传到项目中,然后使用默认的“Recompile”按钮,Overleaf会自动完成整个链式编译。
5.2 使用BibLaTeX(更现代的选择)
BibLaTeX是新一代的参考文献处理工具,比传统BibTeX更强大、更灵活,尤其对中文支持更好。使用方法也很简单:
- 在导言区加载宏包并设置后端:
\usepackage[backend=biber, style=gb7714-2015]{biblatex} % 使用biber后端,采用GB/T 7714-2015国家标准样式 \addbibresource{refs.bib} % 加载 .bib 文件 - 在文中引用:命令相同,
\cite{标签}。 - 在文档末尾输出参考文献列表:
\printbibliography。 - 编译链变为:XeLaTeX -> Biber -> XeLaTeX (两次)。你需要在VS Code的配置中将
bibtex工具替换为biber。
注意事项:很多中文期刊和数学建模比赛要求参考文献格式符合GB/T 7714国家标准。使用BibLaTeX并搭配
gb7714-2015样式可以轻松实现。务必在投稿前仔细核对格式细节。
6. 实战:从零到一完成美赛论文排版
假设你现在要参加美赛,拿到了官方提供的LaTeX模板(通常是一个.zip文件)。如何快速上手?
第一步:解压与结构分析解压模板,你通常会看到这些文件:
main.tex或paper.tex:主文档文件。sample.bib:示例参考文献数据库。figures/文件夹:存放图片。xxxx.cls文件:文档类文件,定义了论文的整体样式(页边距、标题格式、字体等)。- 其他
.sty文件:可能是自定义的宏包。
第二步:修改主文档
- 替换个人信息:在
main.tex中找到定义标题、作者、队伍控制号的地方进行修改。 - 撰写内容:在相应的章节环境(如
\section{Introduction})内,删除示例文字,填入你的内容。公式、图表、引用的语法与前面所学完全一致。 - 管理图片:将你的图片(如
.png,.pdf文件)放入figures/文件夹,然后在文中用\includegraphics{figures/your_image}插入。 - 管理参考文献:编辑或替换
sample.bib文件,填入你实际引用的文献。
第三步:编译与调试
- 在Overleaf中,上传整个文件夹(或新建项目后上传所有文件),点击编译。
- 在本地VS Code中,打开包含
.cls文件的文件夹作为工作区,然后打开main.tex进行编译。 - 遇到编译错误怎么办?这是学习LaTeX的必经之路。错误信息(通常以
!开头)会指出问题所在的行和大概原因。常见错误有:- 拼写错误:命令名拼错,如
\setcion{}。 - 括号不匹配:
{},[],\begin{}和\end{}没有成对出现。 - 缺少宏包:使用了某个命令(如
\includegraphics)但未加载对应宏包(graphicx)。 - 文件未找到:图片路径错误或
.bib文件未找到。 - 编码问题:中文文档未使用
ctex宏包或UTF-8编码保存。
- 拼写错误:命令名拼错,如
第四步:善用搜索引擎99%的LaTeX问题都能在网上找到答案。搜索时,直接用英文错误信息的关键部分进行搜索,例如搜索“LaTeX ! Undefined control sequence.”,通常能在Stack Exchange等专业论坛找到详细解答。
7. 常见问题与排查技巧实录
即使掌握了基本操作,在实际写作中还是会遇到各种“坑”。这里记录一些高频问题和我的解决经验。
问题1:图片/表格“飘”到不想去的位置。
- 原因:LaTeX的浮动体(
figure,table)机制是为了优化版面,避免大片空白。[htbp]只是建议位置。 - 解决:
- 使用
[H]选项(需要加载float宏包:\usepackage{float}),强制将浮动体放在代码所在位置。但滥用会导致版面问题。 - 使用
\clearpage命令在浮动体代码后强制换页,有时能促使它出现在当前位置。 - 最佳实践:在写作初期不要过分纠结位置,先保证内容正确。在最终定稿前,再统一调整那些位置特别不合适的浮动体。很多时候,稍微调整一下
[htbp]的顺序或正文内容,就能得到满意结果。
- 使用
问题2:参考文献列表有文献,但文中引用显示问号 [?]。
- 原因:编译链未执行完整,BibTeX/Biber未运行或未成功生成
.bbl文件。 - 解决:
- 本地环境:确保执行了完整的
xelatex -> bibtex/biber -> xelatex -> xelatex流程。在VS Code中,检查并运行正确的编译方案(recipe)。 - Overleaf:点击“Logs and output files”,查看编译日志,确认BibTeX/Biber是否报错(如
.bib文件语法错误)。 - 检查
.bib文件中的引用标签是否与文中\cite{}内的标签完全一致(包括大小写)。
- 本地环境:确保执行了完整的
问题3:中文显示为乱码或编译失败。
- 原因:文件编码、编译器或宏包配置问题。
- 解决:
- 确保所有
.tex和.bib文件都以UTF-8 无BOM格式编码保存(几乎所有现代编辑器默认如此)。 - 确保导言区加载了
ctex宏包或设置了中文字体。 - 使用XeLaTeX或LuaLaTeX编译器,它们对Unicode(包含中文)支持最好。在Overleaf中,在菜单里将编译器改为“XeLaTeX”。在VS Code的LaTeX Workshop设置中,默认食谱(recipe)也应使用
xelatex。
- 确保所有
问题4:如何插入代码?数学建模论文中有时需要展示算法伪代码或少量程序代码。推荐使用listings宏包。
\usepackage{listings} \usepackage{xcolor} % 用于颜色 \lstset{ basicstyle=\ttfamily\small, keywordstyle=\color{blue}, commentstyle=\color{green!60!black}, stringstyle=\color{red}, numbers=left, numberstyle=\tiny\color{gray}, frame=single, breaklines=true, captionpos=b }在文中插入代码:
\begin{lstlisting}[language=Python, caption=灰色预测模型求解核心代码] import numpy as np def gm11(x0): # 一次累加生成 x1 = np.cumsum(x0) # 构造数据矩阵B和Y # ... (具体代码) return a, b # 返回发展系数和灰色作用量 \end{lstlisting}问题5:页边距、行间距、字体大小怎么调?
- 页边距:使用
geometry宏包。\usepackage[a4paper, left=2.5cm, right=2.5cm, top=2.5cm, bottom=2.5cm]{geometry}。 - 行间距:使用
\linespread{1.5}命令设置1.5倍行距。通常放在导言区。 - 字体大小:对于整个文档,可以在
\documentclass中使用可选参数,如\documentclass[12pt]{article}。局部调整可以使用{\small 小号文字}或\Large等命令。
走过这30分钟,你应该已经不再对LaTeX感到陌生和恐惧。它就像一门简单的标记语言,你告诉它“这里是个章节”、“这里有个公式”、“请引用第X张图”,它就会帮你把一切打理得井井有条。真正的熟练,源于动手写第一篇完整的文章。不要追求第一次就写出完美的文档,先追求“能跑通”。在写的过程中,遇到什么问题,就针对性地去搜索解决(“LaTeX 如何合并单元格”、“LaTeX 公式换行对齐”)。你会发现,大多数需求都有现成的宏包和解决方案。当你提交出一份排版精美、结构清晰的论文时,你会觉得这30分钟的投资,以及后续每一个解决问题的过程,都是值得的。