\begin{list}{labeling}{spacing}
\item[optional label of first item] text of first item
\item[optional label of second item] text of second item
...
\end{list}
Окружение для построения списков.
Обратите внимание, что это окружение обычно не появляется в теле документа. Большинство списков, созданных авторами LaTeX, являются стандартными: окружения description, enumerate, и itemize (см. description, enumerate, и itemize).
Вместо этого окружение list чаще всего используется в макросах. Например, многие стандартные окружения LaTeX, которые сразу не кажутся списками, на самом деле построены с использованием list, включая quotation, quote, и center (см. quotation & quote, см. center).
Это использует окружение list для определения нового пользовательского окружения.
\newcounter{namedlistcounter} % number the items
\newenvironment{named}
{\begin{list}
{Item~\Roman{namedlistcounter}.} % labeling
{\usecounter{namedlistcounter} % set counter
\setlength{\leftmargin}{3.5em}} % set spacing
}
{\end{list}}
\begin{named}
\item Shows as ``Item~I.''
\item[Special label.] Shows as ``Special label.''
\item Shows as ``Item~II.''
\end{named}
Обязательный первый аргумент labeling задаёт значение по умолчанию для маркировки элементов списка. Он может содержать текст и команды LaTeX, как выше, где он содержит как ‘Элемент’, так и ‘\Roman{…}’. LaTeX формирует метку, помещая аргумент labeling в рамку шириной \labelwidth. Если метка шире, дополнительный материал распространяется вправо. При создании экземпляра list вы можете переопределить метку по умолчанию, указав \item с дополнительным аргументом в квадратных скобках и текстом, как в примере выше \item[Special label.]; см. \item: Элемент в списке.
Обязательный второй аргумент spacing содержит список команд. Этот список может быть пустым. Команда, которая может быть включена сюда, это \usecounter{countername} (см. \usecounter). Используйте её, чтобы сообщить LaTeX о нумерации элементов с использованием указанного счётчика. Счётчик будет сброшен до нуля каждый раз, когда LaTeX входит в окружение, и инкрементируется на единицу каждый раз, когда LaTeX встречает \item без необязательного аргумента.
Другой командой, которая может быть включена в spacing, является \makelabel, которая строит рамку для метки. По умолчанию она выравнивает содержимое вправо. Единственный её аргумент – это метка, которая набирается в режиме LR (см. Режимы). Один пример изменения её определения: к приведенному выше примеру named, перед определением окружения добавьте \newcommand{\namedmakelabel}[1]{\textsc{#1}}, а между командой \setlength и закрывающей скобкой аргумента spacing добавьте также \let\makelabel\namedmakelabel. Тогда метки будут набраны в стиле «маленькие заглавные буквы». Аналогично, изменение второй строки кода на \let\makelabel\fbox помещает метки в рамку. Другой пример использования команды \makelabel приведён ниже, в определении окружения redlabel.
Также в spacing часто встречаются команды для переопределения отступов в списке. Ниже приведены параметры отступа со значениями по умолчанию. (Значения по умолчанию для производных окружений, таких как itemize, могут отличаться от показанных здесь.) Смотрите также фигуру, которая следует за списком. Каждый из них – это длина (см. Длины). Вертикальные пробелы обычно являются «резиновыми» длинами, с plus и minus компонентами, чтобы предоставить TeX гибкость в установке страницы. Измените их с помощью команды, например, \setlength{itemsep}{2pt plus1pt minus1pt}. Для некоторых эффектов эти длины должны быть нулевыми или отрицательными.
Вертикальный пробел между элементами, сверх \parsep. Значения по умолчанию для первых трёх уровней в классах LaTeX «article», «book» и «report» при 10 пунктах кегля: 4pt plus2pt
minus1pt, \parsep (т.е. 2pt plus1pt minus1pt), и \topsep (т.е. 2pt plus1pt minus1pt). Значения по умолчанию при 11 пунктах кегля: 4.5pt plus2pt minus1pt, \parsep (т.е. 2pt plus1pt minus1pt), и \topsep (т.е. 2pt
plus1pt minus1pt). Значения по умолчанию при 12 пунктах кегля: 5pt plus2.5pt
minus1pt, \parsep (т.е. 2.5pt plus1pt minus1pt), и \topsep (т.е. 2.5pt plus1pt minus1pt).
Горизонтальная ширина. Рамка, содержащая метку, имеет номинальную ширину. Если \makelabel возвращает текст, шире этой ширины, то первая строка элемента будет смещена, чтобы освободить место для этого дополнительного материала. Если \makelabel возвращает текст шириной меньше или равной \labelwidth, то по умолчанию LaTeX выравнивает метку вправо в рамке такой ширины.
Левый край рамки метки находится на расстоянии \leftmargin+\itemindent-\labelsep-\labelwidth от левого края окружающего окружения.
Значение по умолчанию для классов LaTeX «article», «book» и «report» на верхнем уровне: \leftmargini-\labelsep, (что равно 2em в одноколоночном режиме и 1.5em в двухколоночном режиме). На втором уровне – \leftmarginii-\labelsep, а на третьем – \leftmarginiii-\labelsep. Эти определения приводят к тому, что левый край метки совпадает с левым краем окружающего окружения.
Горизонтальный пробел между левым краем окружающего окружения (или левым краем страницы, если это список верхнего уровня) и левым краем этого списка. Должно быть неотрицательным.
В стандартных классах документов LaTeX список верхнего уровня имеет это значение, установленное в значение \leftmargini, а список, вложенный в список верхнего уровня, имеет этот отступ, установленный в \leftmarginii. Более глубоко вложенные списки получают значения от \leftmarginiii до \leftmarginvi. (Вложенность больше пяти уровней вызывает сообщение об ошибке «Слишком глубоко вложенный»)
Значения по умолчанию для первых трёх уровней в классах LaTeX «article», «book» и «report» таковы: \leftmargini равно 2.5em (в двухколоночном режиме 2em), \leftmarginii равно 2.2em, и \leftmarginiii равно 1.87em.
Горизонтальный пробел дополнительного отступа для второй и последующих абзацев внутри элемента списка, сверх \leftmargin. Отрицательное значение создаёт «выравнивание влево». Значение по умолчанию 0pt.
Вертикальный пробел между абзацами внутри элемента. Значения по умолчанию для первых трёх уровней в классах LaTeX «article», «book» и «report» при 10 пунктах кегля: 4pt
plus2pt minus1pt, 2pt plus1pt minus1pt, и 0pt. Значения по умолчанию при 11 пунктах кегля: 4.5pt plus2pt minus1pt, 2pt plus1pt minus1pt, и 0pt. Значения по умолчанию при 12 пунктах кегля: 5pt plus2.5pt minus1pt, 2.5pt plus1pt
minus1pt, и 0pt.
Вертикальный пробел, добавленный, сверх \topsep+\parskip, к верхней и нижней части всего окружения, если экземпляр списка предшествует пустой строке. (Пустая строка в исходном коде LaTeX перед списком изменяет отступы как сверху, так и снизу списка; не имеет значения, пустая ли строка, следующая за списком.)
Значения по умолчанию для первых трёх уровней в классах LaTeX «article», «book» и «report» при 10 пунктах кегля: 2pt
plus1 minus1pt, 2pt plus1pt minus1pt, и 1pt plus0pt
minus1pt. Значения по умолчанию при 11 пунктах кегля: 3pt plus1pt minus1pt, 3pt plus1pt minus1pt, и 1pt plus0pt minus1pt). Значения по умолчанию при 12 пунктах кегля: 3pt plus2pt minus3pt, 3pt plus2pt
minus2pt, и 1pt plus0pt minus1pt.
Вертикальный пробел, добавленный кверху и книзу списка, в дополнение к \parskip (см. \parindent & \parskip). Значения по умолчанию для первых трёх уровней в классах LaTeX «article», «book» и «report» при 10 пунктах кегля: 8pt plus2pt minus4pt, 4pt plus2pt minus1pt, и 2pt plus1pt minus1pt. Значения по умолчанию при 11 пунктах кегля: 9pt plus3pt minus5pt, 4.5pt
plus2pt minus1pt, и 2pt plus1pt minus1pt. Значения по умолчанию при 12 пунктах кегля: 10pt plus4pt minus6pt, 5pt plus2.5pt minus1pt, и 2.5pt plus1pt minus1pt.
Здесь показаны горизонтальные и вертикальные расстояния.
Ниже приведены указанные длины. Ключевое соотношение состоит в том, что правый край скобки для h1 равен правому краю скобки для h4, так что левый край поля метки находится в точке h3+h4-(h0+h1).
v0
\topsep + \parskip, если среда списка не начинает новый абзац, и \topsep+\parskip+\partopsep — если начинает
v1
\parsep
v2
\itemsep+\parsep
v3
То же, что и v0. (Это пространство зависит от того, появляется ли пустая строка в исходном коде над средой; то, появляется ли пустая строка в исходном коде под средой, не имеет значения.)
h0
\labelwidth
h1
\labelsep
h2
\listparindent
h3
\leftmargin
h4
\itemindent
h5
\rightmargin
Левые и правые поля списка, показанные выше как h3 и h5, относятся к полям, предоставляемым окружающей средой, или к полям страницы для списка верхнего уровня. Ширина строки, используемая для верстки элементов списка, составляет \linewidth (см. Параметры макета страницы). Например, задайте левое поле списка как одну четверть расстояния между левыми и правыми полями окружающей среды с помощью \setlength{\leftmargin}{0.25\linewidth}.
Разбиение страниц в структуре списка контролируется тремя параметрами ниже. Для каждого из них значение по умолчанию в LaTeX равно -\@lowpenalty, то есть -51. Поскольку оно отрицательное, оно несколько стимулирует разбиение страниц в каждой точке. Измените его, например, с помощью \@beginparpenalty=9999; значение 10000 запрещает разбиение страницы.