Tex: подробное описание С. М. Львовский
L A TEXовские команды для генерации блоков
Download 1.51 Mb. Pdf ko'rish
|
LaTeX-Lvovsky
2. L
A TEXовские команды для генерации блоков 2.1. Блоки из строк ´и С одной командой для генерации блоков мы уже знакомы: это команда \mbox. Эта коман да создает блок из текста, набираемого в одну строку. Полученный блок рассматривается TEXом как одна большая буква: Проказница мартышка, осел, козел и косолапый мишка. . . pROKAZNICA MARTY[KA, \mbox{OSEL, KOZEL} I KOSOLAPYJ MI[KA\ldots В этом примере, кстати, TEX никогда не разорвет строку между словами «осел» и «козел»,- и никогда не сделает переносов в этих словах: при верстке абзаца TEX имеет дело не с этими словами по отдельности, а только с блоком, в который входят они оба вместе с пробелом между ними. По той же причине TEX не сможет растянуть или сжать пробел между слова ми «осел» и «козел» для выравнивания строк в абзаце. Теперь, когда мы знаем, что такое TEXовские блоки, можно признаться, что окруже ния picture, array и tabular тоже генерируют блоки, и именно поэтому создаваемый ими текст воспринимается TEXом как одна большая буква. В аргументе команды \mbox может присутствовать все то же, что может быть в обычном тексте в пределах одной строки: математические формулы, команды смены шрифта или при сваивания значений каким-то параметрам, команды для генерации блоков (например, тот же \mbox, или даже окружения picture или array), и т. д. Запрещены в аргументе коман ды \mbox пустые строки или команды \par, выключные математические формулы, окруже ния, определяющие абзацы специального вида (наподобие itemize или center), команда \\ и тому подобные вещи, «не вписывающиеся в строку». Если в аргументе \mbox присутству ют команды смены шрифта, изменения каких-то параметров или определения команд, то по выходе из блока все эти изменения забываются, поскольку фигурные скобки, ограничива ющие аргумент команды \mbox, ограничивают также и группу ( «глобальные» команды вро де \setcounter сохраняют свое действие и по выходе из блока). Блок, создаваемый командой \mbox, имеет ширину, равную «естественной» длине строки текста, являющегося его аргументом. Можно также создать блок из строки текста, шири на которого отлична от ее естественной длины. Для этого используется команда \makebox. Эта команда имеет один обязательный аргумент, имеющий такой же смысл, как аргумент команды \mbox, и, кроме того, необязательный аргумент — ширину блока, порождаемого командой: Туда и обратно. tUDA \makebox[5em]{I} OBRATNO. VIII.2. L A TEX ОВСКИЕ КОМАНДЫ ДЛЯ ГЕНЕРАЦИИ БЛОКОВ 162 Как видите, необязательный аргумент ставится перед обязательным; длина в нем может быть указана, как обычно, либо в какой-либо из TEXовских единиц, либо через какой -либо параметр со значением длины, возможно — с числовым коэффициентом (см. раз дел VII.3). Сам текст, являющийся обязательным аргументом команды \makebox, разме щается по центру в блоке ширины, указанной в необязательном аргументе. Если указать в необязательном аргументе команды \makebox ширину, меньшую естественной длины стро ки, то текст будет вылезать за края блока; поскольку место, отводимое TEXом блоку при верстке, определяется только тем, каковы ширина, высота и глубина блока, а не тем, какие размеры реально имеет текст, содержащийся в блоке, при этом может возникать наложе ние одного текста на другой. Например, размеры и точка отсчета блока, создаваемого ко мандой \makebox[1.5em]{123456} , выглядят, с точки зрения TEXа, так (для ясности мы использовали в этом примере крупный шрифт): 123456 • А вот как такой «выпирающий за края» блок взаимодействует с окружающим текстом: текст 123456 текст TEKST\makebox[1.5em]{123456}TEKST Можно также создать блок заданной ширины, в котором текст будет не центрирован, а прижат к правому или левому краю. Для этого в команде \makebox предусмотрен второй необязательный аргумент — буква l для текста, прижатого влево или r для текста, прижа того вправо (можно также указать аргумент c — тогда текст будет центрирован, так же, как если бы второго необязательного аргумента не было). Пример: текст екст кст текст текст \parindent=0pt \makebox[10em][r]{TEKST}\\ \makebox[10em][r]{EKST}\\ \makebox[10em][r]{KST}\\ \makebox[10em][c]{TEKST}\\ \makebox[10em][l]{TEKST}\\ Мы установили нулевое значение абзацного отступа, чтобы все строки, включая первую, на чинались с самого начала. Кстати, обратите внимание, что у нас получилась верстка с вырав ниванием без помощи таких вещей, как tabbing или tabular . У команды \makebox значение ширины блока можно установить равным нулю. Если при этом присутствует необязательный аргумент l, то получится блок нулевой ширины, а текст будет выходить за его пределы вправо (и, стало быть, наложится на последующий текст в строке, если таковой присутствует); если присутствует необязательный аргумент r, то текст будет выходить влево за пределы блока (и тем самым накладываться на предшествующий текст): текст??? текст текст ???текст TEKST\makebox[0pt][l]{???}TEKST\\ TEKST\makebox[0pt][r]{???}TEKST |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling