The Basic Knowledge Of Latex 2
Published:
这篇博客延续 The Basic Knowledge Of Latex,继续扩展关于 latex 的基本用法。
Basic Application
在一篇论文中,可能还会出现定理、推论、引理、定义等需要单独展示并使用特殊的展示样式,对于 latex 的不同文件格式其展示的样式也不同。 以定理为例,首先需要在导言区(即导包的区域)添加对定理的使用设置:
\newtheorem{theorem}{定理的显示前缀}[在何种条件下重新计数]
其中,\newtheorem{·}{·}[·] 的第一个 {} 中填写需要的格式,包括 theorem(定理)、corollary(推论)、lemma(引理)、definition(定义)等; 而第二个 {} 中填写需要显示在定理前的前缀,并且每条定理也会自动编号;而第三个 [·] 中填写需要以谁为基准重新编号。然后,在需要正文中需要插入定理的位置,使用如下代码函数生成定理:
\begin{theorem}
定理编写区
\end{theorem}
例如,我们需要编写一条定理 $1+1 = 2$,其前缀为 Theorem,并且定理以 section 为基准重新编号,则代码如下:
% 在导言区加入(注:latex 的注释是 %)
% [section] 表示对于每个 section,定理都会重新自动编号
% 如在 section 1 中是 1.1, ...;则在 section 2 中就变成了 2.1, ...
% 这是 latex 的自动编号,无需我们手动编写
% 而 {Theorem} 表示会生成前缀,如对 section 1 的第一条定理,会生成前缀 Theorem 1.1
\newtheorem{theorem}{Theorem}[section]
...
% 在需要添加定理的位置加入
\begin{theorem}[定理别名]
% 在定理编写区,数学符号用 \(·\) 包裹展示,而数学表达式用 \[·\] 包裹展示(其语法和正文的 $·$ 中的语法相同)
This is a theorem about \(f\) function: \[ 1 + 1 = 2 \]
\end{theorem}
最终生成的效果是:
Theorem 1.1 (定理别名): This is a theorem about f function:
1 + 1 = 2
此外,列表也是论文中可能会出现的类型,LaTeX 中的列表环境包含无序列表 itemize、有序列表 enumerate 和描述 description,它们都是使用如下代码函数进行编写:
\begin{列表类型(包括 itemize/enumerate/description)}
% 当使用 [自定义列表标号] 后,默认的列表标记符号就不会显示
\item[自定义列表标号] ...;
\item[...] ...;
...
\end{列表类型}
上一篇 blog 提到了如何编写显示数学公式的代码函数,但对于数学公式本身的编写的语法没有提及。这里对一些基础的公式进行说明(注意,下述的代码都是要写在上篇 blog 提到的公式代码函数所包裹的区域内的):
首先是 上下标,使用 _{} / ^{} 输入(在上下标只有一个字符时 {} 可以省略),如 a_n / a^n 分别表示 $a_n / a^n$。 其次是分式,使用 \dfrac{}{} / \frac{}{} 输入(区别在于后者的字体较小,一般用于指数等地方),如 \dfrac{a}{b} / \frac{a}{b} 分别表示 $\dfrac{a}{b} / \frac{a}{b}$。 然后是括号,对于花括号 {},由于默认的情况表示范围,所以一般不会显示,需要显示则需要使用转义符 \,即 \{\} 显示为 $\{\}$, 而对于需要较大的括号,则需要使用 \left(...\right),其显示为 $\left(...\right)$。此外,在中间需要隔开时,可以用 \left(..\middle|..\right),其显示为 $\left(..\middle|..\right)$。 除了常规括号,还有单边大括号,其使用如下代码函数进行输入:
\begin{cases}
% \\ 表示换行,即各行使用 \\ 分隔
% 同时,case 以 & 符号作为对齐标志,即对齐每行的 & 的左右两边
equation1 & condition1 ... \\
equation2 & condition2 ...
\end{cases}
接着是求和/求积公式,分别使用 \sum / \prod 输入(上下标表示和上述相同),如 \sum_i^N{a_i} / \prod_j^M{b_j} 分别表示 $\sum_i^N{a_i} / \prod_j^M{b_j}$。
然后是矩阵和行列式,分别使用如下的代码函数进行输入:
% bmatrix/pmatrix/vmatirx 分别表示 方括号矩阵、圆括号矩阵、行列式
\begin{bmatrix/pmatrix/vmatirx}
% 各个元素使用 & 间隔,各行使用 \\ 分隔
a & b \\
c & d
\end{bmatrix}
另外,公式中可能对于某些字符需要加粗显示,这里建议使用 \bm{} 代码函数(需要导入 bm 宏包 \usepackage{bm})进行加粗,可以保留它的斜体属性。
最后,在论文中可能会出现公式推导的情况,这时候需要对每个公式的等号进行对齐,此时可以使用如下代码函数进行输入:
\begin{aligned}
% aligned 以 & 符号作为对齐标志,即对齐每行的 & 的左右两边
a & =b+c \\
& =d+e
\end{aligned}
在公式中的换行符是 \\,但是在 \begin{equation} 的代码环境下并不起作用,这时如果因为公式过长或者其他原因需要强制换行, 可以放弃使用 \begin{equation},使用 \begin{multline} (需要导入 amsmath 宏包 \usepackage{amsmath}):
\begin{multline}
% 注意,默认第一行的公式是靠左对齐,最后一行的公式是靠右对齐
....
\end{multline}
Code Demo
最后,对上面所有的内容集成到一个 `test2.tex` 文件中,并展示其编译后的 pdf 文件内容形式。其中, `test2.tex` 文件中的内容如下:
\documentclass[lettersize,journal]{IEEEtran}
\usepackage{bm}
\usepackage{amsmath}
\newtheorem{theorem}{Theorem}[section]
\newtheorem{definition}{Definition}[section]
\begin{document}
\title{Latex basic knowledge 2}
\author{Jianfeng Cai}
\maketitle
\section{Introduction}
\begin{theorem}[Pythagorean theorem]
\label{pythagorean}
This is a theorem about right triangles and can be summarised in the next
equation
\[ x^2 + y^2 = z^2 \]
\end{theorem}
\begin{description}
\item[(1)] first;
\item[(2)] second;
\item[(3)] third.
\end{description}
$$
a_i^n + b_j^m = 0
$$
$$
a^{\dfrac{num}{den}} / a^{\frac{num}{den}}
$$
$$
\left(1 + \frac{1}{2} \middle | \bm{\{i \neq j\}}\right)
$$
\begin{equation}
f = \begin{cases}
equation1 & condition1 ... \\
equation2 & condition2 ...
\end{cases}
\end{equation}
$$
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}
\begin{pmatrix}
a & b \\
c & d
\end{pmatrix}
\begin{vmatrix}
a & b \\
c & d
\end{vmatrix}
$$
$$
\begin{aligned}
a & =b+c \\
& =d+e
\end{aligned}
$$
\begin{multline}
f(x) = \\
\prod_{min}^{max} b\\
\sum_{min}^{max} c \\
= 0
\end{multline}
\end{document}
编译器使用 PDFLaTeX,最终编译生成的 PDF 文件内容如下:

