Матрицы и системы уравнений
Урок учит набирать матрицы в разных скобках и системы уравнений через cases.
Матричные окружения (
pmatrix,bmatrix, ...) различаются только видом скобок; строки разделяются\\, элементы строки —&.
Матрицы в LaTeX набираются как маленькие таблицы. Разные окружения дают разные скобки — круглые, квадратные, модуль и так далее.
Виды матриц
| Окружение | Скобки |
pmatrix | круглые ( ) |
bmatrix | квадратные [ ] |
Bmatrix | фигурные { } |
vmatrix | вертикальные черты (определитель) |
matrix | без скобок |
Матрица 2×2 в квадратных скобках:
\begin{bmatrix}
a & b \\
c & d
\end{bmatrix}$$\begin{bmatrix} a & b \\ c & d \end{bmatrix}$$
Та же матрица в круглых скобках (pmatrix) и как определитель (vmatrix):
\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix}
\begin{vmatrix} 1 & 2 \\ 3 & 4 \end{vmatrix}$$\begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} \qquad \begin{vmatrix} 1 & 2 \\ 3 & 4 \end{vmatrix}$$
Системы уравнений
Окружение cases рисует фигурную скобку слева и набор условий справа:
f(x) = \begin{cases}
x^2, & x \geq 0 \\
-x, & x < 0
\end{cases}$$f(x) = \begin{cases} x^2, & x \geq 0 \\ -x, & x \lt 0 \end{cases}$$
Здесь & отделяет значение от условия, \\ — строки. Это типичный способ задать кусочно-определённую функцию. Обратите внимание: в исходнике написано x < 0 через сущность < на этой странице, а в реальном .tex — просто x < 0; в живой формуле выше использовано \lt, чтобы знак «меньше» корректно отрисовался.
Точки-многоточия
Для матриц общего вида нужны многоточия: \dots (по строке), \vdots (вертикальное), \ddots (диагональное):
\begin{bmatrix}
a_{11} & \dots & a_{1n} \\
\vdots & \ddots & \vdots \\
a_{m1} & \dots & a_{mn}
\end{bmatrix}$$\begin{bmatrix} a_{11} & \dots & a_{1n} \\ \vdots & \ddots & \vdots \\ a_{m1} & \dots & a_{mn} \end{bmatrix}$$
Как работает под капотом
Все матричные окружения — частный случай выровненной таблицы в матрежиме: колонки центрируются, интервалы рассчитываются по математическим правилам. Скобки добавляются автоматически и растягиваются по высоте матрицы тем же механизмом, что и \left/\right. cases — это, по сути, двухколоночная таблица с единственной растянутой фигурной скобкой слева. Все эти окружения объявлены в пакете amsmath.
Окружение array — основа всех матриц
Под капотом любая матрица из amsmath опирается на более общее окружение array — это математический аналог текстового tabular. В array вы сами задаёте преамбулу столбцов вроде {ccc} (три центрированных колонки) или {cc}, можете попросить выравнивание влево l или вправо r и даже вставить вертикальную линию символом вертикальной черты. Готовые pmatrix и его собратья — это, по сути, array со всегда центрированными колонками и заранее подставленными скобками, поэтому они короче в наборе, но менее гибкие. Когда нужна расширенная матрица системы — с вертикальной чертой, отделяющей столбец свободных членов, — берут именно array внутри \left[ \ldots \right], потому что встроенные матрицы черту посередине провести не умеют.
Высота строк и arraystretch
Если строки матрицы кажутся слишком тесными — например, в них есть дроби или индексы, которые почти слипаются, — высоту всех строк регулируют параметром \arraystretch. Командой \renewcommand{\arraystretch}{1.4} вы увеличиваете межстрочный интервал в полтора раза для всех последующих таблиц и матриц; вернуть исходное значение можно, поставив обратно 1.0. Менять его лучше локально, внутри группы из фигурных скобок, чтобы растяжение не распространилось на весь документ. Это типографский, а не смысловой параметр: он не трогает содержимое, а лишь делает плотные матрицы более читаемыми.
Сколько столбцов помещается
У встроенных матричных окружений есть негласный предел: по умолчанию amsmath разрешает не более десяти столбцов, и при одиннадцатом вы получите ошибку вроде «Extra alignment tab has been changed». Это сделано ради ловли реальных опечаток, но иногда матрица действительно широкая. Лимит поднимают, увеличив счётчик MaxMatrixCols в преамбуле — например, до двадцати; для совсем больших матриц всё равно разумнее перейти на array с явной преамбулой. Помните и про эстетику: очень широкие матрицы плохо влезают на страницу, и часто их лучше переписать через многоточия \dots, \vdots и \ddots, показывая общий вид, а не все элементы поимённо.
Частые ошибки
- Матрица без amsmath — окружения
pmatrixи т.п. не определены. - Разное число элементов в строках — колонки разъедутся или будет ошибка.
- Буквальный
<в исходнике внутри cases — в LaTeX это ок, но на веб-странице его надо экранировать.
Итоги
- Матрицы:
pmatrix/bmatrix/vmatrixразличаются скобками;&и\\разделяют элементы и строки. - Системы и кусочные функции — окружение
cases. - Многоточия:
\dots,\vdots,\ddots.