
这次我们来看一个技术人绕不开的工具LaTeX。如果你需要写数学讲义、学术论文、技术报告或者任何包含复杂公式、图表、参考文献的文档LaTeX 大概率是你的最终选择。它不是“又一个排版软件”而是一个基于 TeX 的文档准备系统通过编写代码来控制排版最终生成精美、专业、格式统一的 PDF 文档。对于数学讲义这类内容LaTeX 的优势是碾压性的数学公式排版能力无出其右从简单的上下标到复杂的矩阵、积分、多行公式组都能精准、优雅地呈现。参考文献管理自动化交叉引用如图表、公式编号智能更新彻底告别手动调整格式的噩梦。更重要的是它的输出结果具有极高的学术认可度和印刷质量。本文不会空谈 LaTeX 的历史和哲学而是直接切入实战。我们将从零开始完成一份数学讲义的制作全流程。你会看到环境搭建如何快速安装 LaTeX 发行版和编辑器避开新手常见的安装坑。核心语法速成专注于数学讲义所需的命令如公式环境、定理盒子、图表插入。项目实战从创建一个空白文档开始逐步添加章节、公式、定理、图表最终编译成一份完整的讲义 PDF。效率工具介绍 VS Code 等现代编辑器的高效配置以及如何利用模板和包package来提升生产力。问题排查汇总编译错误、中文支持、参考文献格式等常见问题的解决方法。无论你是第一次接触 LaTeX 的学生还是需要为课程准备讲义的老师这篇文章都能提供一条清晰的、可执行的路径。1. 核心能力速览为什么数学讲义必须用 LaTeX在深入操作之前我们先通过一个表格快速了解 LaTeX 在处理数学讲义这类文档时的核心优势与门槛。能力项说明核心定位专业的文档排版系统通过编写源代码.tex文件控制格式编译后生成PDF。最大优势数学公式排版。支持从初等数学到前沿科研所需的所有数学符号、公式环境和多行对齐。自动化能力自动生成目录、图表索引、公式编号智能管理交叉引用和参考文献列表。格式统一性全局样式控制确保文档内所有标题、公式、参考文献格式严格一致。硬件/环境门槛极低。主流操作系统Windows, macOS, Linux均可安装对电脑配置无特殊要求。“启动”方式并非一个“打开即用”的软件。工作流是编写.tex源文件 - 调用编译器如xelatex - 生成.pdf文件。学习曲线有一定门槛。需要记忆基础命令和语法理解“内容与格式分离”的思想。但针对数学讲义核心命令集中上手速度比想象中快。适合场景学术论文、技术报告、书籍、幻灯片Beamer、以及包含大量数学公式的讲义、习题集、笔记。不适合场景对格式自由度要求极高的海报、宣传单页需要“所见即所得”快速排版的简单文档。简单来说如果你文档里的数学公式超过 5 个或者需要频繁引用前面的公式、图表LaTeX 带来的效率提升和格式美感将远超初期学习它的投入。2. 适用场景与使用边界2.1 谁适合使用 LaTeX 制作数学讲义高校教师与助教需要制作结构清晰、公式规范、可长期维护和更新的课程讲义。理工科学生撰写包含复杂推导的课程报告、毕业论文、读书笔记。科研工作者准备学术论文、技术报告其格式要求通常直接提供 LaTeX 模板。任何追求文档质量的人厌倦了 Word 中公式排版的不稳定和格式调整的繁琐。2.2 LaTeX 能解决什么问题公式排版难题轻松输入并完美渲染积分、求和、矩阵、方程组等。引用管理噩梦使用\ref{}和\label{}引用图表、公式编号自动更新。格式统一性通过定义全局样式如\documentclass和宏包确保全文格式一致。内容与样式分离作者专注于内容写作排版由 LaTeX 系统负责。版本控制友好.tex是纯文本文件非常适合用 Git 等工具进行版本管理和协作。2.3 需要注意的边界非“所见即所得”你不能一边打字一边直接看到最终排版效果需要编译后才能查看 PDF。这是一种编程思维。调试需求如果源代码有语法错误编译会失败并报错需要根据错误信息定位和修复。复杂布局实现非常规的、自由式的页面布局如杂志设计在 LaTeX 中可能比较困难通常不是它的设计目标。协作门槛如果合作者只熟悉 Word共享.tex文件可能不便通常以最终 PDF 作为交付物。3. 环境准备与前置条件开始制作讲义前你需要准备好“编译器”和“编辑器”。3.1 安装 LaTeX 发行版编译器LaTeX 发行版包含了编译.tex文件所需的所有引擎、宏包和字体。推荐以下选择TeX Live最完整、跨平台的发行版。Linux 用户可通过包管理器安装macOS 用户可使用 MacTeX基于 TeX LiveWindows 用户可直接下载安装包。MiKTeXWindows 上的另一个流行选择特点是“按需安装”宏包初始安装体积较小。安装建议对于新手为了减少后续因缺失宏包导致的编译错误建议直接安装完整的TeX Live或MacTeX。安装过程就是下载一个较大的安装包几个GB然后一路“下一步”即可。验证安装安装完成后打开命令行终端 / CMD / PowerShell输入以下命令检查是否安装成功latex --version xelatex --version如果能看到版本号信息说明基础环境已就绪。3.2 选择代码编辑器写作环境你可以使用任何文本编辑器编写.tex文件但专用的 LaTeX 编辑器能提供语法高亮、一键编译、错误提示、PDF 实时预览等强大功能极大提升效率。VS Code LaTeX Workshop 插件强烈推荐。轻量、免费、高度可定制是目前最流行的选择之一。它提供了近乎 IDE 的体验。TeXstudio/TeXmaker功能全面的免费开源专用编辑器开箱即用。Overleaf在线 LaTeX 编辑器。无需安装任何软件在浏览器中即可编写和编译非常适合协作和入门。缺点是依赖网络且高级功能可能需要付费。本文后续演示将以VS Code LaTeX Workshop的组合为主因为它代表了现代、高效的工作流。4. 安装部署与启动方式配置 VS Code 环境4.1 安装 VS Code 和 LaTeX Workshop 插件前往 VS Code 官网 下载并安装。打开 VS Code点击左侧活动栏的“扩展”图标或按CtrlShiftX。在搜索框中输入LaTeX Workshop找到由James Yu维护的插件点击“安装”。4.2 基本配置可选但推荐安装插件后可以进行一些优化设置。按下Ctrl,打开设置在搜索框输入latex找到LaTeX-workshop Latex: Recipes和Latex-workshop Latex: Tools进行修改。或者直接编辑settings.json文件{ // 设置默认的编译配方recipe。这里使用 xelatex - bibtex - xelatex*2支持中文和参考文献 latex-workshop.latex.recipes: [ { name: xelatex - bibtex - xelatex*2, tools: [ xelatex, bibtex, xelatex, xelatex ] } ], // 定义编译工具 latex-workshop.latex.tools: [ { name: xelatex, command: xelatex, args: [ -synctex1, -interactionnonstopmode, -file-line-error, %DOCFILE% ] }, { name: bibtex, command: bibtex, args: [ %DOCFILE% ] } ], // 编译后自动在内部查看器打开PDF latex-workshop.latex.autoBuild.run: onFileChange, // 设置PDF查看器为内置查看器标签页形式 latex-workshop.view.pdf.viewer: tab, // 清理临时文件时保留 .pdf 和 .synctex.gz latex-workshop.latex.clean.fileTypes: [ *.aux, *.bbl, *.blg, *.idx, *.ind, *.lof, *.lot, *.out, *.toc, *.acn, *.acr, *.alg, *.glg, *.glo, *.gls, *.ist, *.fls, *.log, *.fdb_latexmk, *.snm, *.nav, *.vrb ] }这些配置设置了一个支持中文和参考文献的编译流程并优化了预览和清理体验。4.3 启动你的第一个 LaTeX 项目在电脑上新建一个文件夹例如MyMathNotes。用 VS Code 打开这个文件夹文件-打开文件夹。在 VS Code 的资源管理器中右键点击文件夹选择“新建文件”命名为main.tex。 至此你的 LaTeX 写作环境已经准备就绪。接下来我们将在main.tex中开始创作。5. 功能测试与效果验证从零构建数学讲义我们将通过创建一个具体的“微积分初步”讲义章节来验证 LaTeX 的核心功能。5.1 基础文档结构在main.tex中输入以下最基础的框架代码% 文档类article 适用于文章、报告book 适用于书籍beamer 用于幻灯片 \documentclass[12pt, a4paper]{article} % 引入必要的宏包package \usepackage[UTF8]{ctex} % 支持中文 \usepackage{amsmath, amssymb, amsthm} % 美国数学学会提供的强大数学公式、符号和定理环境支持 \usepackage{graphicx} % 插入图片 \usepackage{hyperref} % 让生成的PDF中的引用可点击跳转 % 文档信息 \title{微积分初步讲义} \author{你的名字} \date{\today} % 自动使用当前日期 % 文档正文开始 \begin{document} \maketitle % 生成标题 \tableofcontents % 生成目录 \section{极限与连续} % 一级章节 这里是第一节的内容。 \subsection{数列的极限} % 二级小节 这里是第一小节的内容。 % 正文内容将在这里填充 \end{document} % 文档结束操作与验证保存文件 (CtrlS)。在 VS Code 中按CtrlAltB这是 LaTeX Workshop 的默认编译快捷键。插件会自动调用配置好的xelatex进行编译。编译成功后VS Code 右侧会自动打开预览窗口显示生成的 PDF。你应该能看到带有标题、作者、日期和“极限与连续”章节的 PDF。5.2 核心功能一数学公式排版LaTeX 的公式分为“行内公式”和“显示公式”。行内公式公式嵌入在段落文字中使用$...$或\(...\)。考虑函数 $f(x) x^2$其导数 $f(x) 2x$。 当 $x \to 0$ 时有 $\sin x \sim x$。显示公式公式独立成行居中显示。使用\[...\]或equation环境可自动编号。牛顿-莱布尼茨公式是微积分基本定理的核心 \[ \int_a^b f(x)\,dx F(b) - F(a) \] 其中 $F(x) f(x)$。 二次方程的求根公式为 \begin{equation} x \frac{-b \pm \sqrt{b^2 - 4ac}}{2a} \end{equation}多行公式对齐使用align环境需要amsmath宏包。表示对齐点\\表示换行。以下是函数乘积的求导法则 \begin{align} (uv) uv uv \\ \left(\frac{u}{v}\right) \frac{uv - uv}{v^2} \end{align}矩阵与行列式一个 $2 \times 2$ 矩阵 \[ A \begin{pmatrix} a b \\ c d \end{pmatrix} \] 其行列式为 \[ \det(A) \begin{vmatrix} a b \\ c d \end{vmatrix} ad - bc. \]编译验证将上述公式代码块添加到你的main.tex文件的\subsection{数列的极限}之后保存并编译。查看 PDF 中公式的渲染是否准确、美观。5.3 核心功能二定理、引理、证明环境数学讲义中经常需要呈现定理、定义和证明。amsthm宏包提供了专业的环境。在\begin{document}之前添加以下代码来定义定理样式\usepackage{amsthm} \newtheorem{theorem}{定理}[section] % 定理按节编号如 定理 1.1 \newtheorem{lemma}[theorem]{引理} \newtheorem{definition}[theorem]{定义} \newtheorem{example}[theorem]{例}在正文中可以这样使用\begin{definition}[极限的 $\varepsilon$-$N$ 定义] 设 $\{a_n\}$ 为一数列$a$ 是一个实数。如果对于任意给定的 $\varepsilon 0$都存在正整数 $N$使得当 $n N$ 时有 $|a_n - a| \varepsilon$则称数列 $\{a_n\}$ 收敛于 $a$记作 $\lim_{n \to \infty} a_n a$。 \end{definition} \begin{theorem}[极限的唯一性] 收敛数列的极限是唯一的。 \end{theorem} \begin{proof} 假设数列 $\{a_n\}$ 同时收敛于 $a$ 和 $b$且 $a \neq b$。取 $\varepsilon \frac{|a-b|}{2} 0$。 根据定义存在 $N_1$当 $n N_1$ 时 $|a_n - a| \varepsilon$存在 $N_2$当 $n N_2$ 时 $|a_n - b| \varepsilon$。 令 $N \max\{N_1, N_2\}$则当 $n N$ 时由三角不等式 \[ |a - b| \le |a - a_n| |a_n - b| \varepsilon \varepsilon |a-b|. \] 这推出了矛盾 $|a-b| |a-b|$。因此假设不成立必有 $a b$。 \end{proof}编译验证添加上述代码后编译查看 PDF 中定理、定义和证明是否以特定的样式如斜体、加粗、缩进呈现并且编号是否正确如“定义 1.1”、“定理 1.2”。5.4 核心功能三插入图片与图表使用graphicx宏包和figure环境来插入并管理图片。将你的图片如limit_graph.png放在与main.tex相同的目录或者一个专门的子目录如./images/中。在正文中添加\begin{figure}[htbp] % htbp 是位置参数表示优先放在此处(h)页顶(t)页底(b)独立一页(p) \centering % 图片居中 \includegraphics[width0.8\textwidth]{./images/limit_graph.png} % 宽度设为文本宽度的80% \caption{函数 $f(x) \frac{\sin x}{x}$ 在 $x0$ 附近的图像直观说明 $\lim_{x \to 0} \frac{\sin x}{x} 1$。} % 图片标题 \label{fig:sinx_over_x} % 为图片定义标签用于交叉引用 \end{figure} 如图 \ref{fig:sinx_over_x} 所示当 $x$ 趋近于 $0$ 时函数值趋近于 $1$。编译验证编译后查看 PDF 中是否成功插入了图片标题是否在图片下方并且使用\ref{}引用的编号是否正确例如“如图 1 所示”。5.5 核心功能四交叉引用与参考文献LaTeX 的自动化引用是其核心魅力。交叉引用为章节、公式、图表、定理定义标签 (\label{xxx})然后用\ref{xxx}引用。根据公式 \eqref{eq:quadratic} 我们可以求解... 定理 \ref{thm:uniqueness} 保证了极限的唯一性。注意\eqref专门用于引用带括号的公式编号效果如 “(1)”。\ref引用纯数字编号。参考文献(BibTeX)创建一个纯文本文件命名为refs.bib。在其中按 BibTeX 格式添加文献条目例如book{tao2016analysis, title{Analysis I}, author{Tao, Terence}, volume{37}, year{2016}, publisher{Springer} } article{einstein1905electrodynamics, title{On the electrodynamics of moving bodies}, author{Einstein, Albert}, journal{Annalen der physik}, volume{17}, number{10}, pages{891--921}, year{1905} }在.tex文件末尾\end{document}之前添加\bibliographystyle{plain} % 指定参考文献样式 \bibliography{refs} % 指定 .bib 文件名不含扩展名在文中需要引用的地方使用\cite{tao2016analysis}。编译验证交叉引用需要编译两次 LaTeX 才能正确显示编号。参考文献的编译流程更复杂需要按顺序运行xelatex-bibtex-xelatex-xelatex。这正是我们之前在 VS Code 配置中设置的recipe的作用。配置好后只需按一次CtrlAltB插件会自动完成整个流程。6. 接口 API 与批量任务LaTeX 的“批处理”思维LaTeX 本身不是一个提供 HTTP API 的服务但其“源代码编译生成结果”的模式天然适合批量化、自动化处理文档。6.1 命令行批量编译你可以脱离编辑器在命令行中编译.tex文件这为自动化脚本提供了基础。# 进入你的项目目录 cd /path/to/MyMathNotes # 使用 xelatex 编译支持中文 xelatex -interactionnonstopmode main.tex # 如果需要处理参考文献完整的流程是 xelatex -interactionnonstopmode main.tex bibtex main xelatex -interactionnonstopmode main.tex xelatex -interactionnonstopmode main.tex-interactionnonstopmode参数使得在遇到错误时不会暂停等待用户输入而是继续运行并记录错误到日志适合脚本环境。6.2 使用 Makefile 或脚本自动化对于包含多个章节文件、图片、参考文献的大型讲义项目可以编写一个Makefile或 Shell/Python 脚本来自动化编译和清理工作。一个简单的Makefile示例.PHONY: all clean TEX xelatex BIB bibtex MAIN main SRC $(MAIN).tex all: pdf pdf: $(TEX) -interactionnonstopmode $(SRC) $(BIB) $(MAIN) $(TEX) -interactionnonstopmode $(SRC) $(TEX) -interactionnonstopmode $(SRC) clean: rm -f *.aux *.bbl *.blg *.log *.out *.toc *.lof *.lot *.synctex.gz *.fdb_latexmk *.fls使用时在终端运行make即可编译运行make clean即可清理所有中间文件。6.3 模板化与内容生成对于结构固定的讲义如每周习题课讲义你可以创建模板文件template.tex然后使用脚本如 Python根据数据如本周的题目列表动态填充模板内容生成最终的.tex文件后再自动编译。这是 LaTeX 在批量文档生成中的高级应用。7. 资源占用与性能观察与大型 AI 模型不同LaTeX 编译对系统资源的占用通常很轻量性能瓶颈主要在于文档复杂度和编译策略。CPU/内存占用单次xelatex编译一个几十页的普通讲义CPU 使用率短暂飙升内存占用通常在几百 MB 以内。对于绝大多数现代电脑这都不是问题。磁盘空间完整的 TeX Live 发行版安装需要约 5-8 GB 空间。编译过程中会产生.aux,.log,.bbl等中间文件但体积很小。最终生成的.pdf文件通常也很紧凑。编译时间简单文档几秒内完成。复杂文档数百页大量高分辨率图片复杂图表大量交叉引用和参考文献可能需要数十秒到几分钟。性能优化使用\includeonly{}在写作长篇文档时可以只编译正在撰写的章节加快预览速度。预编译文档样式对于非常固定的文档类可以生成.fmt格式文件来加速。增量编译一些编辑器/工具链支持只重新编译更改的部分但 LaTeX 的交叉引用特性使得完全干净的编译有时仍是必要的。“端口冲突”类比在 LaTeX 中类似的问题是临时文件冲突。如果编译意外中断可能会残留锁文件如.aux文件状态错误导致下次编译失败。解决方案运行latexmk -c或手动删除所有中间文件如*.aux,*.log等然后重新编译。8. 常见问题与排查方法问题现象可能原因排查方式解决方案编译失败报错Undefined control sequence1. 命令拼写错误。2. 未引入所需的宏包。查看错误信息指向的行号和命令。1. 检查拼写。2. 在文档开头用\usepackage{}引入对应宏包。中文显示为乱码或根本不显示1. 未使用支持中文的引擎如xelatex或lualatex。2. 未引入中文宏包如ctex。3. 源文件编码不是 UTF-8。1. 检查编译器是否为xelatex。2. 检查是否\usepackage[UTF8]{ctex}。3. 用 VS Code 右下角确认文件编码。1. 在编辑器或命令行中指定使用xelatex。2. 添加ctex宏包。3. 将文件保存为 UTF-8 编码。参考文献列表不显示或引用显示为?1. 未成功运行bibtex。2..bib文件中条目格式错误或键名拼写错误。3. 编译次数不够。1. 检查编译日志看bibtex是否运行并报错。2. 检查\cite{}中的键名是否与.bib文件一致。3. 检查是否执行了完整的编译流程。1. 确保使用正确的编译配方xelatex - bibtex - xelatex - xelatex。2. 修正.bib文件或引用键名。3. 再完整编译一次。交叉引用编号显示为??1. 未定义\label或标签名错误。2. 编译次数不够。LaTeX 需要多次编译来解析引用。1. 检查\ref{}对应的\label{}是否存在。2. 查看.aux文件中是否有对应的\newlabel条目。1. 添加或修正\label。2. 再次编译文档通常需要连续编译两次。图片找不到 (! LaTeX Error: File ... not found)1. 图片路径错误。2. 图片文件名包含空格或特殊字符。3. 未安装生成图片所需的工具如pdftopng通常很少见。1. 检查\includegraphics{}中的文件路径是否相对于.tex文件正确。2. 检查文件名。1. 使用相对路径或将图片与.tex文件放在同一目录。2. 避免在文件名中使用空格和中文使用下划线连接。公式编号混乱或不编号1. 在equation环境内使用了\nonumber。2. 在align环境中错误地使用了\nonumber。3. 章节结构变化后未重新编译。1. 检查公式环境内的命令。2. 检查是否在不应编号的地方使用了\nonumber。1. 移除不必要的\nonumber。2. 使用align*环境可以得到无编号的多行公式。3. 执行一次完整的重新编译。生成的 PDF 中链接目录、引用不可点击未加载hyperref宏包或加载顺序有误。检查文档开头是否\usepackage{hyperref}。在文档导言区\begin{document}之前尽可能靠后的位置添加\usepackage{hyperref}。通用排查流程看日志编译失败时仔细阅读终端或编辑器输出面板中的错误信息!开头的行和警告信息。定位行号错误信息通常会给出出错的行号在编辑器中跳转到对应行检查。搜索错误将错误信息中的关键词如Undefined control sequence: \xxxxx复制到搜索引擎中几乎总能找到解决方案。简化测试如果一段复杂代码出错可以将其注释掉或者新建一个最小的.tex文件单独测试该功能以隔离问题。9. 最佳实践与使用建议项目结构管理MyMathNotes/ ├── main.tex # 主文档 ├── chapters/ # 存放各章节文件 │ ├── chap1.tex │ └── chap2.tex ├── images/ # 存放所有图片 │ ├── fig1.pdf │ └── diagram.png ├── refs.bib # 参考文献数据库 └── Makefile # 自动化编译脚本在主文档中使用\input{chapters/chap1}或\include{chapters/chap1}来组织内容。版本控制使用 Git 管理你的.tex,.bib和图片资源文件。将生成的.pdf和所有中间文件*.aux,*.log等添加到.gitignore中。写作流程先写内容再调格式专注于用简单的命令写下文字和公式最后再统一调整字体、间距等样式。频繁编译每写一小段就编译一次及时发现问题。善用注释使用%注释掉暂时不需要的内容或进行笔记。学习资源官方文档任何宏包的使用说明都可以在命令行用texdoc package-name查看如texdoc amsmath。社区 TeX - LaTeX Stack Exchange 是解决问题的最佳去处。离线手册安装发行版后本地通常有大量文档。合规与授权字体确保你使用的字体尤其是中文字体拥有允许嵌入 PDF 和分发的授权。图片讲义中使用的图表、照片请注意版权。使用自己绘制、拍摄的素材或明确可免费使用的资源如从 Wikimedia Commons 获取。内容引用他人的成果定理、证明、文本务必通过参考文献规范引用遵守学术规范。10. 总结与下一步通过本文的步骤你应该已经成功搭建了 LaTeX 环境并创建了一份包含标题、章节、数学公式、定理、图片和引用的基础数学讲义。LaTeX 的核心价值在于其稳定、精确和自动化。一旦你熟悉了基础语法并建立了自己的模板后续制作同类文档的效率会指数级提升。最值得尝试的下一步探索模板在网上搜索你所在学校或目标期刊的 LaTeX 论文模板直接在其基础上修改这是最快获得专业格式的方法。制作幻灯片尝试beamer文档类用 LaTeX 制作学术演示文稿效果非常专业。深入学习宏包根据你的需求学习特定宏包如tikz绘制精确图表、listings排版代码、longtable处理长表格。自动化脚本如果你需要定期生成结构类似的报告尝试用 Python 等脚本语言生成.tex文件实现数据驱动的内容生成。最容易踩的坑忘记编译两次导致引用编号错误。宏包冲突或加载顺序问题一般将hyperref放在最后。文件路径错误导致图片找不到。LaTeX 是一座宝库入门时的一点点陡峭学习曲线换来的是长期、巨大的排版效率和质量红利。这份用代码控制排版的“讲义”不仅是你的教学内容也是一个可维护、可版本控制、可批量生产的数字资产。建议将本文作为手边参考在实战中遇到具体问题时再回来查阅对应章节。