LaTeX 完整学习笔记
日期:2026-03-15
一、LaTeX 基础
1.1 什么是 LaTeX?
LaTeX 不是文字处理器(如 Word),而是一个文档排版系统。它使用纯文本 + 标记命令来描述文档结构,类似于 HTML 的工作方式。
核心思想:用命令标记内容的逻辑意义,而非直接设置外观。
1.2 LaTeX vs Word
| 特性 | LaTeX | Word |
|---|---|---|
| 排版方式 | 代码 + 编译 | 所见即所得 |
| 公式排版 | 强大专业 | 一般 |
| 文档一致性 | 自动保持 | 手动调整 |
| 学习曲线 | 较陡 | 较平 |
1.3 工作流程
.tex 源文件 → LaTeX 编译器 → PDF 文件
常用编译器:
pdflatex:最常用lualatex:推荐,支持 Unicode 和大文档xelatex:支持 Unicode
1.4 特殊字符
| 字符 | 用途 |
|---|---|
\ |
开始命令 |
{} |
包裹参数 |
% |
注释 |
~ |
硬空格(禁止换行) |
\\ |
换行(慎用) |
二、文档基本结构
2.1 最小文档
latex
% !TEX program=lualatex
\documentclass{ctexart}
\begin{document}
Hello, world!
这是一个简单的中英文混排文档。
\end{document}
2.2 文档组成
latex
\documentclass{article} % 文档类(必选)
% ---------- 前言区 ----------
\usepackage{宏包} % 加载宏包
自定义命令 % \newcommand
% ---------- 正文 ----------
\begin{document}
\section{第一节}
\subsection{第一节}
内容正文
\end{document}
2.3 三个区域
- 导言区 (Preamble):
\documentclass到\begin{document}之间 - 正文区 :
\begin{document}到\end{document}之间 - 浮动体环境 :
\begin{}...\end{}对
三、文档类
3.1 标准文档类
| 文档类 | 用途 |
|---|---|
article |
短文章,无章节 |
report |
长报告,单面打印,支持章节 |
book |
书籍,双面打印,支持章节 |
letter |
信件 |
beamer |
演示文稿 |
3.2 中文文档类(CTeX)
| 文档类 | 用途 |
|---|---|
ctexart |
中文文章 |
ctexrep |
中文报告 |
ctexbook |
中文书籍 |
ctexbeamer |
中文幻灯片 |
3.3 文档类选项
latex
\documentclass[10pt,twocolumn,a4paper]{article}
常用选项:
- 字体大小:
10pt、11pt、12pt - 纸张:
a4paper、letterpaper - 单/双栏:
oneside、twoside、twocolumn - 公式左对齐:
fleqn - 公式编号在左:
leqno
四、逻辑结构
4.1 章节命令
latex
\chapter{章标题} % book/report(需要章节)
\section{节标题}
\subsection{小节标题}
\subsubsection{小小节}
paragraph{段落标题}
\subparagraph{子段落}
示例:
latex
\section{第一节}
第一小节内容
\subsection{第一小节}
小节内容
\section{第二节}
第二节内容
4.2 有序列表
latex
\begin{enumerate}
\item 第一个条目
\item 第二个条目
\item 第三个条目
\end{enumerate}
4.3 无序列表
latex
\begin{itemize}
\item 第一个条目
\item 第二个条目
\item 第三个条目
\end{itemize}
4.4 嵌套列表
latex
\begin{enumerate}
\item 第一层
\begin{itemize}
\item 第二层
\item 第二层
\end{itemize}
\item 第一层
\end{enumerate}
建议最多嵌套 4 层
4.5 文本格式化
逻辑标记(推荐):
latex
emph{强调} % 自动处理嵌套
textbf{粗体}
textit{斜体}
视觉标记:
latex
textit{斜体} % 总是斜体
textbf{粗体} % 总是粗体
优先使用逻辑标记,保持内容与样式分离
五、宏包扩展
5.1 加载宏包
latex
\usepackage{包名}
\usepackage[选项]{包名}
5.2 常用宏包
| 宏包 | 用途 |
|---|---|
geometry |
页边距设置 |
graphicx |
图片插入 |
amsmath |
数学公式 |
booktabs |
专业表格线 |
babel |
语言支持 |
ctex |
中文支持 |
xcolor |
颜色 |
hyperref |
超链接 |
natbib / biblatex |
参考文献 |
fancyhdr |
页眉页脚 |
5.3 自定义命令
latex
% 无参数
\newcommand\cmd{内容}
% 有参数
\newcommand\kw[1]{\textbf{#1}}
示例:
latex
\newcommand\diff{\mathop{}\!d}
\newcommand\alert[1]{\textcolor{red}{\textbf{#1}}}
六、图片
6.1 插入图片
latex
\usepackage{graphicx}
\begin{document}
\includegraphics{图片文件名}
\end{document}
支持格式:.pdf、.png、.jpg、.eps
6.2 图片尺寸
latex
% 宽度相对于文本宽度
includegraphics[width=0.5\textwidth]{image}
% 高度
includegraphics[height=5cm]{image}
% 缩放
includegraphics[scale=0.5]{image}
% 旋转
includegraphics[angle=90]{image}
6.3 浮动体与定位
latex
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{image}
\caption{图片标题}
\label{fig:myimage}
\end{figure}
位置参数:
h(here):尽量放在这里t(top):页面顶部b(bottom):页面底部p(page):单独页面
6.4 图片标题与引用
latex
% 标题
\caption{我的图片}
% 引用
如图~\ref{fig:myimage} 所示
标签要放在 caption 内部或紧跟其后
七、表格
7.1 基本表格
latex
\begin{tabular}{lcr}
左对齐 & 居中 & 右对齐 \\
内容1 & 内容2 & 内容3
\end{tabular}
列类型:
| 类型 | 描述 |
|---|---|
l |
左对齐 |
c |
居中 |
r |
右对齐 |
p{宽度} |
固定宽度,自动换行 |
| ` | ` |
7.2 表格线条(booktabs)
latex
\usepackage{booktabs}
\begin{tabular}{ccc}
\toprule
列1 & 列2 & 列3 \\
\midrule
内容1 & 内容2 & 内容3 \\
\bottomrule
\end{tabular}
7.3 跨列合并
latex
\multicolumn{列数}{对齐}{内容}
示例:
latex
\multicolumn{2}{c}{合并两列}
7.4 跨行处理
LaTeX 原生不支持垂直合并,通常留空单元格:
latex
\begin{tabular}{cp{9cm}}
\toprule
动物 & 描述 \\
\midrule
狗 & 是家养动物 \\
& 很聪明 \\
\bottomrule
\end{tabular}
7.5 复杂列定义
latex
% 重复列
*{6}{c} % 等价于 cccccc
% 单元格前后添加内容
>{bfseries}c % 该列全部粗体
八、交叉引用
8.1 引用机制
latex
% 设置标签
\label{key}
% 引用编号
\ref{key}
% 引用页码
\pageref{key}
8.2 示例
latex
\section{引言}
\label{sec:intro}
\subsection{背景}
\label{sec:bg}
\section{实验}
如图~\ref{fig:results} 所示,在第~\pageref{sec:intro} 页...
8.3 引用类型前缀(约定)
latex
sec: % 章节
fig: % 图片
tab: % 表格
eq: % 公式
ch: % 章节
8.4 注意事项
\label必须放在引用对象之后- 图片/表格的 label 放在
\caption内部 - 需要编译两次才能正确解析引用
- 首次编译会显示
??,这是正常的
九、数学公式
9.1 行内数学
latex
$y = mx + c$
\(a^2 + b^2 = c^2\)
9.2 显示数学
latex
[
\int_{-\infty}^{+\infty} e^{-x^2} \, dx
]
或带编号:
latex
\begin{equation}
E = mc^2
\label{eq:einstein}
\end{equation}
9.3 上下标
latex
x^2 % 上标
x_1 % 下标
x^{2}_{i} % 组合
9.4 常用数学命令
latex
\sin, \cos, \tan % 三角函数
\log, \ln, \exp % 对数指数
\int, \sum, \prod % 积分、求和、连乘
\infty % 无穷
\sqrt{x} % 根号
\frac{a}{b} % 分式
\partial % 偏导
\nabla % 梯度
9.5 希腊字母
latex
\alpha, \beta, \gamma, \delta
\theta, \pi, \sigma, \omega
\Delta, \Gamma, \Omega
9.6 amsmath 扩展
latex
\usepackage{amsmath}
% 对齐环境
\begin{align*}
a &= b + c \\
&= d + e
\end{align*}
% 矩阵
\begin{matrix}
a & b \\
c & d
\end{matrix}
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}
9.7 数学字体
latex
\mathrm{罗马体}
\mathbf{粗体}
\mathsf{无衬线}
\mathtt{等宽}
\mathcal{花体}
\mathbb{黑板粗体} % 需要 amsfonts
十、字体和间距
10.1 段落间距
latex
\usepackage{parskip}
效果:段落间不缩进,用空行分隔
10.2 强制换行
latex
\\ % 换行(慎用)
\newline % 换行
\vspace{2cm} % 垂直间距
hspace{1cm} % 水平间距
10.3 细空格
latex
\, % 细空格
\: % 中等空格
\; % 较宽空格
\! % 负空格
\quad % 1em 空格
\qquad % 2em 空格
10.4 字体大小
latex
\tiny
\scriptsize
footnotesize
\small
\normalsize
\large
\Large
\LARGE
\huge
\Huge
10.5 字体命令
latex
textbf{粗体}
textit{斜体}
textrm{罗马体}
textsf{无衬线}
texttt{等宽}
textsmallcaps{小型大写}
十一、参考文献
11.1 BibTeX 数据库
创建 .bib 文件:
bibtex
@article{Author2020,
author = {Author, A.},
title = {文章标题},
journal = {期刊名},
year = {2020},
volume = {10},
pages = {100-110}
}
@book{Book2020,
author = {Author, B.},
title = {书名},
publisher = {出版社},
year = {2020}
}
11.2 natbib 引用
latex
usepackage{natbib}
% 文中引用
citet{key} % 文本引用
citep{key} % 括号引用
% 参考文献
bibliographystyle{plainnat}
bibliography{mybib}
11.3 biblatex 引用
latex
\usepackage[style=authoryear]{biblatex}
addbibresource{mybib.bib}
% 文中引用
autocite{key}
parencite{key}
textcite{key}
% 参考文献
printbibliography
十二、长文档
12.1 文件拆分
latex
% 导入文件(无条件)
\input{chapter1}
% 导入文件(总是新页)
\include{chapter2}
% 选择性导入
\includeonly{
chap1,
chap2
}
12.2 文档结构
latex
\frontmatter % 前言部分,罗马页码
\title{书名}
\author{作者}
\maketitle
\tableofcontents
\mainmatter % 正文部分,阿拉伯页码
\include{chap1}
\include{chap2}
\appendix % 附录,编号变为 A、B
\include{app}
\backmatter % 附录后记
\printbibliography
12.3 目录和图表列表
latex
\tableofcontents
\listoffigures
\listoftables
十三、错误处理
13.1 常见错误
| 错误 | 原因 |
|---|---|
Missing $ inserted |
数学模式内容出现在文本中 |
Undefined control sequence |
命令未定义(拼写错误或未加载宏包) |
Runaway argument |
参数不匹配 |
Too many }'s |
多余的大括号 |
?? |
引用未解析(需要再次编译) |
13.2 调试建议
- 查看
.log文件获取详细错误 - 从上往下看,第一个错误往往是根源
- 遇到错误输入
x退出 - 编译两次确保引用解析
十四、实用技巧
14.1 在线 LaTeX
14.2 符号识别
- Detexify:https://detexify.kirelabs.org
14.3 常用模板
latex
% 中文文章模板
\documentclass{ctexart}
\usepackage{ctex}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{booktabs}
\begin{document}
\title{标题}
\author{作者}
\maketitle
\section{引言}
...
\end{document}
14.4 编译命令
bash
# PDFLaTeX
pdflatex doc.tex
# XeLaTeX
xelatex doc.tex
# LuaLaTeX(推荐)
lualatex doc.tex
# 带 BibTeX
pdflatex doc
bibtex doc
pdflatex doc
pdflatex doc
# 带 Biber
lualatex doc
biber doc
lualatex doc
附录:常用符号表
数学符号
| 符号 | 命令 |
|---|---|
| ± | \pm |
| × | \times |
| ÷ | \div |
| ≤ | \leq |
| ≥ | \geq |
| ≠ | \neq |
| ≈ | \approx |
| ∑ | \sum |
| ∏ | \prod |
| ∫ | \int |
| ∂ | \partial |
| ∇ | \nabla |
| √ | \sqrt |
| ∞ | \infty |
希腊字母
| 小写 | 命令 | 大写 |
|---|---|---|
| α | \alpha |
Α |
| β | \beta |
Β |
| γ | \gamma |
Γ |
| δ | \delta |
Δ |
| ε | \epsilon |
Ε |
| θ | \theta |
Θ |
| λ | \lambda |
Λ |
| μ | \mu |
Μ |
| π | \pi |
Π |
| σ | \sigma |
Σ |
| φ | \phi |
Φ |
| ω | \omega |
Ω |
十五、错误处理
15.1 常见错误类型
| 错误 | 原因 | 解决方法 |
|---|---|---|
Undefined control sequence |
命令未定义 | 检查拼写或加载宏包 |
Missing $ inserted |
数学模式内容在文本中 | 加上 $ 或 \[ \] |
File 'xxx.sty' not found |
宏包未安装 | 安装宏包或检查名称拼写 |
Too many }'s |
多余大括号 | 检查括号匹配 |
Runaway argument |
参数不匹配 | 检查命令参数 |
?? |
引用未解析 | 再次编译 |
15.2 错误信息格式
! 错误类型
\命令 -> 错误位置
l.行号 源代码
?
15.3 调试方法
- 查看
.log日志文件 - 从上往下读,第一个错误是根源
- 交互式输入
x退出 - 编译两次确保引用解析
15.4 常见错误示例
未定义命令:
latex
\newcommand\mycommand{\textbold{hmmm}} % 错误:\textbold 不存在
应改为 \textbf
花括号不匹配:
latex
\usepackage[leqno}{amsmath} % 错误:} 和 ] 位置不对
数学环境空行:
latex
\begin{equation}
1=2
\end{equation} % 错误:数学环境不允许空行
十六、获取帮助
16.1 本地文档
bash
texdoc amsmath % 打开宏包文档
texdoc -l amsmath % 列出所有相关文档
16.2 在线资源
- texdoc.org:在线宏包文档
- CTAN:https://www.ctan.org/pkg/宏包名
- Overleaf 文档:https://www.overleaf.com/learn
16.3 寻求帮助
推荐论坛:
- TeX - LaTeX StackExchange:https://tex.stackexchange.com
提问技巧:
- 创建最小工作示例(MWE)
- 自包含、只包含必要内容
- 清楚描述问题现象
生成测试文本:
latex
\usepackage{lipsum} % 英文
\usepackage{zhlipsum} % 中文
\lipsum[1-5] % 生成5段英文
附录:课程索引
| 课 | 主题 | 链接 |
|---|---|---|
| 1 | LaTeX 基础 | lesson-01 |
| 2 | 使用 LaTeX | lesson-02 |
| 3 | 文档结构 | lesson-03 |
| 4 | 逻辑结构 | lesson-04 |
| 5 | 文档类 | lesson-05 |
| 6 | 扩展 LaTeX | lesson-06 |
| 7 | 图片 | lesson-07 |
| 8 | 表格 | lesson-08 |
| 9 | 交叉引用 | lesson-09 |
| 10 | 数学 | lesson-10 |
| 11 | 字体和间距 | lesson-11 |
| 12 | 参考文献 | lesson-12 |
| 13 | 长文档 | lesson-13 |
| 14 | 字体引擎 | lesson-14 |
| 15 | 错误处理 | lesson-15 |
| 16 | 获取帮助 | lesson-16 |
笔记整理完成,建议结合 Overleaf 实践操作