КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Фантомы и прочее
Ранее мы столкнулись с командой \lefteqn, позволяющей напечатать фрагмент формулы и при этом сообщить TeX'у, что отдельного места (по горизонтали) на этот фрагмент отводить не надо. Иногда бывает полезно сделать обратное: включить в формулу символ, который сам не печатается, но место занимает. Вот пример такой ситуации. Команда \sqrt автоматически выбирает размер знака радикала таким образом, чтобы он точно соответствовал высоте подкоренного выражения, и это очень хорошо. Иногда, однако, такой автоматический выбор приводит к не очень удачным результатам:
Дело тут, конечно, в том, что буквы и имеют разную высоту. Чтобы сделать знаки радикала одинаковыми, TeX надо обмануть: добавить в подкоренные выражения по символу, который чуть выше, чем или , чтобы подкоренные выражения оказались одной высоты. Этот символ, естественно, не должен печататься и не должен занимать места по горизонтали (лишние пробелы под корнем нам тоже ни к чему). Такой невидимый символ генерируется TeX'овской командой \mathstrut:
Точнее говоря, \mathstrut - это невидимый символ, равный по высоте скобке и не имеющий ширины. Невидимый символ, создаваемый командой \mathstrut, является частным случаем TeX'овской конструкции "фантома". Именно, если в формуле вы напишете "\phantom{"TeXtit{какая-то формула} "}" то результат будет такой же, как если бы эта самая "какая-то формула" была сначала напечатана по всем правилам TeX'а, а затем аккуратно стерта с бумаги. Пример:
Кроме того, можно создать "вертикальный фантом" формулы (по вертикали будет оставлено столько же места, сколько занимала бы формула, по горизонтали вертикальный фантом места не занимает). Создается вертикальный фантом командой \vphantom. В частности, команда \mathstrut - это сокращение для "\vphantom{(}". Возможны, наконец, и горизонтальные фантомы, занимающие по горизонтали столько же места, сколько заняла бы формула, и не занимающие места по вертикали. Создаются они командой \hphantom:
Для полноты картины скажем об еще одной экзотической команде, называемой \smash. Подобно команде \lefteqn, она печатает символ, но при этом говорит TeX'у, что он не занимает места по вертикали. С помощью этой команды (а так же с помощью \lefteqn) можно накладывать в формулах один символ на другой. Вот пример совместной работы команд \phantom и \lefteqn:
Поясним, как устроен исходный текст, давший такое перекрытие скобок. Верхняя фигурная скобка, созданная командой \overbrace, ставится не над самой формулой , а над ее фантомом. В результате команда \overbrace печатает фигурную скобку над пустым местом. Далее, вся эта конструкция стоит, в свою очередь, в аргументе команды \lefteqn, вследствие чего TeX считает, что места по горизонтали она не занимает. Поэтому формула начинается с того же места, что и фантом формулы ; в результате попадает аккурат под верхнюю скобку! Все это, конечно, — еще один пример "грязного трюка"). Если бы формула была не выключная, а внутритекстовая, то этот трюк прошел бы не столь гладко. Дело в том, что команда \lefteqn всегда набирает формулы в \displaystyle, поэтому размер фантома, над которым ставилась скобка, мог в принципе не совпасть с размером реально печатаемого фрагмента формулы. Чтобы уж совсем себя обезопасить, следовало бы в этом случае аргумент команды \lefteqn начать с \textstyle.
Дата добавления: 2014-01-03; Просмотров: 371; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |