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 文件内容如下: