我对 TeX 还比较陌生,我想知道为什么我可以在\begin{enumerate}
不导入 article、beamer 和 letter 文档类的包的情况下使用。但大多数用户似乎添加了\usepackage{enumerate}
。所以我想知道文档类是否会自动导入这些(以及其他包),如果是,我如何判断是否导入了包以避免冗余。
答案1
环境enumerate
由 LaTeX 内核定义 - 加载在基本 TeX 之上(或附加在基本 TeX 之上)的一组宏。此内核收集在latex.ltx
,这是的定义enumerate
:
4762: \def\enumerate{%
4763: \ifnum \@enumdepth >\thr@@\@toodeep\else
4764: \advance\@enumdepth\@ne
4765: \edef\@enumctr{enum\romannumeral\the\@enumdepth}%
4766: \expandafter
4767: \list
4768: \csname label\@enumctr\endcsname
4769: {\usecounter\@enumctr\def\makelabel##1{\hss\llap{##1}}}%
4770: \fi}
4771: \let\endenumerate =\endlist
注意enumerate
环境使用其定义命令或者宏格式。也就是说,明确地定义\enumerate
和\endenumerate
为具有\list
特定属性的。
因此,无需加载enumerate
包裹才能使用enumerate
环境;包这样命名只是巧合。包为环境提供了一个可选参数(扩展),enumerate
允许用户指定某些格式选项(无需经历虚拟重新定义enumerate
工作方式的麻烦)。
如果你想知道哪些包被加载了(无论是通过文档类还是通过其他加载的包),请参阅找出使用了哪些包。
答案2
欢迎访问 tex.stackexchange。
您上面提到的类不导入enumerate
包。此包为您提供了一些工具,以便以所需的样式排版枚举环境的计数器。有关更多详细信息,请参阅包的手册。
作为第一个例子,您将在手册中看到以下示例:
\begin{enumerate}[EX i.]
\item one one one one one one one
one one one one\label{LA}
\item two
\begin{enumerate}[{example} a)]
\item one of two one of two
one of two\label{LB}
\item two of two
\end{enumerate}
\end{enumerate}
答案3
您不需要任何包来使用非常标准的 LaTeX 环境列表,即itemize
项目符号、enumerate
枚举项和description
以粗体文本开头的项目,它们是更一般list
环境的特殊情况。
如果人们不是那么挑剔和苛刻,这些默认环境在大多数情况下就足以制作任何列表,但是“这就是生活,我的朋友“,所以这个网站有很多关于的问题enumerate
,enumitem
和其他一些人轻松改变列表行为(如更改项目的标签、按相反顺序计数或每行运行多个项目等)
但是,至少在某种程度上,您也可以更改标准列表格式或创建自己的列表类型,而无需任何包。例如:
\documentclass{article}
\begin{document}
\noindent Standard enumerated list:
\begin{enumerate}
\item Item one
\item Item two
\item Item three
\end{enumerate}
Modified enumerated list without packages:
\begin{enumerate}
\renewcommand{\labelenumi}{\alph{enumi})}
\renewcommand{\theenumi}{\Alph{enumi}}
\setlength\itemsep{-1ex}
\setlength\labelwidth{-1cm}
\setlength\labelsep{5ex}
\item Item one
\item Item two
\item Item three
\end{enumerate}
Custom enumerated list:
\newcounter{mycounter}
\begin{list}{\textcircled{\scriptsize\arabic{mycounter}}}%
{\usecounter{mycounter}
\setlength\itemsep{2ex}
\setlength\labelwidth{1em}
\setlength\labelsep{1em}
\setlength\leftmargin{0pt}}
\item Item one
\item Item two
\item Item three
\end{list}
\end{document}
答案4
出于完整性考虑,枚举环境在standalone
文档类。此 MWE
\documentclass{standalone}
\begin{document}
\begin{enumerate}
\item foo
\end{enumerate}
\end{document}
产生一个奇怪的错误:
! LaTeX Error: Something's wrong--perhaps a missing \item. See the LaTeX manual or LaTeX Companion for explanation. Type H <return> for immediate help. ... l.4 \item f oo
但是独立版更适合生成图表的文档,而不需要枚举。