我遇到的困难是我提出了一个新定理:
\newtheorem{definition}[theorem]{Definition}
然而,它的行为似乎与新环境几乎相同:
\newenvironment{definition}[1][Definition]{\begin{trivlist}
\item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}}
那么我为什么要使用其中一个呢?
至于如何操纵它们,我找到了newtheorem
各种参数组合的资源,例如:
\newtheorem{theorem}{Theorem}[section]
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{corollary}[theorem]{Corollary}
它看起来与设置类似newenvironment
,只是我们在 [Definition] 前面有一个 [1],newenvironment
我猜它接受一个参数,因此可以扩展到多个。此外,在 newenvironment 的第 3 项中似乎定义了一堆东西,其中 -\begin{trivlist}\item[\hskip \labelsep {\bfseries #1}]{\end{trivlist}
已定义。snewtheorem
参数是否已在系统中定义,或者无法扩展到多个参数 - 这是区别之一吗?
无论如何,我只是想弄清楚何时使用newtheorem
以及何时使用newenvironment
答案1
尽管\newtheorem
实际上与相似,但\newenvironment
它们是不同的:\newtheorem
专门设计用于定义特定类型的环境:类定理结构而\newenvironment
允许您定义任意环境。
定理类结构通常具有头部(由名称和数字组成)和主体(结构的实际内容)。当然,您可以使用“从头”定义定理类结构\newenvironment
,但\newtheorem
会做出一系列规定,以便轻松解释表征此类结构的不同格式元素。例如,只需使用
\newtheorem{theo}{Theorem}
进而
\begin{theo}
Theorem text.
\end{theo}
您将获得一个带有自动编号的粗体标题,正文将使用斜体排版。此外,使用定义的环境\newtheorem
有一个可选参数,允许您为定理指定名称(或注释)。请看以下示例:
\documentclass{article}
\newtheorem{theo}{Theorem}
\begin{document}
\begin{theo}
Theorem text.
\end{theo}
\begin{theo}[Fundamental theorem of algebra]
Theorem text.
\end{theo}
\end{document}
有许多软件包扩展了内核\newthereom
命令的功能;最受欢迎的是:
答案定理包:使用哪一个,哪些会冲突?显示这些包之间的良好比较。
关于句法方面,this answer
到理解 newtheorem 中的参数,例如 \newtheorem{theorem}{Theorem}[section],芭芭拉·比顿已经解释了语法\newtheorem
;可以在中找到类似的解释this other answer
到使用 \newtheorem; 的语法解释\newenvironment
可以在this answer
到将 \newenvironment、\newcounter 放在文档类中的目的是什么?。