Работа в системе LaTeX

       

Снова об интервалах в формулах


Сейчас мы обсудим вкратце, какими правилами руководствуется TeX при расстановке интервалов в математических формулах. В стандартных ситуациях мы об этом не задумываемся, а полностью доверяем LaTeX'у. То, о чем мы будем говорить, пригодится, если мы пользуемся в формулах сложными конструкциями (например, конструируем знак двойного интеграла из двух знаков интеграла и "отрицательных пробелов", и при этом не хотим подбирать верные интервалы экспериментально.

При наборе формулы TeX рассматривает ее как состоящую из частей одного из следующих типов:

Обыкновенный символ например, \alpha
Бинарная операция
Бинарное отношение
Математический оператор
Подформула например, {x^2}
Знак препинания , или ; или \colon или \ldotp
Скобка

Здесь подформула — это любой фрагмент формулы, заключенный в фигурные скобки. Команда \colon задает двоеточие, рассматриваемое как знак препинания (двоеточие, набранное непосредственно, рассматривается TeX'ом как знак бинарного отношения), а команда \ldotp — точку, рассматриваемую как знак препинания (точка, набранная непосредственно, рассматривается как обыкновенный символ). К бинарным отношениям (с точки зрения TeX'а) относятся также все стрелки (\стр{arrows}) и фрагменты формул, создаваемые командой \stackrel. При расстановке пробелов в формуле TeX руководствуется тем, к какому из перечисленных типов относятся ее составные части: символы бинарных операций окружаются "средними пробелами" (теми, что вручную задаются командой \:), а символы бинарных отношений — "толстыми" пробелами (вручную, как мы помним, толстый пробел задается командой \;); впрочем, в стилях для индексов и индексов к индексам (см. предыдущий раздел) эти пробелы опускаются; после знака препинания в большинстве случаев ставится "тонкий" пробел, и т.д2) Подформула (т. е. фрагмент формулы, заключенный в фигурные скобки) рассматривается TeX'ом почти так же, как обычный символ:

Сравните $2+3$ и $2{+}3$: во втором случае знак плюс является подформулой, а не символом бинарной операции.

Кстати, с этим приемом (поставить фрагмент формулы в фигурные скобки, чтобы он рассматривался как обычный символ) мы уже сталкивались ранее, когда обсуждали, как задать в TeX'е десятичную дробь.
Мы не будем вдаваться в точные правила расстановки пробелов (они перечислены в книге [2]). Для нас сейчас важнее то, что TeX можно заставить рассматривать любой фрагмент формулы как бинарную операцию, бинарное отношение или математическую операцию: для этого надо применить команды \mathbin, \mathrel или \mathop соответственно. Вот примеры того, как работают эти команды.

Иногда возникает нужда в символе

, рассматриваемом как символ бинарной операции. Естественно, этот символ можно сгенерировать, если написать \hat{\otimes}, но тогда вокруг этого символа будут неправильные пробелы:

Хотелось бы, чтобы в формуле $E\hat{\otimes}F$ были такие же пробелы, как и в формуле $E\otimes F$.
Чтобы TeX рассматривал
не как обычный символ, а как символ бинарной операции, надо сделать так:

В формуле $E\mathbin{\hat{\otimes}}F$ пробелы такие же, как и в $E\otimes F$.
Если символ
встречается в вашей рукописи часто, то вам вряд ли понравится всякий раз делать по 23 нажатия на клавиши для его набора. В этом случае очень удобно ввести для него собственное сокращенное обозначение (посмотрите начало лекции 7 по поводу того, как это сделать).

Типичный пример использования команды \mathop - определение имени операции, записываемой прямым шрифтом. Обозначения такого типа встречаются в математических текстах очень часто, и набора команд для них, предусмотренного LaTeX'ом , вполне может не хватить; в этом случае, чтобы получить на печати, скажем,
, надо написать

$\mathop{\mathrm{Ext}}\nolimits^1(E,F)$ Здесь \mathop необходимо для того, чтобы между
и
автоматически вставлялся маленький дополнительный пробел, делающий формулу более читаемой:

Сравните $\sin x$ и $\mathrm{sin}x$.
Что же касается \nolimits, то эта команда необходима для того, чтобы в выключных формулах (точнее, в "выключном стиле"- верхние и нижние индексы к " оператору" записывались именно как индексы, а не над и под ним, как "пределы" . Именно таким образом работает определенная в пакете amsmath команда \DeclareMathOperator.



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

$$ \sum'_{x\in\Gamma}f(x). $$
В самом деле, из сказанного на стр.54 вытекает, что наша запись равносильна такой:

$$ \sum^\prime_{x\in\Gamma}f(x). $$ и в этой записи штрих рассматривается как предел суммирования. Не будем, однако, отчаиваться, а просто создадим новый оператор "сумма со штрихом":

$$ \mathop{{\sum}'}_{x\in\Gamma}f(x). $$ Можете проверить, что на сей раз все получается как надо. В этой записи очень существенно, что \sum взято в фигурные скобки: благодаря этому символ, генерируемый командой \sum, рассматривается TeX'ом просто как подформула, поэтому и штрих после него стоит где положено, а не там, где бывают пределы суммирования. Вся подформула "{\sum}" передается в качестве аргумента команде \mathop, благодаря чему наш новый символ "сумма со штрихом" рассматривается как математический оператор и пределы суммирования (в выключной формуле) ставятся у него, где положено.

Здесь опять разумно создать сокращенное обозначение, которое заменяло бы эту громоздкую запись.


Содержание раздела