答案1
可以定义一个环境
在 LaTeX 内核中(
list
,还有enumerate
),在文档类中(
quote
,titlepage
),或在您加载的包中。
对于您想要了解的环境,没有硬性规定来查找情况。当然,如果您想知道的定义bytefield
,您可以查看提供它的定义包。
情况 1 和 2 更难区分。根据经验,内核提供了“通用”环境,例如list
、trivlist
、center
、flushleft
;并且enumerate
和也在itemize
此处定义,因为它们被视为通用的。但description
留给文档类,例如quote
和quotation
。
请注意,您不会\newenvironment{enumerate}
在 LaTeX 内核中找到它,因为它节省了令牌内存(请记住,LaTeX 是在内存资源不像今天这样丰富的时候开发的)。
然而,环境可能重新定义通过您加载的包。一个简单的例子是,它改变了、和enumitem
的定义。enumerate
itemize
description
一个很好的工具是texdef
,与 TeX Live 一起分发;这是一个示例会话:
> texdef -t latex enumerate
\enumerate:
macro:->\ifnum \@enumdepth >\thr@@ \@toodeep \else \advance \@enumdepth \@ne \edef \@enumctr {enum\romannumeral \the \@enumdepth }\expandafter \list \csname label\@enumctr \endcsname {\usecounter \@enumctr \def \makelabel ##1{\hss \llap {##1}}}\fi
> texdef -t latex -p enumitem enumerate
\enumerate:
macro:->\@protected@testopt \enumerate \\enumerate {}
\\enumerate:
\long macro:[#1]->\enit@enumerate \enitdp@enumerate {enum}\thr@@ {#1}
您可能想尝试以下-s
选项:
> texdef -t latex -s quote
% article.cls, line 404:
\newenvironment{quote}
{\list{}{\rightmargin\leftmargin}%
\item\relax}
{\endlist}
您会看到,如果可能的话,执行定义的文件和行号会打印在输出中。-p
不过,该选项通常不与一起使用。