描述清單自動調整不同等級的風格

描述清單自動調整不同等級的風格

可以有一個描述列表,它根據列表的層級更改項目標籤的樣式,即和環境說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,嵌套層級為兩層。

這將分別產生計數器pointdescriptionipointdescriptionii

然後為這個新清單設定「任意」樣式:

\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}

在此輸入影像描述

相關內容