Tex: подробное описание С. М. Львовский


 Сдвиги относительно базисной линии


Download 1.51 Mb.
Pdf ko'rish
bet113/143
Sana08.05.2023
Hajmi1.51 Mb.
#1444247
1   ...   109   110   111   112   113   114   115   116   ...   143
Bog'liq
LaTeX-Lvovsky

2.4. Сдвиги относительно базисной линии
Когда при исполнении команды \makebox или \mbox TEX создает блок из меньших блоков
(каждая буква, как мы помним,
— это блок, из букв составляются слова — тоже блоки,
и, наконец, блоки могут быть заданы в явном виде, в частности, командой \mbox), то бло

ки эти размещаются в строке таким образом, что все их точки отсчета расположены на од

ной высоте (иными словами, их базисные линии продолжают одна другую). Можно, однако,
сдвинуть блок по вертикали относительно базисной линии. Для этого удобно воспользовать

ся L
A
TEXовской командой \raisebox. Эта команда требует двух обязательных аргументов.
Первый из них
— расстояние, на которое сдвигается по вертикали фрагмент текста, второй
— сам этот фрагмент текста. Пример:
Слово подскочило в строке.
sLOWO \raisebox{2pt}{PODSKOˆILO}
W STROKE.
Текст, расположенный во втором обязательном аргументе этой команды, должен удовлетво

рять тем же требованиям, что и аргумент команды \mbox: в нем могут быть самые разные
TEXовские команды, при условии, что среди них не будет команд типа пустой строки, \par,
\\
и тому подобных, которые
«не лезут в строку» (зато в этом тексте, как водится, могут
присутствовать любые команды, порождающие блоки, в частности, например, \parbox, а уж
в ее аргументе оставляйте пустых строк, сколько душе угодно). Если первый обязательный
аргумент команды \raisebox отрицателен, то текст будет, естественно, не поднят, а опущен.
Вот, например, как можно определить команду \TeX, печатающую эмблему TEXа:
\newcommand{\TeX}{T\nolinebreak\hspace{-.1667em}\raisebox
{-.5ex}{E}\nolinebreak\hspace{-.125em}X}
Тут же мы видим и примеры использования отрицательных промежутков для того, чтобы
буквы сблизились. Отметим, что команды \nolinebreak использованы, чтобы не случилось
разрыва строки посередине эмблемы.
На самом деле команда \TeX определяется более экономным способом, который требует меньше
машинного времени и памяти, но использует не рассматриваемые нами средства TEXа. Время от вре
мени мы будем приводить определения команд
«в переводе с TEXа на L
A
TEX», в виде, более понятном
читателям этой книги.
Кроме вертикального сдвига блоков, команда \raisebox может делать еще одно полез

ное дело: с ее помощью можно обмануть TEX, заставив его считать, что блок, полученный
после сдвига, имеет любую заданную нами высоту и глубину, независимо от того, сколько
места реально занимает текст. Именно, эта команда может принимать, наряду с обязатель

ными, необязательные аргументы. Между двумя обязательными аргументами можно указать
необязательный аргумент
— высоту, которую, по мнению TEXа, должен иметь сдвинутый
блок. Кроме того, после первого необязательного аргумента может стоять второй
— глуби
на, которую, по мнению TEXа, будет иметь сдвинутый блок. Вот пример:


VIII.3. КОМАНДА
\hbox
166
Строчка.
Вторая
Ы
Третья строчка.
sTROˆKA.\\
wTORAQ
\raisebox{7pt}[1pt][10pt]{y}\\
tRETXQ STROˆKA.
Буква Ы, поднятая на 7 пунктов над строчкой, наложилась на первую строку, поскольку
в первом необязательном аргументе команды \raisebox мы приказали TEXу считать, что
блок, образованный поднятой буквой Ы, имеет высоту всего лишь один пункт (стало быть,
возвышается над базисной линией второй строчки меньше, чем любая буква), и соответствен

но TEX не сделал дополнительного интервала между первой и второй строками. С другой
стороны, третья строка отъехала от второй, поскольку во втором необязательном аргументе
команды \raisebox мы велели TEXу считать, что глубина блока, образованного поднятой
буквой Ы, равна аж десяти пунктам, и TEX послушно оставил дополнительное место, чтобы
этот блок не наложился на третью строчку!
Иногда разумно использовать команду \raisebox даже с нулевым обязательным аргу

ментом, только для того, чтобы менять (в глазах TEXа) высоту и/или глубину блока, не сдви
гая его относительно базовой линии. В главе
IX
мы увидим пример такого использования
этой команды.

Download 1.51 Mb.

Do'stlaringiz bilan baham:
1   ...   109   110   111   112   113   114   115   116   ...   143




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling