嵌套枚举环境中的自动格式化

嵌套枚举环境中的自动格式化

我必须做一个小文档,其中我打算使用Tufte-handout而不是articleScrartcl类,并XeLaTeX使用我打算使用的字体对其进行编译。

然而,我对格式有困难,我必须使用enumerate具有以下特征的三级嵌套环境:

  1. 物品标记显示为彩色(红色),为此我认为我可以先加载包 xcolor或类似的东西。但我不知道如何为每个物品自动定义它。\documentclass\PassOptionToPackage
  2. 我需要对列表进行编号的方法如下:

    1

    1.1

    1.1.1

并不是:

1.
(a)
i.

默认。

最后这个我觉得是最难的(或者说我不知道​​如何实现)是每层嵌套的格式:

  • 第一级项目:罗马字母(默认值)
  • 第二级项目:小写字母(有时是小斜体大写字母)。我选择的字体可以毫无问题地实现这一点。
  • 第三级项目:斜体但没有使用\emph{}我已经使用过并且我不认为这是最好的选择。

知道怎么做吗?我可以手动完成,但因为列表很长,所以我更愿意在序言中自动化。


更新

好吧,在建议使用 enumitem 之后,我尝试了 triead,结果很好。建议在下面的代码中作为 MWE,它是:

\PassOptionsToPackage{usenames,dvipsnames,table}{xcolor}
\documentclass[]{tufte-handout}
%\usepackage[spanish]{babel} 
\usepackage{enumitem}
\usepackage{fontspec} 
\defaultfontfeatures{Mapping=tex-text}
\usepackage{xunicode}
\usepackage{xltxtra}
\setmainfont{Warnock Pro}
\renewcommand{\theenumii}{\arabic{enumii}}
\renewcommand{\labelenumii}{\theenumii.}        
\renewcommand{\theenumii}{\arabic{enumii}}           
\renewcommand{\labelenumii}{\theenumi . \theenumii.} 
\renewcommand{\theenumiii}{\arabic{enumiii}}        
\renewcommand{\labelenumiii}{
           \theenumi . \theenumii . \theenumiii.}  
\begin{document}
\begin{enumerate}
\item[\textcolor{red}{1}] This is a first level item
\begin{enumerate}
\item \textsc{This is a second level item}
\begin{enumerate}
\item \textit{This is a third level item}
\end{enumerate}
\end{enumerate}
\end{enumerate}
\end{document}

它起作用了,现在我需要为第一级的标签添加颜色,并按照我之前描述的方式自动化内容的格式。

答案1

enumitem提供了定制列表的专门方法,这就是在这种情况下推荐它的原因。如果您查看文档,您会明白,重点是抽象出使用较低级别 LaTeX 列表配置宏的需要。

以下示例展示了一种方法。我非常怀疑我是否拥有 Warnock Pro,所以我创建了一个 MWE精美的字体。因此,本示例使用默认的 Computer Modern。

\PassOptionsToPackage{usenames,dvipsnames,table}{xcolor}
\documentclass{tufte-handout}
\usepackage{enumitem}
\setlist[enumerate]{label*=.\arabic*, after=\normalfont}
\setlist[enumerate,1]{label=\arabic*, font=\normalfont\color{red}}
\setlist[enumerate,2]{before=\normalfont\scshape}
\setlist[enumerate,3]{font=\normalfont\upshape, before=\normalfont\itshape}
\begin{document}
 \begin{enumerate}
   \item This is a first level item
   \begin{enumerate}
     \item This is a second level item
     \begin{enumerate}
       \item This is a third level item
     \end{enumerate}
   \end{enumerate}
 \end{enumerate}
 abc
\end{document}

幻想清单

相关内容