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


Download 1.51 Mb.
Pdf ko'rish
bet119/143
Sana08.05.2023
Hajmi1.51 Mb.
#1444247
1   ...   115   116   117   118   119   120   121   122   ...   143
Bog'liq
LaTeX-Lvovsky

3.5. Еще раз о линейках
В аргументе команды \hbox может присутствовать и TEXовская команда \vrule. Ее цен
ность в том, что она автоматически создает линейку, высота и глубина которой равна высоте
и глубине объемлющего блока (ширина этой линейки будет по умолчанию равна 0,4 пункта).
Как объяснялось в разделе 9 главы III, можно задать в явном виде ширину линейки с по

мощью ключевого слова width, высоту
— с помощью ключевого слова height, а также (о
чем в главе III не говорилось) глубину с помощью ключевого слова depth (эти три ключевых
слова могут следовать после \vrule в произвольном порядке). Приведем один неочевидный
пример использования \vrule внутри \hbox.
Иногда используется следующий способ выделения текста: абзац набирается с
некоторым отступом от левого поля, а слева от него, вровень с левым полем, пе

чатается вертикальная линейка.
Предыдущий абзац в исходном тексте выглядел так:
\noindent\hbox{%
\vrule\hspace{.5em}\parbox{.9\textwidth}%
{iNOGDA ISPOLXZUETSQ ...
... LINEJKA.}}
Этот текст, надо думать, нуждается в некоторых пояснениях. Во-первых, в последней строч

ке первая из фигурных скобок закрывает аргумент команды \parbox, а вторая
–\hbox. Во-в
торых, текст начинается с команды \noindent. Мы предполагаем, что предыдущий абзац
уже завершен, и теперь хотим, чтоб наш огромный \hbox начал абзац без отступа (в самом
тексте
— аргументе команды \parbox абзацный отступ будет, как всегда в блоках, созданных
командой \parbox, нулевым; при желании мы могли бы начать аргумент команды \parbox с
присваивания нового значения параметру \parindent). Параметр \textwidth означает, как
мы помним, ширину страницы. Теперь рассмотрим, что же присутствует в аргументе \hbox’а?
Сначала линейка, затем тонкий пробел, созданный командой \, и поле него
— огромная
«буква», созданная командой \parbox. Согласно общему правилу, высота и глубина линей
ки, заданной командой \vrule, равна высоте и глубине объемлющего блока, а они в нашем
случае совпадают с высотой и глубиной
«огромной буквы» (ведь кроме нее, другого текста в
нашем \hbox’е нет). Тем самым линейка получается как раз нужных размеров, что и требова

лось!
Обратите еще внимание на знак процента, завершающий первую строку. Без этого знака
получилось бы, что аргумент \hbox’а начинается с пробела, соответственно и линейка начи

налась бы не с начала, а после пробела (ср. стр.
11
).
На самом деле в предыдущем примере было бы лучше, если бы правый край выделенного
абзаца шел вровень с правым краем остального текста. Чтобы добиться этого, надо пер

вый аргумент команды \parbox не взять с потолка, а вычислить. Для этого нам понадобятся
переменные со значением длины. Предполагая, что мы определили с помощью \newlength
переменные \[IRINA и \RAZNOSTX, сделаем вот что:
\[IRINA=\textwidth
\settowidth{\RAZNOSTX}{\vrule\hspace{.5em}}
\addtolength{\[IRINA}{-\RAZNOSTX}
\noindent\hbox{%
\vrule\hspace{.5em}\parbox{\[IRINA}%
{iNOGDA ISPOLXZUETSQ ...
... LINEJKA.}}


VIII.4. КОМАНДА
\vbox
174
Мы воспользовались командой \settowidth, чтобы найти размер, который занимает линей

ка вместе с тонким пробелом. Кстати, если написать \hbox{\vrule\hspace{.5em}}, то на
печати мы ничего не увидим (внутри \hbox’а никакого текста нет, так что высота и глуби

на линейки равна нулю и она тем самым невидима); однако же эта команда создаст пробел,
величина которого равна 0,4 пункта плюс размер тонкого пробела.

Download 1.51 Mb.

Do'stlaringiz bilan baham:
1   ...   115   116   117   118   119   120   121   122   ...   143




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