1. LaTeX 的基本概念

1. LaTeX 的基本概念 #

1.1 概述 #

1.1.1 TeX #

TeX 是高德纳(Donald E. Knuth)为文字和数学公式开发的排版系统。它处理字形、间距、断行和分页等底层工作。“TeX”中的最后一个音接近“赫”,不是英语字母 X 的读音。

1.1.2 LaTeX #

LaTeX 最初由 Leslie Lamport 开发,是建立在 TeX 上的一套文档格式。作者用 \section 表达“这是一个节标题”,由文档类决定标题的字号、间距和编号。

日常使用的 LaTeX 2ε 写成纯文本时也称 LaTeX2e。它不是编辑器;TeXPage 等编辑环境负责帮助你编辑源文件、调用编译器并查看 PDF。

1.1.3 LaTeX 的优缺点 #

LaTeX 的优势是结构清晰、数学排版强、编号和引用自动化、适合复用模板。代价是需要学习命令,通常要编译后才能看到结果,排查复杂宏包冲突和重新设计版式也需要经验。

刚开始先使用合适的文档类,把内容写对。不要为了模仿某个外观而给每行文字手工添加空格、字号和换行。

1.1.4 命令行基础 #

本地编译命令通常在源文件所在目录运行。例如先用 cd 切换目录,再输入:

xelatex main.tex

文件路径含空格时用引号包裹。在 Windows 命令提示符里跨盘切换目录,可用 cd /d "D:\my-project";macOS 和 Linux 路径使用正斜线。

“找不到命令”通常表示程序未安装或不在 PATH 中,不是 LaTeX 源码错误。编辑器上的编译按钮也是在调用这些程序;在 TeXPage 中直接使用编译按钮即可。

1.2 第一次使用 LaTeX #

将以下完整代码保存为 main.tex,使用 XeLaTeX 编译:

\documentclass[UTF8,fontset=fandol]{ctexart}

\title{我的第一份文档}
\author{小林}
\date{\today}

\begin{document}
\maketitle

\section{开始}
你好,世界!这是我用 \LaTeX{} 写的第一份文档。

空一行就开始一个新段落。
\end{document}

成功后得到 main.pdf。试着修改标题、作者和一句正文,再编译一次。\today 表示编译当天的日期;\date{} 可以让标题不显示日期。

纯英文文档可以使用 article。包含中文时,本教程采用 ctexart;不要仅把中文输入到未配置中文支持的英文模板中。

1.3 LaTeX 命令和代码结构 #

1.3.1 LaTeX 命令和环境 #

命令以反斜线 \ 开头,区分大小写。命令名可以是一串字母,也可以是一个非字母字符:

这是 \textbf{加粗文字},完成度为 80\%

花括号 {...} 一般包裹必选参数,方括号 [...] 一般包裹可选参数。星号形式通常改变命令的行为,例如 \section*{说明} 不自动编号。

字母命令会吃掉紧随其后的空格。英文单词之间要保留空格,可以写 \LaTeX{} users。只想局部改变字体时用分组:

普通文字,{\bfseries 这部分加粗},这里恢复原样。

环境由名称相同的 \begin\end 配对构成:

\begin{quote}
这是一段独立的引用文字。
\end{quote}

嵌套环境要按相反顺序关闭:最后打开的环境最先关闭。大部分局部设置在分组或环境结束后恢复,但计数器等设置可能是全局的。

1.3.2 LaTeX 源代码结构 #

一份文档分为三部分:

  1. \documentclass 指定文档类。
  2. 导言区加载宏包、定义命令、设置标题和版式。
  3. \begin{document}\end{document} 之间是正文。

\end{document} 后的内容不会排版。\usepackage 等只能放在导言区;普通段落则应放在正文中。

1.4 LaTeX 宏包和文档类 #

1.4.1 文档类 #

\documentclass[a4paper,11pt]{article}

上面选择文章类,并设置 A4 纸和基本字号。一次编译只能有一个文档类。

文档类 用途
article / ctexart 文章、笔记、短报告,最高常用层次为 \section
report / ctexrep \chapter 的长报告。
book / ctexbook 带前言、正文和后记结构的书籍。
beamer 演示文稿。

标准文档类常见选项包括:

选项 作用
10pt11pt12pt 基本字号;中文类还支持 zihao
a4paperletterpaper 纸张大小。
onesidetwoside 单面或双面版式,不是打印机设置。
onecolumntwocolumn 单栏或双栏。
openrightopenany book/report 中控制新章的起始页。
titlepagenotitlepage 标题是否单独成页。
fleqnleqno 行间公式左对齐、公式编号放左侧。
draftfinal 草稿或终稿;也可能影响图片和链接。

不同文档类不一定支持相同选项。使用期刊或学校模板时,应按模板文档填写,而不是盲目照搬标准类配置。

1.4.2 宏包 #

宏包扩展 LaTeX 的功能,用 \usepackage 加载:

% 导言区
\usepackage{graphicx}
\usepackage[margin=2.5cm]{geometry}

graphicx 提供插图命令,geometry 管理页面参数。可以一次加载多个不带选项的宏包,如 \usepackage{amsmath,amssymb}

同一个宏包不要以不同选项反复加载。它也可能已由文档类或其他宏包加载,发生冲突时要检查加载来源和顺序。本地可用 texdoc geometry 阅读宏包手册;常用宏包见附录 B

1.5 LaTeX 用到的文件一览 #

扩展名 作用
.tex 主要源文件和章节文件。
.sty.cls 宏包、文档类。
.bib.bst 文献数据库、传统 BibTeX 样式。
.pdf 编译后的文档。
.log 编译日志。
.aux.toc 引用等辅助信息、目录。
.lof.lot 插图目录、表格目录。
.bbl.blg 文献处理结果、文献处理日志。
.bcf biblatex 写给 Biber 的控制文件。
.idx.ind.ilg 原始索引、排版用索引、MakeIndex 日志。
.out hyperref 的书签辅助信息。

目录和引用依赖上一次编译写出的辅助文件,所以有时需要再次编译。清理辅助文件不能代替修复源码错误,也不要把 .tex.bib 或图片误当作缓存删除。

1.6 文件的组织方式 #

长文档可以分文件组织。假设正文位于 chapters/introduction.tex

% 放在主文件正文中
\input{chapters/introduction}

被读入的章节文件只写章节和正文,不再写 \documentclassdocument 环境。

\include{chapters/introduction} 也能读入章节,但会在前后执行分页,适合书籍的大章;它不能嵌套使用。\input 不强制分页,也可以在导言区读入公共设置。

导言区中的 \includeonly{chapters/introduction} 可以仅处理指定的 \include 文件。为保留其他章节的引用,应先完整编译一次;它对 \input 无效。

图片等资源最好使用相对路径,文件名保持简洁。syntonly 宏包配合 \syntaxonly 可用于只检查语法而不输出 PDF;初学时正常编译并查看输出更直观。

1.7 LaTeX 和 TeX 相关的术语和概念 #

概念 含义与例子
引擎 执行底层排版的程序,例如 pdfTeX、XeTeX、LuaTeX。
格式 预定义的一套命令,例如 plain TeX、LaTeX。
编译命令 调用引擎和格式,例如 pdflatexxelatexlualatex
发行版 打包引擎、宏包、字体和配套工具的集合。
编辑器 编辑源码并调用编译工具的界面。

pdflatex 使用 pdfTeX;xelatex 使用 XeTeX;lualatex 使用 LuaTeX 系列引擎。latex 这个命令通常生成 DVI,不能与泛指文档格式的“LaTeX”混为一谈。

XeLaTeX 和 LuaLaTeX 能处理 Unicode 和 OpenType 字体。中文排版还需要 ctex 等处理中文字体、断行和标点规则,不能只看引擎是否支持 UTF-8。

← 阅读指南 · 下一章:用 LaTeX 排版文字 →

来源与许可