Описание списка, автоматически регулирующее стиль на разных уровнях

Описание списка, автоматически регулирующее стиль на разных уровнях

Возможно ли иметь список описаний, который изменяет стиль метки элемента в зависимости от уровня списка, т.е. и среды, скажем, 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}

введите описание изображения здесь

Связанный контент