Оформление многострочных формул.Системы уравненийДля печати системы уравнении без выравнивания по вертикали пакет
amsmath вводит окружение
gather. Оно даёт нумерованные уравнения. Для ненумерованных формул надо использовать окружение
gather*. Точки переноса строк задаются командой
\\. Все строки центрируются. Пример:
Код:
[math]\begin{gather}
A_x = -Hy \\
A_y = A_z = 0
\end{gather}[/math]
Для набора систем уравнений с выравниванием по вертикали, пакет
amsmath предлагает окружения
align,
alignat и
flalign для нумерованных уравнений и
align*,
alignat* и
flalign* для ненумерованных уравнений. Точки переноса строк задаются командой
\\. Точки выравнивания уравнений из разных строк по вертикали задаются амперсантом
&:
Код:
[math]\begin{align}
\Psi & = U - TS \\
\Psi + PV & = \Phi
\end{align}[/math]
В окружениях
а вставляются правильные пробелы в точках выравнивания. Кроме того, в каждой строке можно размещать по несколько уравнений, формируя из них столбцы. Первый, третий и т.д. знаки
& в строке задают точки выравнивания по вертикали внутри столбцов. Второй, четвёртый и т.д. знаки
& служат как разделители столбцов.
В окружениях
align и
align* между столбцами уравнений, а также перед первый столбцом и после последнего столбца, автоматически вставляются равные пробелы. При расчёте величины промежутка наличие номера у строки не учитывается. Пример:
Код:
[math]\begin{align}
x & = y & a & = b + c \\
x' & = y' & a' & = b
\end{align}[/math]
В окружениях
alignat и
alignat* автоматически вставляются равные пробелы только перед первый столбцом и после последнего столбца. Промежутки между столбцами уравнений автоматически не вставляются. Их надо задавать самому командами, которые вставляют горизонтальные промежутки в математической моде. Окружения
alignat и
alignat* имеют обязательный аргумент, значение которого указывает количество столбцов. Число символов
& в каждой строке не должно превышать необходимого для создания этого количества столбцов. Пример:
Код:
[math]\begin{alignat}{2}
x & = y & \qquad a&=b+c\\
x' & = y' & a' & = b
\end{alignat}[/math]
В окружениях
flalign и
flalign* автоматически вставляются равные промежутки только между столбцами уравнений. Поэтому первый и последний столбцы прижаты к полям страницы:
Код:
[math]\begin{flalign*}
x & = y & a & = b+c & z & >0 \\
x' & = y' & a' & = b & z' & =0
\end{flalign*}[/math]
В окружении
flalign крайний столбец прижимается к номеру строки.
В окружениях
а, предназначенных для печати систем нумерованных уравнений, можно подавить нумерацию любой строки, используя команду
\notag, аналогичную команде
a
\nonumber.
Расщепление длинных формулФормулы, выделенные в отдельную строку, в отличие от внутритекстовых,
никогда не переносит. Если такая формула не помещается в строке и выходит на поля страницы, то при трансляции
выдаёт сообщение о переполнении (Overfull ...). Разбивать длинные формулы на строки приходится вручную. Чтобы части формулы на разных строках не начинались бы точно одна под другой, приходится использовать команды, вставляющие пробелы, например,
\qquad. Чтобы знаки операций в месте переноса получали правильные пробелы, по другую сторону знака операции иногда приходится ставить "пустую формулу" в виде
{}.
Пакет
amsmath вводит специальное окружение
multline для расщепления уравнений на несколько частей. Оно даёт нумерованную формулу. Для ненумерованных формул надо использовать окружение
multline*. Точки переноса строк задаются командой
\\. Первая часть уравнения прижимается к левому полю, а последняя — к правому. Остальные части центрируются. Пример:
Код:
[math]\begin{multline}
A = a_{11}\xi_1^2 + {} \\
{} + 2a_{12}\xi_1\xi_2+\dots +
2a_{1n}\xi_1\xi_n+{} \\
{} + \sum_{i,j=2}^n a_{ij}\xi_i\xi_j
\end{multline}[/math]
Любую из средних строк можно сместить влево или вправо, сделав её аргументом команд
\shoveleft и
\shoveright. соответственно (
\\ остаётся вне).
Для расщепления длинных выражений с выравниванием по вертикали, пакет
amsmath предлагает окружение
split. Точки переноса строк задаются командой
\\. Точки выравнивания частей формулы из разных строк задаются амперсантом
&. Окружение
split используется только внутри других окружений для набора выделенных формул, поскольку оно само не переключает
в математическую моду. Пример:
Код:
[math]\begin{equation}\begin{split}
\Psi = & \cos kz + i\sin kz + {} \\
& {} + \frac{f(\theta)}{r}
(\cos kr + i\sin kr)
\end{split}\end{equation}[/math]
Блоки уравненийВ окружениях
aligned,
gathered и
alignedat из пакета
amsmath формулы форматируются по тем же правилам, что и в окружениях
align,
gather и
alignat, соответственно. Но, в отличие от последних, они занимают по горизонтали не всю строку, а ровно столько, сколько необходимо для уравнений. Это позволяет размещать на одной строке несколько блоков уравнений, в каждом из которых формулы форматируются независимо друг от друга. Выравнивание блоков по вертикали относительно осевой линии строки задаётся необязательным аргументом с допустимыми значениями
t,
с (действует по умолчанию) или
Ь. Окружения
aligned,
gathered и
alignedat используются только внутри других окружений для набора выделенных формул. Пример:
Код:
[math]\begin{equation*}
\left.\begin{aligned}
B' &= -\partial\times E \\
E' &= \partial\times B - 4\pi j
\end{aligned} \right\}
\quad \text{Maxwell's eqs}
\end{equation*}[/math]
Вертикальные пробелы в многострочных формулахВо всех командных скобках пакета amsmath расстояние между строками можно изменить, используя команду
\\ с необязательным аргументом, значением которого является величина дополнительного вертикального пробела. Так. команда
\\[6pt] добавляет после строки, которую она завершает, пробел в 6pt.
Ой, а вроде и всё. Ещё для вёрстки многострочных формул можно использовать окружение
array (таблицы из строк и столбцов, а также
matrix и
cases), но это отдельная тема. Там придётся цитировать не только Сюткина, но и Львовского.
Примеры на
aligned,
gathered и
alignedat:
Код:
$$\begin{gathered}
A_x = -Hy \\
A_y = A_z = 0
\end{gathered}$$
Код:
$$\begin{aligned}
\Psi & = U - TS \\
\Psi + PV & = \Phi
\end{aligned}$$
Код:
$$\begin{aligned}
x & = y & a & = b + c \\
x' & = y' & a' & = b
\end{aligned}$$
Код:
$$\begin{alignedat}{2}
x & = y & \qquad a&=b+c\\
x' & = y' & a' & = b
\end{alignedat}$$
И ещё добавлю. Если формулы короткие, то можно уместить несколько формул в одну строчку, просто разделяя их
\quad или
\qquad:
Код:
$$A_x = -Hy, \qquad A_y = A_z = 0$$
Код:
$$x = y \qquad \textit{при условии} \qquad a = b + c$$
Несколько примеров на использование
array для многострочных формул и смежного оформлятельства:
Код:
$$\begin{array}{cccc} & {\scriptstyle (x)}\hphantom{{}+{}} & {\scriptstyle (y)}\hphantom{{}+{}} & {\scriptstyle (1)}\hphantom{{}+{}} \\ {\scriptstyle (x)} & a_{11}\cdot x\cdot x+{} & a_{12}\cdot x\cdot y+{} & a_{13}\cdot x\cdot 1+{} \\ {\scriptstyle (y)} & a_{21}\cdot y\cdot x+{} & a_{22}\cdot y\cdot y+{} & a_{23}\cdot y\cdot 1+{} \\ {\scriptstyle (1)} & a_{31}\cdot 1\cdot x+{} & a_{32}\cdot 1\cdot y+{} & a_{33}\cdot 1\cdot 1\hphantom{{}+{}} \\ \end{array} \begin{array}{l} \\ =0. \end{array}$$
$$\begin{array}{ccc} & {\scriptstyle (x)}\hphantom{{}+{}} & {\scriptstyle (y)}\hphantom{{}+{}} \\ {\scriptstyle (x)} & a_{11}xx+{} & a_{12}xy+{} \\ {\scriptstyle (y)} & a_{21}yx+{} & a_{22}yy\hphantom{{}+{}} \\ \end{array} \begin{array}{l} \\ + \end{array} \begin{array}{ccc} & \vphantom{\scriptstyle (y)}\hphantom{{}+{}} \\ {\scriptstyle (x)} & b_{1}x+{} \\ {\scriptstyle (y)} & b_{2}y\hphantom{{}+{}} \\ \end{array} \begin{array}{l} \\ {}+c=0. \end{array} $$
Код:
$$\begin{array}{r@{}r@{}r@{}r@{}r@{}r@{}r@{}r@{}r@{}r}ds^2={}&{}\mathbin{\phantom{+}}g_{00}&{(dx^0)}^2&{}+g_{01}&dx^0 dx^1&{}+g_{02}&dx^0 dx^2&{}+g_{03}&dx^0 dx^3+{}\\&{}+g_{10}&dx^1 dx^0&{}+g_{11}&{(dx^1)}^2&{}+g_{12}&dx^1 dx^2&{}+g_{13}&dx^1 dx^3+{}\\&{}+g_{20}&dx^2 dx^0&{}+g_{21}&dx^2 dx^1&{}+g_{22}&{(dx^2)}^2&{}+g_{23}&dx^2 dx^3+{}\\&{}+g_{30}&dx^3 dx^0&{}+g_{31}&dx^3 dx^1&{}+g_{32}&dx^3 dx^2&{}+g_{33}&{(dx^3)}^2\mathbin{\phantom{+}}{}&{}=g_{\mu\nu}dx^\mu dx^\nu.\\\end{array}$$
Код:
$$\begin{array}{c@{}c@{}c@{}c@{}c@{}c}ds^2={}&g_{00}(dx^0)^2&{}+2g_{01}dx^0dx^1&{}+2g_{02}dx^0dx^2&{}+2g_{03}dx^0dx^3+{}&\\&&{}+g_{11}(dx^1)^2&{}+2g_{12}dx^1dx^2&{}+2g_{13}dx^1dx^3+{}&\\&&&{}+g_{22}(dx^2)^2&{}+2g_{23}dx^2dx^3+{}&\\&&&&{}+g_{33}(dx^3)^2&\smash{\displaystyle{}=\sum\limits_{\mu=0}^{3}\sum\limits_{\nu=0}^{3}g_{\mu\nu}dx^\mu dx^\nu.}\\\end{array}$$
Код:
$$\left\{\begin{array}{rcrcrcrcr}
x_1 & - & 2x_2 & - & x_3 & & & = & 2 \\
-2x_1 & + & x_2 & + & 3x_3 & - & 2x_4 & = & -3 \\
2x_1 & & & - & 2x_3 & + & x_4 & = & 2 \\
3x_1 & - & 3x_2 & - & 2x_3 & + & 3x_4 & = & 3\rlap{.} \\
\end{array}\right.$$
Код:
$$\left\{\begin{array}{cccccc}t'&=&\dfrac{1}{\sqrt{1-v^2/c^2}}&\Bigl(t&-&\dfrac{vx}{c^2}\Bigr)\\x'&=&\dfrac{1}{\sqrt{1-v^2/c^2}}&\,\,(x&-&vt)\end{array}\right.$$
Код:
$$\begin{array}{rcl}
R_{\mu\nu}-\tfrac{1}{2}R\,g_{\mu\nu}& = & 8\pi G\, T_{\mu\nu} \\
\uparrow & & \uparrow \\
\text{a differential operator of a field}& & \text{a density of the field's source} \\
\downarrow & & \downarrow \\
\nabla^2\varphi & = & 4\pi\, \rho
\end{array}$$