字母形式的LaTeX 命令忽略其后的所有空格。如果要人为引入空格,需要在命令后面加一对括号:
\TeX{}
阻止其忽略空格。另外也可以在命令后面紧跟一个\␣
命令(反斜线加空格),代表插入一个间距。比如\TeX\␣user
的输出效果就是TEX user
。-
可选参数 ⟨options⟩ 为文档类指定选项,以全局地影响文档布局的参数,如字号、纸张大小、单双面等等。比如调用 article 文档类排版文章,指定纸张为 A4 大小,基本字号为 11pt,双面排版:
\documentclass[11pt,twoside,a4paper]{article}
当编写较大规模的 LaTeX 源代码,如书籍、毕业论文等,你有理由将源代码分成若干个文件而不是写到一堆,比如很自然地每章写一个文件。LaTeX 提供了命令
\include
用来在源代码里插入文件:\include{⟨filename⟩}
⟨filename⟩
为文件名,如果和要编译的主文件不在一个目录中,则要加上相对或绝对路径。
值得注意的是\include
在读入⟨filename⟩
之前会另起一页。有的时候我们并不需要这样,而是用\input
命令,它纯粹是把文件里的内容插入:
\input{⟨filename⟩}
\documentclass[...]{book}
% 导言区,加载宏包和各项设置
\usepackage{...}
% 此处示意对参考文献和索引的设置
\usepackage{makeidx}
\makeindex
\bibliographystyle{...}
\begin{document}
\frontmatter
\maketitle % 标题页
\include{preface} % 前言章节 preface.tex
\tableofcontents
\mainmatter
\include{chapter1} % 第一章 chapter1.tex
\include{chapter2} % 第二章 chapter2.tex
...
\appendix
\include{appendixA} % 附录 A appendixA.tex
...
\backmatter
\include{prologue} % 后记 prologue.tex
\bibliography{...} % 利用 BibTeX 工具生成参考文献
\printindex % 利用 makeindex 工具生成索引
\end{document}
- LaTex源代码中,空格键和 Tab 键输入的空白字符视为“空格”。连续的若干个空白字符视为一个空格。一行开头的空格忽略不计。
行末的回车视为一个空格;但连续两个回车,也就是空行,会将文字分段。多个空行被视为一个空行。也可以在行末使用\par
命令分段:
- 以下字符在 LaTex 里有特殊用途,如 % 表示注释, $、 ^、 _ 等用于排版数学公式, & 用于排版表格,等等。如果想要输入以上符号,需要使用以下带反斜线的形式输入:
\textbackslash
。 -
破折号有三种:
- 如果我们需要手动断行,可使用如下命令:
\\ or \newline
\\
也在表格、公式等地方用于分行,而\newline
只用于文本段落中。
断页的命令有两个:
\newpage or \clearpage
- article 文档类带编号的层级为
\section
/\subsection
/\subsubsection
三级; - LaTex 支持生成简单的标题页。首先需要给定标题和作者等信息:
\title{⟨title⟩} \author{⟨author⟩} \date{⟨date⟩}
其中前两个命令是必须的(不用\title
会报错;不用\author
会警告),\date
命令可选。 LaTex还提供了一个\today
命令自动生成当前日期,\date
默认使用\today
。
在\title
、\author
等命令内可以使用\thanks
命令生成标题页的脚注,用\and
隔开多个人名,如:
\author{Mary\thanks{E-mail:*****@***.com}
\and Ted\thanks{Corresponding author}
\and Louis}
在信息给定后,就可以使用\maketitle
生成标题页。
-
交叉引用是 LaTex 强大的自动排版功能的体现之一。在能够被交叉引用的地方,如章节、公式、图表、定理等位置使用
\label
命令:
\label{⟨label-name⟩}
之后可以在别处使用\ref
或\pageref
命令,分别生成交叉引用的编号和页码:
\ref{⟨label-name⟩} \pageref{⟨label-name⟩}
- 使用
\footnote
命令可以在页面底部生成一个脚注:
\footnote{⟨footnote⟩}
- LaTex 提供了基本的有序和无序列表环境
enumerate
和itemize
,两者的用法很类似,都用\item
标明每个列表项。enumerate
环境会自动对列表项编号。
\begin{enumerate}
\item . . .
\end{enumerate}
其中 \item
可带一个可选参数,将有序列表的计数或者无序列表的符号替换成自定义的符号。列表可以嵌套使用,最多嵌套四层。
关键字环境
description
的用法与以上两者类似,不同的是 \item
后的可选参数用来写关键字,以粗体显示,一般是必填的:
\begin{description}
\item[⟨item title⟩] . . .
\end{description}
-
center、 flushleft 和 flushright
环境分别用于生成居中、左对齐和右对齐的文本环境。除此之外,还可以用以下命令直接改变文字的对齐方式:
\centering \raggedright \raggedleft
center
等环境会在上下文产生一个额外间距,而\centering
等命令不产生,只是改变对齐方式。
摘要环境
abstract
默认只在标准文档类中的 article 和 report 文档类可用,一般用于紧跟\maketitle
命令之后介绍文档的摘要。如果文档类指定了titlepage
选项,则单独成页;反之,单栏排版时相当于一个居中的小标题加一个quotation
环境,双栏排版时相当于\section*
定义的一节。-
有时我们需要将一段代码原样转义输出,这就要用到代码环境
verbatim
,它以等宽字体排版代码,回车和空格也分别起到换行和空位的作用;带星号的版本更进一步将空格显示成␣
。
\verb
命令,同 verbatim 环境, \verb 后也可以带一个星号,以显示空格:
verbatim
宏包优化了verbatim
环境的内部命令,并提供了\verbatiminput
命令用来直接读入文件生成代码环境。fancyvrb
宏包提供了可定制格式的Verbatim
环境;listings
宏包更进一步,可生成关键字高亮的代码环境,支持各种程序设计语言的语法和关键字。 LaTex 本身不支持插图功能,需要由
graphicx
宏包辅助支持。在调用了 graphicx 宏包以后,就可以使用\includegraphics
命令加载图片了:
\includegraphics[⟨options⟩]{⟨filename⟩}
内容丰富的文章或者书籍往往包含许多图片和表格等内容。这些内容的尺寸往往太大,导致分页困难。 LaTex 为此引入了浮动体的机制,令大块的内容可以脱离上下文,放置在合适的位置。
LaTex 预定义了两类浮动体环境figure
和table
。习惯上 figure 里放图片, table 里放表格,但并没有严格限制,可以在任何一个浮动体里放置文字、公式、表格、图片等等任意内容。-
数学公式有两种排版方式:其一是与文字混排,称为行内公式;其二是单独列为一行排版,称为行间公式。
行内公式由一对$
符号包裹:
equation
环境包裹。 equation 环境为公式自动生成一个编号,这个编号可以用\label
和\ref
生成交叉引用,amsmath
的\eqref
命令甚至为引用自动加上圆括号;还可以用\tag
命令手动修改公式的编号,或者用\notag
命令取消为公式编号(与之基本等效的命令是\nonumber
)。
当然你不会愿意为每个公式都手动取消编号。 LaTex 提供了一对命令\[
和\]
用于生成不带编号的行间公式,与之等效的是displaymath
环境。有的人更喜欢equation*
环境,体现了带星号和不带星号的环境之间的区别:
更多的情况是,我们需要罗列一系列公式,并令其按照等号对齐。
目前最常用的是align
环境,它将公式用 & 隔为两部分并对齐。分隔符通常放在等号左边。align
环境会给每行公式都编号。我们仍然可以用\notag
去掉某行的编号。
align 还能够对齐多组公式,除等号前的 & 之外,公式之间也用 & 分隔:
gather
将是一个很好用的环境:
align
和gather
有对应的不带编号的版本align*
和gather*
。 -
字体和字号,LaTex 提供了一个基础的命令
\fontsize
用于设定任意大小的字号。\fontsize
用到两个参数,⟨size⟩
为字号,⟨base line-skip⟩
为基础行距。表 5.3 中的命令也都各自设定了与字号对应的基础行距,大小为字号的 1.2 倍。
段落格式和间距,