Снова об интервалах в формулах
Сейчас мы обсудим вкратце, какими правилами руководствуется 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 соответственно. Вот примеры того, как работают эти команды.
Иногда возникает нужда в символе
Хотелось бы, чтобы в формуле $E\hat{\otimes}F$ были такие же пробелы, как и в формуле $E\otimes F$. |
В формуле $E\mathbin{\hat{\otimes}}F$ пробелы такие же, как и в $E\otimes F$. |
Типичный пример использования команды \mathop - определение имени операции, записываемой прямым шрифтом. Обозначения такого типа встречаются в математических текстах очень часто, и набора команд для них, предусмотренного LaTeX'ом , вполне может не хватить; в этом случае, чтобы получить на печати, скажем, , надо написать
$\mathop{\mathrm{Ext}}\nolimits^1(E,F)$ Здесь \mathop необходимо для того, чтобы между и автоматически вставлялся маленький дополнительный пробел, делающий формулу более читаемой:
Сравните $\sin x$ и $\mathrm{sin}x$. |
А вот пример, когда TeX' у надо объяснить, что некоторый сложный символ есть символ математического оператора. Пусть нам понадобилась формула Проблема тут в том, чтобы поставить штрих у знака суммы. Впрямую это сделать не удается:
$$ \sum'_{x\in\Gamma}f(x). $$ |
$$ \sum^\prime_{x\in\Gamma}f(x). $$ и в этой записи штрих рассматривается как предел суммирования. Не будем, однако, отчаиваться, а просто создадим новый оператор "сумма со штрихом":
$$ \mathop{{\sum}'}_{x\in\Gamma}f(x). $$ Можете проверить, что на сей раз все получается как надо. В этой записи очень существенно, что \sum взято в фигурные скобки: благодаря этому символ, генерируемый командой \sum, рассматривается TeX'ом просто как подформула, поэтому и штрих после него стоит где положено, а не там, где бывают пределы суммирования. Вся подформула "{\sum}" передается в качестве аргумента команде \mathop, благодаря чему наш новый символ "сумма со штрихом" рассматривается как математический оператор и пределы суммирования (в выключной формуле) ставятся у него, где положено.
Здесь опять разумно создать сокращенное обозначение, которое заменяло бы эту громоздкую запись.