Опубликован: 07.02.2007 | Доступ: свободный | Студентов: 4015 / 1341 | Оценка: 4.56 / 3.95 | Длительность: 23:09:00
Специальности: Художник
Лекция 2:

Как набирать формулы

Формула в рамочке

Очень важную формулу хочется взять в рамку. Если подключить пакет amsmath, то этого можно добиться с помощью команды \boxed:

$$
\boxed{\iint_{\mathbb R^2}e^{-(x^2+y^2)}\,dx\,dy=\pi}
$$
$$
\boxed{\iint_{\mathbb R^2}
e^{-(x^2+y^2)}\,dx\,dy=\pi}
$$

В этом примере мы подразумевали, что подключен еще пакет amsfonts или amssymb.

Надстрочные знаки

Часто требуется поставить дополнительный значок над буквой или фрагментом формулы: черточку, "крышку", и т.п. В TeX'е для этих целей есть специальные команды.

Во-первых, можно поставить горизонтальную черту над любым фрагментом формулы с помощью команды \overline, как в следующем примере:

Часто используется
обозначение
$$
  \overline{a_na_{n-1}\ldots a_1a_0}=10^na_n+\ldots+a_0.
$$
Особенно часто так пишут в
научно-популярных книгах
.
Часто используется
обозначение
$$
\overline{a_na_{n-1}
\ldots a_1a_0}=
10^na_n+\ldots+a_0.
$$
Особенно часто так пишут в
научно-популярных книгах.

Для постановки других значков над буквами в формулах предусмотрены команды, перечисленные в следующей таблице, в которой, для примера, эти значки ставятся над буквой a:

\hat a \hat a
\check a \check a
\tilde a \tilde a
\acute a \acute a
\grave a \grave a
\dot a \dot a
\ddot a \ddot a
\breve a \breve a
\bar a \bar a
\vec a \vec a

Между прочим, команда \bar ставит не совсем такую же черточку, как \overline.

Если поставить значок над буквой i или j, так, чтобы сохранилась и точка над буквой, то это будет некрасиво. Поэтому значки следует ставить не прямо над этими буквами, а над символами \imath и \jmath

Писать $\tilde i$ некрасиво;
лучше писать так: $\tilde\imath$
.
Писать $\tilde i$ некрасиво;
лучше писать так: 
$\tilde\imath$.

Надстрочные знаки, перечисленные в таблице, можно ставить только над одиночными буквами: если сказать "\hat{a+b}", то получится некрасивая формула \hat{a+b} ; TeX предоставляет возможность поставить "крышку" подходящего размера над целым фрагментом формулы с помощью команды \widehat:

Тождество $\widehat{f*g}=\hat f\cdot\hat g$ означает,
что преобразование Фурье
переводит свертку в произведение
.
Тождество 
$\widehat{f*g}=
\hat f\cdot\hat g$
означает, что 
преобразование Фурье
переводит свертку 
в произведение.

Аналогичным образом можно поставить "волну" над фрагментом формулы с помощью команды \widetilde. В отличие от горизонтальной черты, генерируемой командой \overline, знаки, генерируемые командами \widehat и \widetilde, не могут быть сколь угодно широкими (максимально возможная ширина — в примере выше).

Кроме того, существует команда \overrightarrow, предназначенная для постановки стрелки над формулой:

Рассмотрим вектор
$\overrightarrow{AB}$
.
Рассмотрим вектор
$\overrightarrow{AB}$.

Аналогичная ей команда \overleftarrow ставит над формулой стрелку, направленную влево, а не вправо.

Остальные команды для постановки акцентов в формулах не имеют " широких" вариантов.

Формулы типа \hat{\hat A}, в которых акцент ставится над буквой, уже имеющей акцент, могут выглядеть неудачно. Если вам нужны такие "двойные акценты", подключите пакет \amsmath и пользуйтесь командами \Hat, \Check, \Tilde, \Acute, \Grave, \Dot, \Ddot, \Breve, \Bar и \Vec:

Правильно $\Hat{\Hat Z}$, а не $\hat{\hat Z}$
.
Правильно $\Hat{\Hat Z}$, 
а не $\hat{\hat Z}$.

(Для одиночных акцентов эти команды применять тоже можно.)

Впрочем, в последних версиях пакета amsmath команды типа \hat исправлены и действуют так же, как их аналоги с большой буквы.

Отметим, что TeX позволяет ставить надстрочные знаки над буквами не только в математической формуле, но и в обычном тексте (в этом случае такие знаки обычно называют "диакритическими"), но команды для постановки этих знаков совершенно другие. Об этом подробно в "Оформление текста в целом" .

Альтернативные обозначения для математических формул

Наряду со стандартными TeX'овскими обозначениями для математических формул, LaTeX предоставляет альтернативные обозначения. Именно, внутритекстовую формулу, которая в стандартных обозначениях ограничивается одним знаком доллара в начале и одним в конце, можно вместо этого заключить в знаки "\(" (в начале) и "\)" (в конце):

\(2\times2=4\)
\(2\times2=4\)

Другой вариант обозначений для внутритекстовой формулы, предоставляемый 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}
$$
$$
\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}

Исходный текст для него выглядит так:

$$
\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}
$$
$$
\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}
$$
$$
\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). Вот пример его использования:

[X,Y]=\bigl(\begin{smallmatrix}1 & 0\\0 &-1\end{smallmatrix}\bigr)
$[X,Y]=\bigl(\begin{smallmatrix}1 & 0\\0 & 
-1\end{smallmatrix}\bigr)$

Как вы могли заметить, скобки вокруг такой маленькой матрицы приходится ставить самостоятельно. Никаких вариантов с готовыми скобками у окружения 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)
$$
$$
\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, отличия следующие:

  1. Скобки вокруг матрицы, набираемой с помощью окружения \array, всегда надо задавать самостоятельно.
  2. После \begin{array}, открывающего окружение, должна следовать (в фигурных скобках, поскольку это аргумент окружения array) так называемая преамбула матрицы, описывающая, сколько и каких столбцов должно быть в матрице. В нашем случае преамбула представляет собой три буквы ccc. Это значит, что в матрице 3 столбца (по букве на столбец), и что содержимое каждого из этих столбцов должно быть расположено по центру столбца c — от слова "centered". (Кроме c, в преамбуле может стоять буква l, означающая, что соответствующий столбец будет выровнен по левому краю (left), или r, означающая, что столбец будет выровнен по правому краю (right).)

В остальном синтаксис такой же, как для окружения pmatrix и его аналогов. Команды \ldots, \vdots и \ddots по-прежнему можно использовать, а вот \hdotsfor — увы, нет. Аналога MaxMatrixCols для окружения array также нет (поскольку преамбула и так определяет точное число столбцов). Окружение smallmatrix в "чистом" LaTeX'е (без подключения дополнительных пакетов) также не предусмотрено.

Нина Казачек
Нина Казачек
Василий Майоров
Василий Майоров