
Возможно ли иметь список описаний, который изменяет стиль метки элемента в зависимости от уровня списка, т.е. и среды, скажем, description*
что сделает
\documentclass{article}
\begin{document}
\begin{description*}
\item[Point 1:] bla bla
\begin{description*}
\item[Subpoint 1.1 :] bla bla
\item[Subpoint 1.2 :] bla bla
\end{description*}
\item[Point 2:] bla bla
\begin{description*}
\item[Subpoint 2.1 :] bla bla
\item[Subpoint 2.2 :] bla bla
\end{description*}
\end{description*}
\end{document}
Выглядит как
\documentclass{article}
\begin{document}
\begin{description}
\item[Point 1:] bla bla
\begin{description}
\item[\emph{Subpoint 1.1 :}] bla bla
\item[\emph{Subpoint 1.2 :}] bla bla
\end{description}
\item[Point 2:] bla bla
\begin{description}
\item[\emph{Subpoint 2.1 :}] bla bla
\item[\emph{Subpoint 2.2 :}] bla bla
\end{description}
\end{description}
\end{document}
или
\documentclass{article}
\begin{document}
\begin{description}
\item[Point 1:] bla bla
\begin{description}
\item[\normalfont{Subpoint 1.1 :}] bla bla
\item[\normalfont{Subpoint 1.2 :}] bla bla
\end{description}
\item[Point 2:] bla bla
\begin{description}
\item[\normalfont{Subpoint 2.1 :}] bla bla
\item[\normalfont{Subpoint 2.2 :}] bla bla
\end{description}
\end{description}
\end{document}
решение1
Вот два решения с enumitem
пакетом, одно основано на description
окружении, другое, основано на enumerate
, если текст описания всегда одинаков на данном уровне. Я определяю для этого окружение descrenum
, которое добавляет текст в перечисление и форматирует его:
\documentclass{article}
\usepackage[x11names]{xcolor}
\usepackage{enumitem}
\setlist[description, 2]{font= \mdseries\itshape}
\setlist[description, 3]{, font =\color{red}\mdseries\scshape, align = left}
\newlist{descrenum}{enumerate}{2}
\setlist[descrenum, 1]{label = Point \arabic*:, font = \bfseries, align = left,}
\setlist[descrenum, 2]{label = Subpoint \arabic{descrenumi}.\arabic*:, font = \scshape, align = left}
\begin{document}
\begin{description}
\item[Point 1:] bla bla Test test test test test test test test test test test test test test test test test test test test test test test test test
\begin{description}
\item[Subpoint 1.1 :] bla bla Test test test test test test test test test test test test test test test test test test test test test test test test test
\item[Subpoint 1.2 :] bla bla
\end{description}
\item[Point 2:] bla bla
\begin{description}
\item[Subpoint 2.1 :] bla bla
\begin{description}
\item[Subsubpoint 2.1 a:] bla bla
\item[Subsubpoint 2.1 b:] bla bla
\end{description}
\item[Subpoint 2.2 :] bla bla
\end{description}
\end{description}
\vskip1cm
\begin{descrenum}%
\item bla bla Test test test test test test test test test test test test test test test test test test test test test test test test test
\begin{descrenum}%
\item bla bla Test test test test test test test test test test test test test test test test test test test test test test test test test
\item bla bla
\end{descrenum}
\item bla bla
\begin{descrenum}
\item bla bla
\item bla bla
\end{descrenum}
\end{descrenum}
\end{document}
решение2
Автоматизированный список как клон enumerate
(так как я не хотел менять его поведение) enumerate
.
Используйте \newlist{pointdescription}{enumerate}{2}
для создания клона списков enumerate
с уровнем вложенности два.
Это сгенерирует счетчики pointdescriptioni
и pointdescriptionii
соответственно.
Затем задайте «произвольный» стиль для этого нового списка:
\setlist[pointdescription]{label={\textbf{Point \arabic*:}}
для первого уровня см. пример для второго.
Этот стиль списка можно изменить в любое время позже.
Примечание: Стиль ссылок тоже нужно изменить, иначе это будет выглядеть нелепо. Я ссылаюсь на руководство enumitem
.
\documentclass{article}
\usepackage{enumitem}
\begin{document}
\newlist{pointdescription}{enumerate}{2}
\setlist[pointdescription,1]{label={\textbf{Point \arabic*:}}}
\setlist[pointdescription,2]{itemindent=\leftmarginii,label={\emph{Subpoint \arabic{pointdescriptioni}.\arabic*:}}}
\begin{pointdescription}
\item bla bla
\begin{pointdescription}
\item bla bla
\item bla bla
\end{pointdescription}
\item bla bla
\begin{pointdescription}
\item bla bla
\item bla bla
\end{pointdescription}
\end{pointdescription}
\setlist[pointdescription,1]{label={\texttt{Point \arabic*:}}}
\setlist[pointdescription,2]{itemindent=\leftmarginii,label={\textsc{Subpoint \arabic{pointdescriptioni}.\arabic*:}}}
\begin{pointdescription}
\item bla bla
\begin{pointdescription}
\item bla bla
\item bla bla
\end{pointdescription}
\item bla bla
\begin{pointdescription}
\item bla bla
\item bla bla
\end{pointdescription}
\end{pointdescription}
\end{document}