您的位置:首页 > 其它

Latex常见公式环境与对齐方式小节(重修版)

2017-01-28 18:03 351 查看
本文将讨论全局与局部的公式对齐方式的调节,并对比各种常见的公式环境的差异(尤其是在对齐方面),介绍多行公式、多公式的编写方式。

针对各种常见环境(尤其是多行公式环境)的差异,对它们分别适用于哪种应用环境提出建议。

本文是在前文的基础上,采用Markdown重置的,调整了部分语言和格式,内容没有核心差异。

全局设置

全局对齐

默认的公式对齐方式是居中对齐。

如果全文要大量使用左对齐方式,可以采用在documentclass或者amsmath包前面加上参数
fleqn
,这样全局的默认对齐方式就是左对齐了。

\documentclass[fleqn]{article}




\usepackage[fleqn]{amsmath}


公式跨页

默认一个公式环境里面的多行公式是不会跨页显示的,可以使用下面命令开启全局的自动跨页显示:

\allowdisplaybreaks




\allowdisplaybreaks


n的值为0到4,表示分页的坚决程度,例如0表示能不分页就不分页,4表示强制分页。

也可以在公式环境中使用
\displaybreak
手工指定分页,它同样可以带有这个参数。

常见公式环境及差异

关于公示环境有一下几点需要注意:

在这些环境里面默认的输入文本都是公式:

即不需要再输入
$ ... $
\[ ... \]


空格是被自动过滤的,如果需要调整间隔,需要插入文本或使用诸如
\; \: \, \quad
的公示环境间隔符。

如果要输入一般文本建议用
\text{...}
,它由包amstext提供。

它相对于latex内置的
\mbox{...}
的优势在于
\text{}
可以根据当前位置自动调整文本样式(尤其是大小),而
\mbox{}
采用统一的正文样式。这一点在你的文本被用作上下标的时候非常重要。

对于非简写的环境(begin和end包裹的)都有两种形式,一种直接写环境名,会参与自动编号;另一种是在环境名后面加一个星号“
*
”,不会参与编号。如果没有故意修改,编号都是在最右边,在公式排版时,可以认为页面的右边缘被向左移动了一个编号所占用的距离。

下面的讨论为了描述简便都是在带有星号,并且页面是单栏的情况下进行的。

下面讨论各种常见公式环境,并重点讨论它们在对齐方面的差异。

简写形式(一个公式)

$ equation $
$$ equation $$
\[ equation \]


它们的特点是都不产生编号公式。

后两种公式单独占一行,即不能嵌入正文中。

$$ ... $$
表示的公式自动居中,而
\[ ... \]
表示的公式会根据配置的全局对齐方式对齐。

标准单个公式环境

\begin{equation}
...
\end{equation}


它是最一般的公式环境,表示一个公式,默认情况下之表示一个单行的公式,但是它的功能可以通过内嵌各种其他环境进行扩展。

它可以内嵌的一些关于对齐的环境,这些环境将在后面介绍。

align(多个公式)

这是最基本的对齐环境,其他多公式环境都不同程度地依赖它。

与表格环境一样,它采用”
&
“分割各个对齐单元,使用”
\\
“换行。

它的每行是一个公式,都会独立编号。

在排版过程中,它将
&
分出来的列又分成组,组间特定方式排版,具体方式在flalign环境中讨论。

\begin{align*}
f(x) & = (x+a)(x+b) \\
& = x^2 + (a+b)x + ab
\end{align*}


它看起来是这样的:

f(x)=(x+a)(x+b)=x2+(a+b)x+ab

其他多公式环境

这些环境的各自对齐方式会覆盖全局的对齐方式,例如即使全局配置的是居中对齐,而flalign也会使它的首列左对齐。

Environment nameDescriptionNotes
eqnarray
eqnarray*
Similar to
align
and
align*
Not recommended since spacing is inconsistent
multline
multline*
First line left aligned, last line right alignedEquation number aligned vertically with first line and not centered as with other environments.
gather
gather*
Consecutive equations without alignment
flalign
flalign*
Similar to
align
, but left aligns first equation column, and right aligns last column
alignat
alignat*
Takes an argument specifying number of columns.Allows to control explicitly the horizontal space between equations You can calculate the number of columns by counting
&
characters in a line and adding 1
表格参考自:http://en.wikibooks.org/wiki/LaTeX/Advanced_Mathematics

其中除了eqnarray是内置的以外,其他的都需要amsmath包支持。

需要注意的是表格中说的对齐方式是从大方面说的,例如flalign的首列左对齐是相对与整个页面而言的,而各行不同长度的第一列却采用右对齐的方式,即其中最长的一个的左端顶着页边,其他的列的右端与它的右端对齐。尾列的右对齐与之类似。后面详细说明。

1. eqnarray

与align相同,只是在名字上更直接地表示它包含了多个公式。

2. gather

它是最简单的多行公式环境,自己不提供任何对齐。其中的各行公式按照全局方式分别对齐。

在设置了全局左对齐之后,因为不存在内部各个公式之间对排版的干扰,这种环境非常适合写数学推导或者证明。

\begin{gather*}
E(X)=\lambda	\qquad	D(X)=\lambda	\\
E(\bar{X})=\lambda	\\
D(\bar{X})=\frac{\lambda}{n}	\\
E(S^2)=\frac{n-1}{n}\lambda	\\
\end{gather*}


