Tex: подробное описание С. М. Львовский
Download 1.51 Mb. Pdf ko'rish
|
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling