今天学习了tex单行和多行公式,总结一下:
一、单个公式(只有一个编号的一个或几个方程)
可以占一行或多行,被看成一个整体;只能有一个自动编号;应用数学环境:equation,equation*;单个公式太长的处理:1、使用equation+split;2、使用multline环境。
在equation环境中使用split环境,使用每行公式在指定位置对齐,对齐位置用“&”指定,换行用“\\”指定。
\begin{equation}
\begin{split}
(a+b) &= a^2 + b^2+2ab\\
(a+b+c)^2& = a^2+ b^2 + c^2+2ab +2ac +2ac
\end{split}
\end{equation}
\begin{equation}
\begin{split}
(a+b) &= a^2 + b^2+2ab\\
(a+b+c)^2& = a^2+ b^2 + c^2+2ab + 2ac +2ac
\end{split}
\end{equation}
如果不用对齐符,则输出为右对齐:
\begin{equation}
\begin{split}
(a+b) = a^2+ b^2 +2ab\\
(a+b+c)^2 = a^2 + b^2+ c^2 +2ab +2ac +2ac
\end{split}
\end{equation}
二、方程组(多行公式)
由多个公式组成;每个公式可以独占一行或多行;每个公式才能自动编号,带星号环境不编号。
方程组环境:
gather(每行只有一列,无法指定对齐方式,缺省为居中);
align(每行可排多列,用&分隔,对齐方式:奇右偶左;相邻奇偶两列构成一个“队列”,也称一个公式);
flalign(语法与align一样,但在相邻队列之间插入弹性空格以充满整行);
alignat(作用与align相同,但需给定一个参数用来指定“队列”个数,大于等于&个数加1)。
gathered、aligned、 alignated(性质与array类似,在数学环境中使用,宽度为公式实际长度,不能自动编号,可以作为一个盒子使用);
cases(带左大括号的方程组,必须放在数学环境中使用,不用输入括号)
1、gather环境:每行只有一列,不能指定对齐方式,缺省为居中
\begin{gather}
(a+b) = a^2+ b^2 +2ab\\
(a+b+c)^2 = a^2 + b^2+ c^2 +2ab +2ac +2ac
\end{gather}
2、align环境:可指定上下对齐位置,多用在等号或关系运算符处对齐。每行可排多列,用&分隔,对齐方式:奇右偶左;相邻奇偶两列构成一个“队列”,也称一个公式。
\begin{align}
(a+b) & = a^2+ b^2 +2ab\\
(a+b+c)^2 &= a^2 + b^2+ c^2 +2ab + 2ac +2ac
\end{align}
align环境也可全几组公式并排在一起,此时在同一行上出现分别属于不同组的几个公式,每个组的公式内应有一个对齐&,用于该组的上下对齐,同时在不同组的公式之间也要插入&符号,以分隔这些公式,同一行上若有n个公式,就必须有n+(n-1)=2n-1个&,把一行分成2n列,奇数列总是靠右对齐,偶数列总是靠左对齐,于是同一组的公式就靠在一起了,有时为了叙述方便,就将这种左右靠在一起的两列称为是一个“列对”。
\begin{align*}
(x^n)'&= nx^{n-1}& (\sin x)'& = \cos x\\
(a^x)'&= a^x\lna&(\cos x)'& = -\sin x\\
& & (\tan x)'&=\frac1{\cos^2x}
\end{align*}
3、flalign环境:语法与align一样,但在相邻队列之间插入弹性空格以充满整行
\begin{flalign*}
(x^n)'&= nx^{n-1}& (\sin x)'& = \cos x\\
(a^x)'&= a^x\lna&(\cos x)'& = -\sin x\\
& & (\tan x)'&=\frac1{\cos^2x}
\end{flalign*}
4、alignat环境:列间间距默认为0。作用与align相同,但需给定一个参数用来指定“队列”个数,大于等于&个数加1。
\begin{alignat}{2}
(x^n)'&= nx^{n-1}&\hspace{20pt}
(\sinx)' &= \cos x \\
(a^x)'&= a^x\lna&(\cos x)'& = -\sin x\\
& & (\tan x)'&=\frac1{\cos^2x}
\end{alignat}
5、gathered、aligned、alignated环境:只占用公式本身实际宽度,而不是占满整行。性质与array类似,在数学环境中使用,宽度为公式实际长度,不能自动编号,可以作为一个盒子使用。
\begin{equation}
\begin{aligned} a_1& =b_1 + c_1\\ d_1& =e_1 + f_1\end{aligned}
\Longrightarrow
\begin{gathered}[b]a_2 =b_2 + c_2\\ d_2 =e_2 + f_2\end{gathered}
\Longrightarrow
\begin{aligned}[t] a_3& =b_3 + c_3\\ d_3& =e_3 + f_3\end{aligned}
\end{equation}
加定界符:
\begin{equation*}
\left.
\begin{aligned}
B'&=-\partial\timesE\\
E'&=\partial\timesB-4\pi j
\end{aligned}
\right\}\qquad\text{Maxwell}
\end{equation*}
6、cases环境:专门用于排版左侧带花括号的方程组。带左大括号的方程组,必须放在数学环境中使用,不用输入括号。
\begin{equation}f(x)=
\begin{cases}
1 &-1<x<1\\
0 & \text x
\end{cases}
\end{equation}
三、多行公式
1、eqnarray环境:公式在特定位置对齐。
\begin{eqnarray}
a_1=b_1+c_1& a_2=b_2+c_2+2& a_3=b_3+c_3\\
d_1=e_1+f_1+1& d_2=e_2+f_2& d_3=e_3+f_3+3
\end{eqnarray}
\begin{eqnarray*}
a_1=b_1+c_1& a_2=b_2+c_2+2& a_3=b_3+c_3\\
d_1=e_1+f_1+1& d_2=e_2+f_2& d_3=e_3+f_3+3
\end{eqnarray*}
2、eqnarray环境公式编号:标准形式对每行公式自动编号,带*不参与编号。在标准形式中某行不加公式编号,应在该行换行符\\之前插入命令:\nonumber:
\setlength{\arraycolsep}{2.5pt}
\setcounter{equation}{1}
\begin{eqnarray}
d(uv) & = & (uv)'dx = (u'v+uv') dx \\
& = & v(u'dx) +u(v'dx) \nonumber\\
\setcounter{equation}{5}
& = & v du+u dv \label{leibmiz}
\end{eqnarray}
\setcounter是计数器置数的命令,位于环境内部时,其后第一个编号公式的序号值取计数器的值。
3、eqnarray与array比较:
eqnarray本身就是数学模式,而array只能用于数学模式;
eqnarray被排版成行间公式,而array则根据数学模式标记可排成行内或行间公式,但array内的各列总是按行内公式选取符号的大小尺寸(如分数的分子和分母是用角标字体显示的);eqnarray的左右两列按行间公式选取符号尺寸,但中间一列是按行内公式选取符号的尺寸,所以中间一列要放分数的话,可指定使用\displaystyle字体。
eqnarray环境可以自动对每行公式编号,而array环境不能被自动编号;
4、eqnarray 环境中公式的编号: