Переносы в формулах

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

Более гибкий способ борьбы с переносами в формулах — записать в преамбуле файла строку

\binoppenalty=10000"

и/или строку

relpenalty=10000

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

Для любознательных поясним, что \binoppenalty и \relpenalty — параметры (TeX'овские), значением которых может быть целое число. Эти параметры определяют степень нежелательности разрыва строки после символов бинарной операции и бинарного отношения соответственно (чем больше значение соответствующего параметра, тем менее желателен разрыв строки). По умолчанию значение \binoppenalty равно , а значение \relpenalty равно . Можно присвоить им в преамбуле большие значения, тогда вероятность разрывов уменьшится. Значение 10000 означает абсолютный запрет.

При заключении всей формулы в фигурные скобки верстка абзацев затрудняется, поскольку TeX лишается возможности варьировать в ней интервалы между символами для выравнивания строк.

Наконец, существует способ дублировать знаки операций, который мы приведем безо всяких пояснений. Включив

\newcommand*{\hm}[1]{#1\nobreak\discretionary{}%

{\hbox{\mathsurround=0pt #1}}{}}

в преамбулу, можно написать $a\hm+b\hm+c\hm+d$, при этом в формуле при переносе знак будет продублирован.

Выключные формулы, в отличие от внутритекстовых, TeX никогда не переносит. Если выключная формула не помещается в строку, то при трансляции вы получите сообщение "Overfull \hbox"

Смена шрифтов в формуле По умолчанию все латинские буквы в формулах набираются курсивом. Что делать, если вам нужен другой шрифт? В первой лекции мы приводили примеры смены шрифтов в тексте с помощью команд наподобие \bfseries или \itshape. В формулах, однако же, для этих целей надо использовать другие средства. Пусть, например, вам нужна буква , набранная прямым жирным шрифтом. Тогда надо воспользоваться командой \mathbf:
$\mathbf P^n$

Если буква (в таком начертании) встречается в формулах часто, разумно определить для нее сокращенное обозначение.

Вот полный список начертаний символов в формулах, которые можно получить без подключения дополнительных стилевых пакетов:

$\mathbf x+y$
$\mathrm x+y$
$\mathtt x+y$
$\mathsf x+y$
$\mathcalT_X$
$\mathit\Gamma+y$

Команду \mathcal, вызывающую "каллиграфический" шрифт, можно применять только к прописным латинским буквам.

Команда \mathit дает одну из возможностей (и не лучшую, надо сказать) получить прописные греческие буквы в наклонном начертании. Дело в том, что если у вас подключен пакет amsmath, то команда \mathit работать откажется (по крайней мере, в некоторых версиях этого пакета). В этом случае для печати в формуле прописных греческих букв в наклонном начертании применяются специальные команды, в которых перед названием буквы стоит var:

\varGamma
\varDelta
\varTheta
\varLambda
\varXi
\varPi
\varSigma
\varUpsilon
\varPhi
\varPsi
\varOmega

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

Множество особенностей многообразия $X$ обозначается $X_{\mathrm{sing}}$.

Все сказанное означает, что команда \mathrm и ей подобные принимают один обязательный аргумент — фрагмент формулы, который надо напечатать другим шрифтом. На первый взгляд, это противоречит сказанному на выше: ведь обязательный аргумент должен быть в фигурных скобках, а в конструкциях вроде \mathbf x никаких фигурных скобок нет. Дело в том, что, в дополнение к сказанному ранее, действует еще одно правило: если после имени команды, принимающей обязательный аргумент, следует не открывающая фигурная скобка, а буква, то в качестве аргумента будет воспринята именно эта буква. Так что можно было бы писать и \mathbf{x} вместо \mathbf x, но так обычно не делают, чтобы не нажимать лишний раз на клавиши.

Если подключить стилевой пакет amsfonts или amssymb, то в математических формулах можно использовать еще два шрифта: ажурный (, , ,... и готический (, , ,...). Ажурным шрифтом можно печатать только прописные буквы; он задается командой \mathbb (как и в случае с остальными командами, описываемыми в этом разделе, ажурным шрифтом печатается буква, следующая непосредственно после команды \mathbb; если надо напечатать этим шрифтом несколько букв, их следует взять в фигурные скобки). Готический шрифт задается командой \mathfrak; она также действует только на непосредственно следующую букву (или на несколько букв, если они взяты в фигурные скобки):

Алгебра $\mathfrak{sl}_2(\mathbb C)$ играет особую роль в теории представлений.

Существует также стилевой пакет eufrak, при подключении которого становится доступным готический шрифт (с командой \mathfrak, но не ажурный.

Наконец, есть возможность использовать в формулах вариант рукописного шрифта, в котором буквы имеют более изысканные очертания:

Для этого надо подключить стилевой пакет \euscript; команда, задающая этот шрифт, называется \EuScript.

Теперь, когда вы знаете, как печатать символы в формулах прямым шрифтом, может возникнуть искушение восполнить отсутствие в стандартном комплекте LaTeX'а команды, дающей функцию , путем набора чего-нибудь вроде \mathrm{tg}x. Так делать, однако, не надо, поскольку при этом пробелы будут неправильными:

В формуле $\mathrm{tg} x$ буква $x$слишком близка к знаку тангенса. А вот в формуле $\sin x$ пробелы правильные.

Правильно действовать так, как рекомендуется выше. Если вам хочется узнать, почему все так получается, прочтите разд." Снова об интервалах и формулах".

Если вы хотите включить в формулу какой-либо текст, то одной команды \mathrm для этого также недостаточно: любой текст, заключенный между знаками доллара, пусть даже он набирается прямым шрифтом, TeX рассматривает как часть математической формулы, и в соответствии с этим игнорирует те пробелы, которые ставите вы, и расставляет пробелы по собственным правилам:

$$ \sqrt{x^3}=x \mathrm{для всех} x. $$

Как правильно вставить текст в формулу, описано в разд. "Включение текста в формулы".

Остается только отметить, что ажурный и готический шрифты, о которых шла речь сейчас, можно использовать только в формулах, и набирать с их помощью обычный текст невозможно (так же, как невозможно набирать греческий текст с помощью команд \alpha, \beta и т.д.).

Кроме описанного выше (и рекомендуемого нами) способа переключения шрифтов в формулах, в LaTeX'е пока сохраняется (ради совместимости с LaTeX'ом 2.09) еще один способ, с которым можно ознакомиться из приведенной ниже таблицы.

Правильный способ: Устаревший способ: Получается:
\mathrm x+y {\rm x}+y
\mathbf x+y {\bf x}+y
\mathsf x+y {\sf x}+y
\mathtt x+y {\tt x}+y
\mathcal T_X {\cal T}_X