前言:排版工具与书写工具的讨论
LaTeX是一种基于ΤeΧ的“非所见即所得”排版系统。用户通过编写特定的代码(通常保存在 .tex 的文件中),再经过编译器处理,最终生成专业级的PDF文档。
例如以下代码:
\documentclass{article}
\begin{document}
Hello, world!
\end{document}
编译后会输出一个内容为“Hello, world!”的PDF文件。
“非所见即所得” vs “所见即所得”
以Microsoft Word为例,其界面就是一张虚拟A4纸,输入时的样式即为最终输出的样式,这被称为“所见即所得”(WYSIWYG)。这种方式直观、易上手,但存在一些问题:
- 细节不一致: 对细节不敏感的用户,排版中常出现行间距、字体、标题样式不统一等问题。
- 自动化程度低: 论文写作中的标题、章节、图表、参考文献等难以自动编号和交叉引用。
- 公式支持不佳: 自带的公式编辑器功能有限,插件有时不稳定或效果不理想。
相比之下,使用LaTeX进行排版,就像在铺好的轨道上驾驶火车。虽然自由度不如Word,但其严格的规范性确保了文档的高度一致和专业,尤其适合学术论文、书籍和报告的排版。无论是LaTeX还是Word,其归根结底都只是工具。值得一提的是,Markdown作为一种轻量级标记语言,书写时可专注于内容,并支持LaTeX语法输入公式,与LaTeX的转换也十分方便,是理想的草稿书写工具。
准备工作:安装与配置
1. 安装 TeX Live
TeX Live 是主流的LaTeX发行版,包含了编译所需的引擎和宏包。推荐安装最新版本(每年更新)。
官方下载地址速度可能较慢,建议使用国内镜像(注意年份,请下载最新版,如 `texlive.iso` 或 `texlive2025.iso`):
下载ISO文件后,可使用压缩软件解压或虚拟光驱加载,然后运行其中的安装脚本即可。
2. 选择 TeX 编辑器
- 新手推荐: TeXworks (通常随 TeX Live 自带),开箱即用,无需配置。
- 进阶之选: TeXstudio,功能强大,提供语法高亮、自动补全和集成PDF预览。
- 专业配置: Visual Studio Code + LaTeX Workshop 插件,高度可定制,效率极高,是笔者的主力推荐,但需要手动配置。
- 在线协作: Overleaf,无需本地安装,支持实时协作,是团队项目的绝佳选择。
3. 选择 PDF 阅读器
专业的PDF阅读器能提供更好的体验,尤其是在查看 `beamer` 幻灯片和使用反向同步(从PDF点击跳转回源码)时。
文档基础
文档类型 (Document Class)
每个LaTeX文档都始于 \documentclass{} 命令。它定义了文档的整体类型。
- 英文:
book, article, report, beamer (幻灯片)
- 中文: 推荐使用
ctexart, ctexrep, ctexbook,它们封装了 `ctex` 宏包,对中文支持非常完善。
可以在文档类型后用方括号传入选项,如字体大小、纸张、单双面等。
\documentclass[12pt, a4paper, oneside]{ctexart}
文档骨架
文档内容必须放在 \begin{document} 和 \end{coment} 之间。在此之前的部分称为 **导言区 (Preamble)**,用于加载宏包和进行全局设置。
\documentclass{ctexart}
% 这里是导言区,用于全局设置
\begin{document}
这里是正文部分,会显示在最终的PDF中。
\end{document}
宏包 (Packages)
LaTeX 的强大功能很大程度上来自于宏包。使用 \usepackage{} 命令在导言区加载所需宏包。
% 数学公式与定理环境
\usepackage{amsmath, amsthm, amssymb}
% 插入图片
\usepackage{graphicx}
% 超链接与PDF书签
\usepackage[bookmarks=true, colorlinks, citecolor=blue, linkcolor=black]{hyperref}
% 页面边距设置
\usepackage{geometry}
% 粗体数学符号
\usepackage{bm}
文档结构
标题、作者与日期
在导言区设置标题等信息,然后在正文区使用 \maketitle 命令来生成标题块。
\documentclass{ctexart}
\title{我的第一个 \LaTeX{} 文档}
\author{张三}
\date{\today} % \today 会自动生成当天的日期
\begin{document}
\maketitle
这里是正文...
\end{document}
章节与段落
使用章节命令来组织文章结构,LaTeX会自动为其编号。
\section{一级标题}
\subsection{二级标题}
\subsubsection{三级标题}
对于 ctexbook 等书籍类型,还可以使用 \chapter{章标题}。
在LaTeX中,一个或多个连续的空行用来分隔段落,代码中的换行和多余空格会被忽略。新段落默认会首行缩进。
目录
在文档的适当位置(通常是标题之后)使用 \tableofcontents 命令,即可自动生成基于章节标题的目录。
带有目录或交叉引用的文档通常需要 **编译两次** 以确保所有编号和引用都正确更新。
交叉引用 (Label and Reference)
这是LaTeX的核心优势之一。使用 \label{key} 为几乎任何可编号的对象(章节、图、表、公式)设置一个唯一的标签,然后使用 \ref{key} 在文中的任何地方引用它的编号。
\section{绪论}
\label{sec:intro}
在章节 \ref{sec:intro} 中,我们讨论了...
\begin{equation}
a^2 + b^2 = c^2 \label{eq:pythagoras}
\end{equation}
公式 \ref{eq:pythagoras} 是著名的勾股定理。
内容元素
图片
使用 figure 环境和 \includegraphics 命令插入图片。需要加载 graphicx 宏包。
\begin{figure}[htbp]
\centering
\includegraphics[width=0.8\textwidth]{figure.png}
\caption{这是一张示例图片}
\label{fig:example}
\end{figure}
[htbp]: LaTeX自动选择最佳位置 (Here, Top, Bottom, Page)。
\centering: 图片居中。
width=0.8\textwidth: 设置图片宽度为文本宽度的80%。
\caption{}: 图片标题,会自动编号。
\label{}: 用于交叉引用。
表格
表格使用 table 和 tabular 环境。手动创建较为繁琐,推荐使用在线工具 TablesGenerator.com 自动生成代码。
\begin{table}[htbp]
\centering
\caption{一个简单的三列表格}
\label{tab:example}
\begin{tabular}{lcr} % l=left, c=center, r=right
\hline
左对齐 & 居中 & 右对齐 \\
\hline
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\hline
\end{tabular}
\end{table}
列表
- 无序列表 (itemize):
\begin{itemize} \item ... \end{itemize}
- 有序列表 (enumerate):
\begin{enumerate} \item ... \end{enumerate}
- 描述列表 (description):
\begin{description} \item[名词] 解释... \end{description}
\begin{enumerate}
\item 这是第一点。
\item 这是第二点,可以自定义标号:
\begin{enumerate}
\item[(a)] 子项目一。
\item[(b)] 子项目二。
\end{enumerate}
\item 这是第三点。
\end{enumerate}
参考文献
对于入门,最简单的方式是使用 thebibliography 环境。在文中使用 \cite{key} 引用。
对于大规模的文献管理,推荐学习 BibTeX 或 BibLaTeX,它们能通过 .bib 文件自动管理和格式化参考文献。
% 在正文中引用
Knuth 的著作 \cite{knuth1984texbook} 是 \TeX{} 的经典。
% 在文档末尾(\end{document}之前)
\begin{thebibliography}{9} % {9} 表示引用标签最大是一位数
\bibitem{knuth1984texbook}
Donald E. Knuth.
\newblock \textit{The TeXbook}.
\newblock Addison-Wesley Professional, 1984.
\end{thebibliography}
定理环境
学术写作离不开定理、定义、引理等。使用 amsthm 宏包可以轻松定义这些环境。
定义环境
在导言区使用 \newtheorem 定义新环境。
\newtheorem{theorem}{定理}[section] % {环境名}{显示名}[计数器依赖]
\newtheorem{definition}[theorem]{定义} % [theorem]表示与定理环境共享编号
\newtheorem{lemma}[theorem]{引理}
\newtheorem{corollary}[theorem]{推论}
使用环境
在正文中使用定义好的环境。证明过程可以使用 proof 环境,它会自动添加证毕符号。
\begin{theorem}[勾股定理]
\label{thm:pythagoras}
在一个直角三角形中,两条直角边的平方和等于斜边的平方。
\end{theorem}
\begin{proof}
证明过程略。
\end{proof}
页面设置
页边距
LaTeX 默认页边距较大。使用 geometry 宏包可以方便地进行调整。
\usepackage{geometry}
\geometry{left=2.5cm, right=2.5cm, top=3cm, bottom=3cm}
行间距
虽然 \linespread{1.5} 可以设置1.5倍行距,但更推荐使用 setspace 宏包,它能更精细地控制行距,避免在某些环境(如图表标题)中出现不协调的间距。
\usepackage{setspace}
% 在导言区设置后全文生效
\onehalfspacing % 1.5倍行距
% \doublespacing % 双倍行距
% \singlespacing % 单倍行距
数学公式
LaTeX 的数学公式排版功能是其核心魅力所在。需要加载 amsmath, amssymb, bm 等宏包。
行内公式与行间公式
- 行内公式: 使用
$...$ 包裹,嵌入在文本行中。例如:设函数为 $f(x) = x^2$。
- 行间公式 (无编号): (推荐) 使用
\[ ... \]。它会自动居中并与上下文产生合适的间距。
- 行间公式 (有编号): 使用
equation 环境,会自动编号并允许使用 \label。
质能方程是现代物理学的基石:
\begin{equation}
E = mc^2 \label{eq:emc}
\end{equation}
注意: 应当避免使用陈旧的 $$...$$ 写法,因为它可能导致错误的垂直间距。请始终使用 \[...\] 或 `amsmath` 提供的环境。
常用语法
| 功能 | 命令 | 示例 |
| 上下标 | ^ 和 _ | $x^{2\alpha_i}$ |
| 分式 | \frac{分子}{分母} | $\frac{1}{2}$ (小) vs $\displaystyle\frac{1}{2}$ 或 $\dfrac{1}{2}$ (大) |
| 根号 | \sqrt[n]{...} | $\sqrt{x^2+y^2}$, $\sqrt[3]{8}=2$ |
| 求和/积分 | \sum, \int | $\sum_{i=1}^{n} i = \frac{n(n+1)}{2}$, $\int_a^b f(x)dx$ |
| 括号 | () [] \{\} | 对于高大的内容,使用 \left( ... \right) 自动调整大小 |
| 粗体符号 | \bm{...} (需 bm 宏包) | $\bm{v} = (v_1, v_2, v_3)$ |
多行公式
使用 aligned 环境(在数学环境内)进行对齐,使用 & 标记对齐点,\\ 换行。
\[
\begin{aligned}
(a+b)^2 & = (a+b)(a+b) \\
& = a^2 + ab + ba + b^2 \\
& = a^2 + 2ab + b^2
\end{aligned}
\]
矩阵与分段函数
- 矩阵: 使用
pmatrix (圆括号), bmatrix (方括号), vmatrix (竖线) 等环境。
- 分段函数: 使用
cases 环境。
\[
% 矩阵
\mathbf{A} = \begin{pmatrix} a & b \\ c & d \end{pmatrix}
\quad
% 分段函数
|x| = \begin{cases}
x, & \text{if } x \ge 0 \\
-x, & \text{if } x < 0
\end{cases}
\]
结语
本教程涵盖了LaTeX日常使用的核心功能。耐心学习完后,您应该足以应对大多数文档的排版需求。熟练掌握LaTeX需要不断的实践,您可以尝试:
- 用LaTeX录入几页您喜欢的书籍或文章,以加深理解和熟练度。
- 配置VS Code等高效编辑器,探索更现代化的工作流。
- 研究如何美化排版,或直接使用网络上众多优秀的LaTeX模板。
祝您在LaTeX的世界中探索愉快!