LaTeX中的定理编号

7

我在LaTeX中遇到了定理编号的问题。我可以通过子节进行编号,例如:

定理1.2.1

这是第一节的第二个子节中的第一个定理。但我需要它仅显示子节和定理的编号,而不显示节号,像这样:

定理2.1

我使用的是

\newtheorem{thm}{Theorem}[subsection]

为编号而言。

31
请不要这样做。作为一位经常阅读数学书籍的读者,我非常讨厌书籍使用这种编号风格。如果您这样做,说“定理3.2”就变得含糊不清:它可能指的是许多地方的许多可能定理,并且无法使复杂的资料更易于理解。 - kquinn
2
我在回复kquinn方面晚了十年,但我从未觉得这是含糊的。说“定理3.2”意味着本章第三节的第二个定理。要引用另一章,作者将说“第1章的定理3.2”。此外,这使我更容易阅读定理,因为(a)大多数情况下,章节要么是自包含的,要么有命名结果来自其他章节参考,(b)我更擅长解析英语而不是数字序列。 - Ben Kushigian
3
问题要求定理编号在每个新的“章节”开始时重新开始,而不是在每个新的章节开始时重新开始。 - McDuffin
6个回答

16

将以下代码放在导言部分似乎可以达到预期效果:

\usepackage{amsthm}
\newtheorem{thm}{Theorem}[subsection]
\renewcommand{\thethm}{\arabic{subsection}.\arabic{thm}}
我不理解为什么你想要这种特定的定理编号系统,但是这段代码可以实现你想要的效果: LaTeX output

1
聪明。请注意,虽然这样做可以达到所需的效果,但它依赖于amsthm的内部结构,因此可能不够稳定。而且,对读者来说,每个子节的第一个定理都标为“定理1.1”,这样会不会让人感到困惑呢? - Naaff
3
我完全同意你的想法,不明白为什么问题提出者要以这种方式编号定理。我个人会避免交叉引用的歧义,采用默认的章.节.定理编号方式,或按文档整体连续编号定理。 - las3rjock
这个“imageshack”是在这里做什么的? - Erel Segal-Halevi

2

这个有效吗?

\newtheorem{thm}{Theorem}[section]

请查看这些LaTeX技巧


我已经尝试过了。那会给我编号,像这样 section_number.theorem_number,但我需要 subsection_number.theorem_number - jbradaric

1

这并不是一件容易的事情。AMS定理包只提供了一种控制编号重置(章节、子章节)、是否与其他环境(推论、引理)相关以及编号顺序(“1.1 定理”与“定理 1.1”)的方法。

定理的编号来自于\thesection\thesubsection命令。您可以重新定义\thesubsection命令以获得所需的编号,但这也会影响使用\thesubsection所有内容


0
在稍微不那么hacky的方式中,您可以创建一个虚假的计数器,该计数器将使用subsection进行重置,并重新定义其\the以符合您的要求:
\newcounter{fakecnt}[subsection]
\def\thefakecnt{\arabic{subsection}}
\newtheorem{thm}{Theorem}[fakecnt]

0

将此行插入您的导言部分(或在 \newtheorem 语句之前的任何地方):

\renewcommand{\thesubsection}{\arabic{subsection}}

这将重置thm环境的编号命令,以忽略章节编号(在编号定理时)并仅显示子节编号和定理编号。章节编号仍将显示在章节标题前面,只是不包括在章节中的定理。因此,正如您所描述的那样,第一部分的第二个子节中的第一个定理将被编号为2.1。 \arabic的替代方案包括:

  • \Roman-生成大写罗马数字,例如II.1
  • \roman-生成小写罗马数字,例如ii.1
  • \Alph-生成大写字母,例如B.1
  • \alph-生成小写字母,例如b.1

这难道不会影响编号的子节标题吗? - las3rjock
是的,你说得对,这将导致定理编号和子节标题的编号都忽略章节编号。 - Alex Basson
认为,虽然不确定,如果在\newtheorem环境定义中包含\renewcommand行,您可以使重新编号特定于定理。但是,这当然需要手动重新实现\newtheorem环境定义,这可能不值得。 - Alex Basson

-2

您可以使用此命令来更新命令部分、子部分和定理等内容...

\renewcommand{\theequation}{\thesection.\arabic{equation}}
\renewcommand{\thesection}{\arabic{section}}
\renewcommand{\thesubsection}{(\alph{subsection})}‎‎‎

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接