Как набирать формулы
Формула в рамочке
Очень важную формулу хочется взять в рамку. Если подключить пакет amsmath, то этого можно добиться с помощью команды \boxed:
В этом примере мы подразумевали, что подключен еще пакет amsfonts или amssymb.
Надстрочные знаки
Часто требуется поставить дополнительный значок над буквой или фрагментом формулы: черточку, "крышку", и т.п. В TeX'е для этих целей есть специальные команды.
Во-первых, можно поставить горизонтальную черту над любым фрагментом формулы с помощью команды \overline, как в следующем примере:
. |
Часто используется обозначение $$ \overline{a_na_{n-1} \ldots a_1a_0}= 10^na_n+\ldots+a_0. $$ Особенно часто так пишут в научно-популярных книгах. |
Для постановки других значков над буквами в формулах предусмотрены команды, перечисленные в следующей таблице, в которой, для примера, эти значки ставятся над буквой :
Между прочим, команда \bar ставит не совсем такую же черточку, как \overline.
Если поставить значок над буквой или , так, чтобы сохранилась и точка над буквой, то это будет некрасиво. Поэтому значки следует ставить не прямо над этими буквами, а над символами и
Надстрочные знаки, перечисленные в таблице, можно ставить только над одиночными буквами: если сказать "\hat{a+b}", то получится некрасивая формула ; TeX предоставляет возможность поставить "крышку" подходящего размера над целым фрагментом формулы с помощью команды \widehat:
. |
Тождество $\widehat{f*g}= \hat f\cdot\hat g$ означает, что преобразование Фурье переводит свертку в произведение. |
Аналогичным образом можно поставить "волну" над фрагментом формулы с помощью команды \widetilde. В отличие от горизонтальной черты, генерируемой командой \overline, знаки, генерируемые командами \widehat и \widetilde, не могут быть сколь угодно широкими (максимально возможная ширина — в примере выше).
Кроме того, существует команда \overrightarrow, предназначенная для постановки стрелки над формулой:
Аналогичная ей команда \overleftarrow ставит над формулой стрелку, направленную влево, а не вправо.
Остальные команды для постановки акцентов в формулах не имеют " широких" вариантов.
Формулы типа \hat{\hat A}, в которых акцент ставится над буквой, уже имеющей акцент, могут выглядеть неудачно. Если вам нужны такие "двойные акценты", подключите пакет \amsmath и пользуйтесь командами \Hat, \Check, \Tilde, \Acute, \Grave, \Dot, \Ddot, \Breve, \Bar и \Vec:
(Для одиночных акцентов эти команды применять тоже можно.)
Впрочем, в последних версиях пакета amsmath команды типа \hat исправлены и действуют так же, как их аналоги с большой буквы.
Отметим, что TeX позволяет ставить надстрочные знаки над буквами не только в математической формуле, но и в обычном тексте (в этом случае такие знаки обычно называют "диакритическими"), но команды для постановки этих знаков совершенно другие. Об этом подробно в "Оформление текста в целом" .
Альтернативные обозначения для математических формул
Наряду со стандартными TeX'овскими обозначениями для математических формул, LaTeX предоставляет альтернативные обозначения. Именно, внутритекстовую формулу, которая в стандартных обозначениях ограничивается одним знаком доллара в начале и одним в конце, можно вместо этого заключить в знаки "\(" (в начале) и "\)" (в конце):
Другой вариант обозначений для внутритекстовой формулы, предоставляемый LaTeX'ом, — написать \begin{math} в начале формулы и \end{math} в конце (иными словами, внутритекстовая формула может быть оформлена как окружение с именем math).
Выключную формулу LaTeX позволяет окружить с обеих сторон не только парами знаков доллара, как предусмотрено стандартом, но знаками \[ (в начале) и \] (в конце). Кроме того, можно оформить выключную формулу как окружение с именем displaymath. В одном и том же файле можно использовать как стандартные, так и LaTeX'овские обозначения для формул.
Эти альтернативные обозначения полностью эквивалентны стандартным TeX'овским (со знаками доллара), за одним важным исключением: если выключные формулы обозначаются LaTeX'овскими, а не TeX'овскими обозначениями, то можно сделать так, что выключные формулы будут не центрированы, а прижаты влево .
Набор матриц
Сначала мы объясним, как набирать матрицы при подключенном пакете amsmath (что во всех отношениях лучше и удобнее), а в конце этого раздела расскажем, для полноты картины, о тех средствах набора матриц, которые доступны в " чистом" LaTeX'е (без подключения дополнительных стилевых пакетов).
Итак, предположим, что пакет amsmath подключен. Тогда для набора матриц, заключенных в круглые скобки, стоит воспользоваться окружением pmatrix. Вот как оно работает:
$$ \begin{pmatrix} a_{11}-\lambda & a_{12}&a_{13}\\ a_{21}& a_{22}-\lambda &a_{23}\\ a_{31}& a_{32}&a_{33}-\lambda \end{pmatrix} $$ |
Строки матрицы разделяются с помощью команды "\\" в матрицах (последнюю строку заканчивать командой "\\" не надо), а элементы внутри одной строки, относящиеся к разным столбцам, отделяются друг от друга с помощью символа "&". Текст, соответствующий на печати одной строке матрицы, не обязан укладываться в одну строку TeX'овского файла; в одной строке TeX'овского файла можно поместить текст, соответствующий на печати нескольким строкам матрицы. Короче говоря, в окружении matrix также действует TeX'овский принцип" конец строки равносилен пробелу".
Прямоугольные таблицы из формул бывают заключены не только в круглые скобки; соответственно, определены окружения bmatrix, vmatrix и Vmatrix, отличающиеся от pmatrix только тем, что вместо круглых скобок таблица заключена соответственно в квадратные скобки , вертикальные черточки и удвоенные вертикальные черточки . Есть также окружение \matrix, которое дает на печати только прямоугольную таблицу, без всяких скобок. Комбинируя окружение matrix с парой ограничителей, можно получить матрицу со скобками более экзотического вида.
Если вам нужны матрицы с более чем десятью столбцами, нужно изменить максимальное количество столбцов, написав в преамбуле что-нибудь вроде следующего:
\setcounter{MaxMatrixCols}{20}
(после этого максимальное число столбцов в матрице станет равно двадцати; на TeX'ническом языке это действие называется " присваивание нового значения счетчику MaxMatrixCols " см. "Создание новых команд" ). Можно также дать эту команду не в преамбуле, а в начале той выключной формулы, в которую входит ваша матрица; тогда разрешение увеличить число столбцов будет действительно только для матриц, входящих в эту выключную формулу.
Вот как можно набрать с помощью окружения matrix треугольник Паскаля:
Исходный текст для него выглядит так:
$$ \setcounter{MaxMatrixCols}{20} \begin{matrix} &&&& 1 && 1\\ &&& 1 && 2 && 1\\ && 1 && 3 && 3 && 1\\ && 1 && 4 && 6 && 4 && 1\\ 1 && 5 && 10 && 10 && 5 && 1 \end{matrix} $$
(заметим кстати, что в этом примере пустые элементы таблицы в конце строки опущены, так что число символов "&" в разных строках таблицы разное). Если бы мы не увеличивали MaxMatrixCols, то последняя строка вызвала бы сообщение об ошибке.
Чтобы получить в матрице горизонтальный ряд точек, простирающийся на несколько столбцов, используется команда \hdotsfor ; ее обязательный аргумент — количество столбцов, занятых точками. В приведенном ниже примере обратите внимание на расстановку знаков "&" в строках, содержащих \hdotsfor:
$$ \begin{vmatrix} 0 & 0&\hdotsfor{2} &a_1\\ 1 & 0&\hdotsfor{2} &a_2\\ \hdotsfor{5}\\ \hdotsfor{2} &1 &0 &a_{n-1}\\ 0 & \hdotsfor{2} &1 &a_n \end{vmatrix} $$ |
Можно также регулировать густоту точек, получаемых при помощи команды \hdotsfor: в необязательном аргументе (он ставится перед обязательным) можно указать десятичную дробь — "коэффициент разреживания". Если сказать \hdotsfor[1.5]{5} вместо \hdotsfor{5}, то точки будут идти в полтора раза реже.
Наряду с горизонтальными рядами точек, в матрицах приходится использовать вертикальные и диагональные многоточия. Для их набора используются команды \vdots и \ddots:
$$ \begin{pmatrix} a_{11}& a_{12} &\ldots & a_{1n}\\ a_{21}& a_{22} &\ldots & a_{2n}\\ \vdots& \vdots &\ddots & \vdots\\ a_{n1}& a_{n2} &\ldots & a_{nn} \end{pmatrix} $$ |
Команды \vdots и \ddots можно использовать не только в матрицах, но и в любом месте в математических формулах.
Наряду с матрицами, используемыми в выключных формулах, иногда приходится поместить небольшую матрицу и в формулу внутритекстовую. Естественно, и размеры символов, и интервалы между ними в такой матрице должны быть поскромнее. Для таких целей предназначено окружение smallmatrix (оно также становится доступным при подключении пакета amsmath). Вот пример его использования:
Как вы могли заметить, скобки вокруг такой маленькой матрицы приходится ставить самостоятельно. Никаких вариантов с готовыми скобками у окружения smallmatrix нет.
Теперь, как мы и обещали, сообщим, какие возможности для набора матриц остаются, если не подключать дополнительных пакетов. В этом случае необходимо пользоваться LaTeX'овским окружением array. Вот как получить этими средствами пример со 73:
$$ \left(\begin{array}{ccc} a_{11}-\lambda & a_{12}&a_{13}\\ a_{21}& a_{22}-\lambda &a_{23}\\ a_{31}& a_{32}&a_{33}-\lambda \end{array}\right) $$ |
По сравнению с тем, что дает pmatrix, отличия следующие:
- Скобки вокруг матрицы, набираемой с помощью окружения \array, всегда надо задавать самостоятельно.
- После \begin{array}, открывающего окружение, должна следовать (в фигурных скобках, поскольку это аргумент окружения array) так называемая преамбула матрицы, описывающая, сколько и каких столбцов должно быть в матрице. В нашем случае преамбула представляет собой три буквы ccc. Это значит, что в матрице 3 столбца (по букве на столбец), и что содержимое каждого из этих столбцов должно быть расположено по центру столбца c — от слова "centered". (Кроме c, в преамбуле может стоять буква l, означающая, что соответствующий столбец будет выровнен по левому краю (left), или r, означающая, что столбец будет выровнен по правому краю (right).)
В остальном синтаксис такой же, как для окружения pmatrix и его аналогов. Команды \ldots, \vdots и \ddots по-прежнему можно использовать, а вот \hdotsfor — увы, нет. Аналога MaxMatrixCols для окружения array также нет (поскольку преамбула и так определяет точное число столбцов). Окружение smallmatrix в "чистом" LaTeX'е (без подключения дополнительных пакетов) также не предусмотрено.