E(X)=λD(X)=λE(X¯)=λD(X¯)=λnE(S2)=n−1nλ

3. flalign

虽然可以使用多个
&
,但是比较一般的用法是在只在等号前面使用一个
&
,它使所有列表现地像是根据等号对齐了,因此这个环境很适合用来编写多行的公式推导和数值计算过程。例如:

\begin{align}
E(S^2)	&=E\left(\frac{1}{n} \sum_{i=1}^n (X_i-\bar{X})^2\right)	\\
&	=E\left(\frac{1}{n}\sum_{i=1}^n X_i^2\right) - E\left(\frac{1}{n}\sum_{i=1}^n 2\bar{X}X_i\right) + E\left(\frac{1}{n}\sum_{i=1}^n \bar{X}^2\right)	\\
&	=EX^2 -E(\bar{X}^2)	\\
&	=DX + (EX)^2 - D\bar{X} - (E\bar{X})^2	\\
&	=\frac{n-1}{n}DX
\end{align}


E(S2)=E(1n∑i=1n(Xi−X¯)2)=E(1n∑i=1nX2i)−E(1n∑i=1n2X¯Xi)+E(1n∑i=1nX¯2)=EX2−E(X¯2)=DX+(EX)2−DX¯−(EX¯)2=n−1nDX

4. 多&情况下flalign和align环境是如何对齐的:

根据
&
(假设n个)一行被分为n+1列。从左向右将列两个分为一组,第一组紧靠页左侧,最后一组紧靠页左侧,其余组均匀散布在整个行中。当公式比较短时,中间可能会有几段空白。

需要注意的是:

每一组内部也是有对齐结构的!它们在所在位置上向中间对齐的,即第一列向右对齐,第二列向左对齐。

所谓紧靠页左/右是在进行了组内对齐调整之后,最长的一块紧靠上去。也就是说对于长度不一两行,较短的那一行是靠不上去的。

如果总共有奇数个列,及最后一组只有一个列,则它右对齐到页右侧,即所有行的最后一列的右侧都靠在页右侧。

下面用一个极端的例子来说明这个环境的特点:

\begin{flalign*}
xyz &= b+c  &=123          &=123 &=ssss \\
x   &= 1+12 &=432523452345 &=2   &=a \\
&= 2    &=982739       &=p   &=ttt
\end{flalign*}
\begin{flalign*}
xyz &= b+c  &=123          &=123 &=wera  &=ssss \\
x   &= 1+12 &=432523452345 &=2   &=aeir  &=a \\
&= 2    &=982739       &=p   &=panie &=ttt
\end{flalign*}




5. multline

注意是multline 不是multiline,虽然它就是那个意思。

不支持
&
”分列。首行左对齐末行右对齐,其余各行分别按照全局方式对齐。

没有常见的应用模式。

6. alignat

它接收一个参数用来指定根据哪一列对齐。

\begin{alignat}{2}
\sigma_1 &= x + y  &\quad \sigma_2 &= \frac{x}{y} \\
\sigma_1' &= \frac{\partial x + y}{\partial x} & \sigma_2'
&= \frac{\partial \frac{x}{y}}{\partial x}
\end{alignat}


σ1σ′1=x+y=∂x+y∂xσ2σ′2=xy=∂xy∂x

用于内嵌的对齐环境

这些环境无法独立构成一个数学环境,必须要嵌入在其他环境内部

Math environment nameDescription
gathered
Allows to gather few equations to be set under each other and assigned a single equation number
split
Similar to
align*
, but used inside another displayed mathematics environment
aligned
Similar to
align
, to be used inside another mathematics environment
alignedat
Similar to
alignat
, and just as it, takes an additional argument specifying number of columns of equations to set
表格参考自:http://en.wikibooks.org/wiki/LaTeX/Advanced_Mathematics

这些环境都需要amsmath包支持。

1. aligned

例如:

\begin{equation}
\left.\begin{aligned}
B'&=-\partial \times E,\\
E'&=\partial \times B - 4\pi j,
\end{aligned}
\right\}
\qquad \text{Maxwell's equations}
\end{equation}


B′E′=−∂×E,=∂×B−4πj,}Maxwell's equations

其中
\left
\right
后加一个括号的表示用于自动调整各种括号的大小,必须配对使用。公式中的
\left.
是一个虚的
\left
,目的是为了和
\right\}
配对。

2. split

它用于将一个公式拆分成多行,但是它整体还只是一个公式。

\begin{equation}
\begin{split}
(a + b)^4
&= (a + b)^2 (a + b)^2      \\
&= (a^2 + 2ab + b^2)
(a^2 + 2ab + b^2)        \\
&= a^4 + 4a^3b + 6a^2b^2 + 4ab^3 + b^4
\end{split}
\end{equation}

\begin{equation}
\begin{split}
(a + b)^3 &= (a + b) (a + b)^2        \\
&= (a + b)(a^2 + 2ab + b^2) \\
&= a^3 + 3a^2b + 3ab^2 + b^3
\end{split}
\end{equation}


(a+b)4=(a+b)2(a+b)2=(a2+2ab+b2)(a2+2ab+b2)=a4+4a3b+6a2b2+4ab3+b4

(a+b)3=(a+b)(a+b)2=(a+b)(a2+2ab+b2)=a3+3a2b+3ab2+b3

原载于http://blog.csdn.net/yanxiangtianji

转载请注明出处
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息