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


Фантомы и прочее - часть 2


Создается вертикальный фантом командой \vphantom. В частности, команда \mathstrut - это сокращение для "\vphantom{(}" . Возможны, наконец, и горизонтальные фантомы, занимающие по горизонтали столько же места, сколько заняла бы формула, и не занимающие места по вертикали. Создаются они командой \hphantom:

 На пустое место $\hphantom{\sin^2\alpha}$ можно вписать формулу вручную.
На пустое место $\hphantom{\sin^2\alpha}$ можно вписать формулу вручную.

Для полноты картины скажем об еще одной экзотической команде, называемой \smash. Подобно команде \lefteqn, она печатает символ, но при этом говорит TeX'у, что он не занимает места по вертикали. С помощью этой команды (а так же с помощью \lefteqn) можно накладывать в формулах один символ на другой. Вот пример совместной работы команд \phantom и \lefteqn:

 $$ \lefteqn{\overbrace{ \phantom{1+2+3}}} 1+\underbrace{2+3+4} $$
$$ \lefteqn{\overbrace{ \phantom{1+2+3}}} 1+\underbrace{2+3+4} $$

Поясним, как устроен исходный текст, давший такое перекрытие скобок. Верхняя фигурная скобка, созданная командой \overbrace, ставится не над самой формулой

{1+2+3}
, а над ее фантомом. В результате команда \overbrace печатает фигурную скобку над пустым местом. Далее, вся эта конструкция стоит, в свою очередь, в аргументе команды \lefteqn, вследствие чего TeX считает, что места по горизонтали она не занимает. Поэтому формула
{1+\underbrace{2+3+4}}
начинается с того же места, что и фантом формулы
{1+2+3}
; в результате
{1+2+3}
попадает аккурат под верхнюю скобку! Все это, конечно, — еще один пример "грязного трюка").

Если бы формула была не выключная, а внутритекстовая, то этот трюк прошел бы не столь гладко. Дело в том, что команда \lefteqn всегда набирает формулы в \displaystyle, поэтому размер фантома, над которым ставилась скобка, мог в принципе не совпасть с размером реально печатаемого фрагмента формулы. Чтобы уж совсем себя обезопасить, следовало бы в этом случае аргумент команды \lefteqn начать с \textstyle.




- Начало -  - Назад -  - Вперед -