我在编写的某些内容中将描述列表用于多种不同的目的。我想以不同的方式定义这些列表,以便可以对不同类型应用不同的格式或样式。在 HTML/CSS 中,我将使用“class”属性来执行此操作。在 LaTeX 中可以做类似的事情吗?我能想到的唯一方法是制作一个包装器 \NewDocumentCommand 或环境,将列表作为参数传递给它。
编辑:我指的是描述环境。所以有时我可能希望描述与项目在同一行,有时则偏移到下一行。我知道如何做到这一点,但我不想为每个列表单独执行此操作。该项目可能有多达 240 个三种不同类型的描述列表。
我希望保持灵活性,以防我有不同的想法,但也许我应用了太多的 HTML/CSS 思维——即使我没有具体的计划来以不同的方式设置样式,我也会使用类属性,以防我以后想这样做。
答案1
该软件包提供了调整环境和定义自定义列表enumitem
的可能性,例如description
\documentclass{article}
\usepackage{enumitem}
% Define small caps description-like environment
\newlist{scdesc}{description}{1}
\setlist[scdesc]{font=\mdseries\scshape,noitemsep}
\begin{document}
\begin{description}
\item[Foo] explanation for foo
\item[Bar] explanation for baz
\item[Baz] explanation for baz
\end{description}
\begin{description}[font=\slshape]
\item[Foo] explanation for foo
\item[Bar] explanation for baz
\item[Baz] explanation for baz
\end{description}
\begin{description}[font=\mdseries\scshape]
\item[Foo] explanation for foo
\item[Bar] explanation for baz
\item[Baz] explanation for baz
\end{description}
\begin{scdesc}
\item[Foo] explanation for foo
\item[Bar] explanation for baz
\item[Baz] explanation for baz
\end{scdesc}
\end{document}
编辑使用宏,\SetEnumitemKey
您可以为(或多或少任意的)键列表定义一个简写:
\documentclass{article}
\usepackage{enumitem}
\SetEnumitemKey{myclassA}{font=\slshape,noitemsep}
\SetEnumitemKey{myclassB}{font=\mdseries\scshape,noitemsep}
\begin{document}
\begin{description}[myclassA]
\item[Foo] explanation for foo
\item[Bar] explanation for bar
\item[Baz] explanation for baz
\end{description}
\begin{description}[myclassB]
\item[Foo] explanation for foo
\item[Bar] explanation for bar
\item[Baz] explanation for baz
\end{description}
\end{document}