Работа в системе LaTeX
de301fb4

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


Пусть нам потребовалось создать абзац c "отрицательным" абзацным отступом, в котором все строки, кроме первой, начинаются на расстоянии одного сантиметра от полей. Этого можно добиться следующим образом:

\hangindent=1cm \noindent Отрицательный абзацный отступ (по-английски hanging indentation).

Здесь TeX'овский параметр \hangindent означает величину отступа от полей во всех строках абзаца, кроме первой (по умолчанию значение этого параметра равно нулю). Обратите внимание, что мы начали абзац командой \noindent, чтобы первая строка не началась с абзацным отступом (см. разд.Подавление стандартного отступа).

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

\hangindent=1cm \hangafter=2 \noindent Можно сделать так, чтобы отступ начался не с первой строки, а там, где нам это потребовалось.

Значение параметра \hangafter — номер строки, после которой начинается дополнительный отступ. По умолчанию значение \hangafter равно единице (как и было в нашем первом примере).

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

, то дополнительный отступ, равный \hangindent, будет присутствовать в строках номер
. Пример:


\hangindent=1.5cm \hangafter=-3 \noindent С помощью рассмотренных нами средств TeX'а можно выкапывать в абзацах небольшие ямки. На место образующегося белого прямоугольника можно, например, вклеить иллюстрацию.

Если значение параметра \hangindent отрицательно и равно

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


\hangindent=-2cm \hangafter=2 \noindent На сей раз нам захотелось приклеить картинку не слева, а справа. Что ж, TeX\ позволяет сделать и так, было бы желание. Вскоре вы сможете убедиться, что и это — не предел.
<
p>После каждой команды "завершить абзац" ( иными словами, после каждой пустой строки или команды \par восстанавливаются принятые по умолчанию значения параметров \hangindent и \hangafter. Отметим еще, что не следует менять эти параметры внутри LaTeX'овских окружений наподобие itemize или quote: в таких окружениях LaTeX устанавливает эти параметры самостоятельно, и их ручная переустановка может привести к непредсказуемым результатам.



Начало этого причудливого абзаца выглядело в исходном тексте так:

\parshape=14 0cm 6cm .1cm 5.8cm .17cm 5.66cm .5cm 5cm .9cm 4.2cm 1.05cm 3.9cm 1.1cm 3.8cm 1.1cm 3.8cm 1.05cm 3.9cm .9cm 4.2cm .5cm 5cm .17cm 5.66cm .1cm 5.8cm 0cm 6cm \noindent \small Если вам не хватает возможностей... Смысл этого текста следующий. Число
, следующее непосредственно после \parshape и знака равенства, задает количество строк, имеющих нестандартные длину и/или отступ от левого поля. После этого числа, через пробел (конец строки, как мы помним, — тоже пробел), перечислены отступы от левого поля и длины строк: 0cm - отступ первой строки от левого поля, 6cm - ее длина, 0.1cm - отступ второй строки от левого поля, 5.8cm - ее длина, и т.д. Если написано, что \parshape равно
, то после этого должно следовать
длин. Если реально в абзаце получится менее
строк, то указания на длину и отступ отсутствующих строк будут проигнорированы TeX'ом; если строк получается больше, чем
, то все последующие строки будут иметь те же отступ и длину, что заданы для строки номер
. Заметим, наконец, что абзац мы начали командой \noindent, чтобы отступ самой первой строки был действительно равен нулю (если абзац начинается без \noindent, то в первой строке будет еще присутствовать пробел длиной в \parindent).

После пустой строки или команды \par действие параметров, заданных командой \parshape, прекращается.

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


Содержание раздела