- •Операции с пределами и без
- •Переносы в формулах
- •Альтернативные обозначения для математических формул
- •Набор матриц
- •Фантомы и прочее
- •Снова об интервалах в формулах
- •Вертикальные отбивки вокруг выключных формул
- •Горизонтальные отбивки вокруг формул
- •Промежутки между предложениями
- •Установка промежутков вручную
- •Подробности о шрифтах
- •"Старые" команды изменения шрифта
- •Борьба с переносами
- •Ручное управление разрывами строк
- •Абзацы без выравнивания и переносов
- •Более тонкая настройка
- •Борьба с последней строкой.
Переносы в формулах
При необходимости 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. В формулах, однако же, для этих целей надо использовать другие средства.
Пусть,
например, вам нужна буква
Если буква (в таком начертании) встречается в формулах часто, разумно определить для нее сокращенное обозначение. Вот полный список начертаний символов в формулах, которые можно получить без подключения дополнительных стилевых пакетов:
Команду \mathcal, вызывающую "каллиграфический" шрифт, можно применять только к прописным латинским буквам. Команда \mathit дает одну из возможностей (и не лучшую, надо сказать) получить прописные греческие буквы в наклонном начертании. Дело в том, что если у вас подключен пакет amsmath, то команда \mathit работать откажется (по крайней мере, в некоторых версиях этого пакета). В этом случае для печати в формуле прописных греческих букв в наклонном начертании применяются специальные команды, в которых перед названием буквы стоит var:
Как мог заметить читатель, команды наподобие \mathrm действуют только на непосредственно следующую букву. Если нужно, чтобы другим шрифтом была напечатана не одна буква, а несколько, надо все эти буквы взять в фигурные скобки:
Все сказанное означает, что команда \mathrm и ей подобные принимают один обязательный аргумент — фрагмент формулы, который надо напечатать другим шрифтом. На первый взгляд, это противоречит сказанному на выше: ведь обязательный аргумент должен быть в фигурных скобках, а в конструкциях вроде \mathbf x никаких фигурных скобок нет. Дело в том, что, в дополнение к сказанному ранее, действует еще одно правило: если после имени команды, принимающей обязательный аргумент, следует не открывающая фигурная скобка, а буква, то в качестве аргумента будет воспринята именно эта буква. Так что можно было бы писать и \mathbf{x} вместо \mathbf x, но так обычно не делают, чтобы не нажимать лишний раз на клавиши.
Если
подключить стилевой пакет amsfonts или
amssymb, то в математических формулах
можно использовать еще два шрифта:
ажурный (
Существует также стилевой пакет eufrak, при подключении которого становится доступным готический шрифт (с командой \mathfrak, но не ажурный. Наконец, есть возможность использовать в формулах вариант рукописного шрифта, в котором буквы имеют более изысканные очертания:
Для этого надо подключить стилевой пакет \euscript; команда, задающая этот шрифт, называется \EuScript. Теперь, когда вы знаете, как печатать символы в формулах прямым шрифтом, может возникнуть искушение восполнить отсутствие в стандартном комплекте LaTeX'а команды, дающей функцию , путем набора чего-нибудь вроде \mathrm{tg}x. Так делать, однако, не надо, поскольку при этом пробелы будут неправильными:
Правильно действовать так, как рекомендуется выше. Если вам хочется узнать, почему все так получается, прочтите разд." Снова об интервалах и формулах". Если вы хотите включить в формулу какой-либо текст, то одной команды \mathrm для этого также недостаточно: любой текст, заключенный между знаками доллара, пусть даже он набирается прямым шрифтом, TeX рассматривает как часть математической формулы, и в соответствии с этим игнорирует те пробелы, которые ставите вы, и расставляет пробелы по собственным правилам:
Как правильно вставить текст в формулу, описано в разд. "Включение текста в формулы". Остается только отметить, что ажурный и готический шрифты, о которых шла речь сейчас, можно использовать только в формулах, и набирать с их помощью обычный текст невозможно (так же, как невозможно набирать греческий текст с помощью команд \alpha, \beta и т.д.). Кроме описанного выше (и рекомендуемого нами) способа переключения шрифтов в формулах, в LaTeX'е пока сохраняется (ради совместимости с LaTeX'ом 2.09) еще один способ, с которым можно ознакомиться из приведенной ниже таблицы.
Включение текста в формулы В математическую формулу можно включить фрагмент обычного текста с помощью LaTeX'овской команды \mbox. В следующем примере продемонстрировано, как это можно сделать; в нем используется еще команда \qquad, делающая в тексте или формуле пробел размером 2cm; подробнее по поводу команд, создающих пробелы в формулах, см. разд. "Пробелы вручную"; по поводу команд, создающих пробелы в тексте, см. разд. "Установка прромежутков вручную ".
Аргумент команды \mbox обрабатывается TeX'ом как обычный текст: пробелы не игнорируются, слова набираются не математическим курсивом, а тем же шрифтом, который был текущим перед началом формулы (у нас это был обычный прямой шрифт; если вы хотите, чтобы шрифт был другой, можно внутри аргумента команды \mbox дать команду смены шрифта в тексте). Весь текст, являющийся аргументом команды \mbox, будет напечатан в одну строку. В приведенном примере мы оставили пробел перед закрывающей фигурной скобкой, чтобы обеспечить пробел между текстом и формулой (фрагмент текста, созданный командой \mbox, рассматривается TeX'ом как одна большая буква; пробел в формуле между "буквой", содержащей текст из \mbox, и буквой будет недостаточен). Команда \qquad была использована по аналогичной причине. На самом деле можно было бы написать даже так: $$ \sqrt{x^3}=x\qquad\mbox{для всех $x$.} $$ Аргумент команды \mbox рассматривается как текст, но этот текст вполне может, в свою очередь, содержать формулы! При включении текста в формулы с помощью команды \mbox важно иметь в виду вот что. Как читатель, видимо, уже заметил, в математических формулах верхние и нижние индексы, числитель и знаменатель дробей, созданных с помощью команды \frac, и тому подобные фрагменты набираются более мелким шрифтом, чем остальная часть формулы. Однако в тексте, созданном с помощью \mbox, размер шрифта не изменится, в какую бы часть формулы этот текст не попал. Если вас это не устраивает, подключите стилевой пакет \amsmath и воспользуйтесь командой \text вместо \mbox\,: тогда включенный в формулу текст будет правильно менять размеры в степенях и индексах, а если аргумент команды \text сам, в свою очередь, содержит формулу, то размеры символов в этой формуле будут выбраны более правильно, чем при использовании \mbox. Вне математических формул команду \text использовать нельзя.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Скобки переменного размера Если заключенный в скобки фрагмент формулы занимает много места по вертикали (за счет дробей, степеней и тому подобного), то и сами скобки должны быть большего размера, чем обычные. В TeX'е на этот случай предусмотрен механизм автоматического выбора размера скобок. Пользуются им так. В формуле
скобки
обычного размера вокруг
$$ e=\lim_{n\to\infty} \left(1+\frac{1}{n}\right)^n $$ Если перед одной скобкой стоит \left, а перед другой скобкой стоит \right, то на печати размер этих скобок будет соответствовать максимальной высоте фрагмента формулы, заключенного между \left и \right. Конструкция с \left и \right применима не только к круглым скобкам. В следующей таблице перечислены скобки и некоторые другие символы, которые с помощью \left и \right автоматически принимают нужный размер.
Вместо \left\langle можно писать \left< , и аналогичным образом вместо \right\rangle можно писать \right> (однако же < нельзя писать вместо \langle!). Кроме знаков, перечисленных в этой таблице, менять свои размеры под действием \left и \right могут и вертикальные стрелки из таблицы. Если подключить стилевой пакет amssymb, то станут доступны еще две пары ограничителей:
Вместе с каждой командой \left в формуле должна присутствовать соответствующая ей команда \right, в противном случае TeX выдаст сообщение об ошибке. Вместе с тем TeX вовсе не требует, чтобы "ограничители" (например, скобки) при командах \left и \right были расположены сколько-нибудь осмысленно с математической точки зрения: вы вполне можете написать что-нибудь вроде \left(...\right] , или даже, вопреки смыслу слов left и right,\left)...\right(- за правильность своих формул отвечаете только вы, и TeX тут вам не помощник. Вместо "ограничителя" после команды \left или \right можно поставить точку. На месте этой точки ничего не напечатается, а другой "ограничитель" будет необходимого размера. Вот два примера того, как бную черту увеличенного размера (символ {/} также является "ограничителем"): можно использовать этот прием. Во-первых, таким способом можно создать косую дро
В
этом примере используется пока
неизвестная вам команда \, создающая
дополнительный маленький пробел между
Здесь, кстати, мы не поставили \ перед x, поскольку необходимое свободное место возникает за счет показателя степени. Наконец, важный пример использования ограничителей без пары — использование их для набора систем уравнений, о чем пойдет речь в разд."Многострочные включные формулы". До сих пор у нас речь шла только о том, что размеры ограничителей выбираются автоматически с помощью команд \left и \right; бывают, однако, ситуации, когда такой автоматический выбор размера приводит к неудовлетворительным результатам или даже вообще невозможен. Вот, например, ситуация, когда \left и \right не срабатывают:
Для удобочитаемости этого выражения хотелось бы, чтобы внешние знаки модуля были повыше, чем внутренние, но этого не получается: поскольку в формуле выступающих элементов нет, то и команды \left и \right не считают нужным увеличить ограничители, в которые формула заключена. А иногда бывает так, что автоматически получающиеся ограничители слишком велики. В следующем примере совсем не обязательно, чтобы скобки охватывали и пределы суммирования, что получается при использовании \left и \right:
Во всех этих случаях имеет смысл указать размер ограничителя явно. Для этого предусмотрены TeX'овские команды \bigl, \Bigl, \biggl и \Biggl для левых ограничителей и \bigr, \Bigr, \biggr и \Biggr для правых ограничителей. Мы перечислили эти команды в порядке возрастания размера создаваемого ими ограничителя. В частности, для модулей можно было бы написать так:
Пример со знаком суммы кому-то мог бы понравиться больше, если бы мы написали так:
Команды, явно указывающие размер ограничителей, не обязаны, в отличие от команд \left и \right, появляться парами: можно написать \biggl (и при этом никак не упомянуть о парной скобке. К сожалению, команды для явного указания размера ограничителя имеют одну неприятную особенность: если " основной шрифт" документа крупнее, чем кегль 10 (иными словами, если указаны классовые опции 11pt или 12pt — , то может случиться так, что скобка, размер которой задан, например, командой \bigl, имеет точно такой же размер, как и скобка "в чистом виде". Чтобы избежать этой неприятности, надо подключить пакет amsmath: тогда команды наподобие \bigl будут работать корректно. Перечеркнутые символы Чтобы получить в математической формуле изображение перечеркнутого символа, надо перед командой, генерирующей этот символ, поставить команду \not. Пример:
Кстати, для получения знака лучше не писать "\not\in", а воспользоваться командой \notin — при этом знак получится более красивым. Если подключен пакет amssymb, то можно также вместо команды \not пользоваться готовыми командами для перечеркнутых символов . |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Формула в рамочке
Очень важную формулу хочется взять в рамку. Если подключить пакет amsmath, то этого можно добиться с помощью команды \boxed:
|
$$ \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. $$ Особенно часто так пишут в научно-популярных книгах. |
Для
постановки других значков над буквами
в формулах предусмотрены команды,
перечисленные в следующей таблице, в
которой, для примера, эти значки ставятся
над буквой
:
\hat a |
|
\check a |
|
\tilde a |
|
\acute a |
|
\grave a |
|
\dot a |
|
\ddot a |
|
\breve a |
|
\bar a |
|
\vec a |
|
Между прочим, команда \bar ставит не совсем такую же черточку, как \overline.
Если
поставить значок над буквой
или
,
так, чтобы сохранилась и точка над
буквой, то это будет некрасиво. Поэтому
значки следует ставить не прямо над
этими буквами, а над символами
и
):
|
Писать $\tilde i$ некрасиво; лучше писать так: $\tilde\imath$. |
Надстрочные
знаки, перечисленные в таблице, можно
ставить только над одиночными буквами:
если сказать "\hat{a+b}", то получится
некрасивая формула
;
TeX предоставляет возможность поставить
"крышку" подходящего размера над
целым фрагментом формулы с помощью
команды \widehat:
|
Тождество $\widehat{f*g}=\hat f\cdot\hat g$ означает, что преобразование Фурье переводит свертку в произведение. |
Аналогичным образом можно поставить "волну" над фрагментом формулы с помощью команды \widetilde. В отличие от горизонтальной черты, генерируемой командой \overline, знаки, генерируемые командами \widehat и \widetilde, не могут быть сколь угодно широкими (максимально возможная ширина — в примере выше).
Кроме того, существует команда \overrightarrow, предназначенная для постановки стрелки над формулой:
|
Рассмотрим вектор $\overrightarrow{AB}$. |
Аналогичная ей команда \overleftarrow ставит над формулой стрелку, направленную влево, а не вправо.
Остальные команды для постановки акцентов в формулах не имеют "широких" вариантов.
Формулы типа \hat{\hat A}, в которых акцент ставится над буквой, уже имеющей акцент, могут выглядеть неудачно. Если вам нужны такие "двойные акценты", подключите пакет \amsmath и пользуйтесь командами \Hat, \Check, \Tilde, \Acute, \Grave, \Dot, \Ddot, \Breve, \Bar и \Vec:
|
Правильно $\Hat{\Hat Z}$, а не $\hat{\hat Z}$. |
(Для одиночных акцентов эти команды применять тоже можно.)
Впрочем, в последних версиях пакета amsmath команды типа \hat исправлены и действуют так же, как их аналоги с большой буквы.
Отметим, что TeX позволяет ставить надстрочные знаки над буквами не только в математической формуле, но и в обычном тексте (в этом случае такие знаки обычно называют "диакритическими"), но команды для постановки этих знаков совершенно другие. Об этом — на с. 106.
