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


 Абзацы нестандартной формы


Download 1.51 Mb.
Pdf ko'rish
bet69/143
Sana08.05.2023
Hajmi1.51 Mb.
#1444247
1   ...   65   66   67   68   69   70   71   72   ...   143
Bog'liq
LaTeX-Lvovsky

8.6. Абзацы нестандартной формы
Пусть нам потребовалось создать абзац c
«отрицательным» абзацным отступом, в котором
все строки, кроме первой, начинаются на расстоянии 1 см от полей. Этого можно добиться
следующим образом:
С помощью TEXа нетрудно со
здавать абзацы нестандарт

ной формы. Простейший
пример
— то, что по-ан
глийски называется hang

ing indentation.
\hangindent=1cm \noindent
s POMO]X@ \TeX{}A NETRUDNO
SOZDAWATX ABZACY
NESTANDARTNOJ FORMY.
pROSTEJ[IJ PRIMER --- TO, ˆTO
PO-ANGLIJSKI NAZYWAETSQ
hanging indentation.
Здесь TEXовский параметр \hangindent означает величину отступа от полей во всех стро
ках абзаца, кроме первой (по умолчанию значение этого параметра равно нулю). Обратите
внимание, что мы начали абзац командой \noindent, чтобы первая строка не началась с аб

зацным отступом.
Пусть теперь нам хочется, чтобы дополнительный отступ, величина которого задана па

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


III.8. СПЕЦИАЛЬНЫЕ АБЗАЦЫ
92
Следующая проблема
— сделать
так, чтобы дополнительный от

ступ начинался не со вто

рой строки, а позже. Как
видите, добиться этого то

же несложно.
\hangindent=1cm \hangafter=2
\noindent
sLEDU@]AQ PROBLEMA ---
SDELATX TAK, ˆTOBY DOPOLNITELXNYJ
OTSTUP NAˆINALSQ NE SO WTOROJ
STROKI, A POZVE. kAK WIDITE,
DOBITXSQ “TOGO TOVE NESLOVNO.
Значение параметра \hangafter
— номер строки, после которой начинается дополнитель
ный отступ. По умолчанию значение \hangafter равно единице (как и было в нашем первом
примере).
Можно также добиться того, чтоб дополнительный отступ не начинался после какой-то
строки, а напротив, присутствовал только в нескольких первых строках абзаца. Для этого
надо присвоить параметру \hangafter отрицательное значение: если величина \hangafter
равна n < 0, то дополнительный отступ, равный \hangindent, будет присутствовать в стро

ках номер 1, 2, . . .
|n|. Пример:
С помощью рассмотрен

ных нами средств TEXа
можно выкапывать в аб

зацах небольшие ямки. На ме

сто образующегося белого пря

моугольника можно, например,
наклеить иллюстрацию.
\hangindent=1.5cm \hangafter=-3
\noindent
s POMO]X@ RASSMOTRENNYH NAMI
SREDSTW \TeX{}A MOVNO
WYKAPYWATX W ABZACAH NEBOLX[IE
QMKI. nA MESTO OBRAZU@]EGOSQ
BELOGO PRQMOUGOLXNIKA MOVNO,
NAPRIMER, NAKLEITX ILL@STRACI@.
Можно сделать так, что дополнительный отступ, задаваемый параметром \hangindent,
будет делаться не слева, а справа. Для этого значение этого параметра надо сделать отрица

тельным. Именно, если значение \hangindent равно h < 0, то дополнительный отступ раз

мером
|h| будет отсчитываться от правого, а не левого поля (в каких именно строках будет
этот дополнительный отступ, по-прежнему определяется значением \hangafter):
На сей раз нам захотелось при

клеить картинку не слева, а
справа. Что ж, TEX
позволяет сделать и
так, было бы жела

ние. Вскоре Вы уви

дите, что и это
— не
предел.
\hangindent=-2cm \hangafter=2
\noindent
nA SEJ RAZ NAM ZAHOTELOSX
PRIKLEITX KARTINKU NE SLEWA,
A SPRAWA. ˜TO V, \TeX{} POZWOLQET
SDELATX I TAK, BYLO BY VELANIE.
wSKORE wY UWIDITE, ˆTO I “TO
--- NE PREDEL.
После каждой команды
«завершить абзац» (иными словами, после каждой пустой строки
или команды \par) значения параметров \hangindent и \hangafter возвращаются к приня

тым по умолчанию. Отметим еще, что было бы неразумно играть с этими параметрами внутри
L
A
TEXовских окружений наподобие itemize или quote.


III.9. ЛИНЕЙКИ
93
Если Вам не хватает воз

можностей, которые дает ва

рьирование параметров \hangindent
и \hangafter, то вот Вам пример, как с
помощью TEXа создать абзац совсем
уж причудливой формы. Все перено

сы в словах и места разрывов
строк были найдены TEXом
автоматически.
Начало этого причудливого абзаца выглядело в исходном тексте так:
\parshape=7
0cm 4cm 0.5cm 5cm 1cm 6cm 1.5cm 7cm
2cm 6.5cm 1.8cm 6cm 1.7cm 5cm
\noindent \small
eSLI wAM NE HWATAET WOZMOVNOSTEJ...
Смысл этих команд следующий. Число 7, следующее непосредственно после \parshape и
знака равенства, задает количество строк, имеющих нестандартные длину и/или отступ от
левого поля. После этого числа, через пробел (конец строки, как мы помним, тоже пробел),
перечислены отступы от левого поля и длины строк: 0cm
— отступ первой строки от лево
го поля, 4cm
— ее длина, 0.5cm — отступ второй строки от левого поля, 5cm — ее длина,
и т. д. Если написано, что \parshape равно n, то после этого должно следовать 2n длин.
Если реально в абзаце получится менее n строк, то указания на длину и отступ отсутствую

щих строк будут проигнорированы TEXом; если же строк, как в нашем примере, получается
больше, чем n, то все последующие строки будут иметь те же отступ и длину, что заданы
для строки номер n. Заметим, наконец, что абзац мы начали командой \noindent, чтобы от

ступ самой первой строки был действительно равен нулю (если абзац начинается не коман

дой \noindent, а обычным образом, то в первой строке будет еще присутствовать пробел
длиной в \parindent).
После пустой строки или команды \par действие параметров, заданных командой \parshape,
прекращается.
У абзаца, форма которого задана с помощью \hangindent или \parshape, длина и отступ строки
зависят, как Вы могли заметить, от ее номера. Если такой абзац содержит выключную формулу, то
TEX считает, что эта формула занимает три строки, причем сама формула расположена в средней из
этих трех (реально формула может, разумеется, занимать больше или меньше места).

Download 1.51 Mb.

Do'stlaringiz bilan baham:
1   ...   65   66   67   68   69   70   71   72   ...   143




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