我正在尝试创建一个类似法律的列表,其中有诸如1.
、1.1.
等编号,但顶级数字以粗体显示,而其余数字则不显示。
目前我有:
\documentclass{article}
\usepackage{enumitem}
\newlist{questions}{enumerate}{2}
\setlist[questions,1]{label=\textbf{\arabic*.}}
\setlist[questions,2]{label*=\arabic*.}
\begin{document}
\begin{questions}
\item Top level (number should be bolded)
\begin{questions}
\item Second level (whole number should be in normal font)
\end{questions}
\end{questions}
\end{document}
这给了我:
因此,第二级已正确地将普通字体数字附加到其父级的标签上,但它还保留了父级数字的粗体(我不想要)。
我尝试将该font=\normalfont
选项添加到第二questions
级,但没有任何效果。
有没有一个好的方法可以在附加到父标签之前删除其格式?
答案1
只需使用font
第一级的密钥:
\documentclass{article}
\usepackage{enumitem}
\newlist{questions}{enumerate}{2}
\setlist[questions, 1]{label=\arabic*., font=\bfseries}
\setlist[questions, 2]{label*=\arabic*.}
\begin{document}
\begin{questions}
\item Top level (number should be bolded)
\begin{questions}
\item Second level (whole number is in normal font)
\end{questions}
\end{questions}
\end{document}
答案2
我将声明一个格式化命令,然后before
在达到更深的级别时更改该格式化命令。
\documentclass{article}
\usepackage{enumitem}
\DeclareRobustCommand{\questionformat}{\textbf}
\newlist{questions}{enumerate}{2}
\setlist[questions,1]{label=\questionformat{\arabic*.}}
\setlist[questions,2]{label*=\arabic*.,before={\DeclareRobustCommand{\questionformat}{}}}
\begin{document}
\begin{questions}
\item Top level (number should be bolded)
\begin{questions}
\item Second level (whole number should be in normal font)
\item Second level (whole number should be in normal font)
\end{questions}
\item Top level (number should be bolded)
\begin{questions}
\item Second level (whole number should be in normal font)
\item Second level (whole number should be in normal font)
\end{questions}
\end{questions}
\end{document}
由于层次结构存储了更高级别的扩展版本,因此\DeclareRobustCommand
避免了扩展,并因此保留了格式命令(使其可更改)。但是,不要\ref
对其中一个嵌套元素使用 erence...