定理的修订版,编号为 2.0、2.1、2.2

定理的修订版,编号为 2.0、2.1、2.2

我想给出同一定理的不同等价版本,最终证明最后一个版本。第一次陈述定理时,我希望它的数字是 2.0。每次修改它时,我希望数字从 2.n => 2.(n+1)。我尝试这样做

\newcounter{goalbroad}
\newcounter{goal}
\numberwithin{goal}{goalbroad}
\newtheorem{goal}[goal]{Theorem}

然后在第一个之前

\begin{goal}...\end{goal}

我打电话

\setcounter{goalbroad}{\value{thms}}

但是 LaTeX(和 LuaLaTex)就卡在那里了。

到目前为止,我只找到了用相同编号重新表述定理的解释。我的方法出了什么问题?实现这一点的好方法是什么?

答案1

这是一个解决方案amsthm

\documentclass{article}
\usepackage{amsthm}

\newtheorem{thm}{Theorem}

\newtheorem*{innergoal}{Theorem \thegoal}

\newcounter{goal}
\setcounter{goal}{-1}
\newif\ifnotfirstgoal

\newenvironment{goal}
 {\ifnotfirstgoal\else
    \global\notfirstgoaltrue
    \stepcounter{thm}%
  \fi
  \xdef\thegoal{\thethm.\noexpand\arabic{goal}}%
  \refstepcounter{goal}%
  \innergoal}
 {\endinnergoal}

\begin{document}

First a theorem.

\begin{thm}
$1+1=2$
\end{thm}

State the goal

\begin{goal}\label{g.0}
$1+0=1$
\end{goal}

Restate the goal

\begin{goal}\label{g.1}
$0+1=1$
\end{goal}

Restate the goal

\begin{goal}\label{g.2}
Easy
\end{goal}

Show the references: \ref{g.0}, \ref{g.1}, \ref{g.2}

\end{document}

在此处输入图片描述

答案2

计数器和定理的名称似乎位于同一个命名空间中,因此计数器目标和定理目标环境相互冲突。将计数器的名称更改为 goalnarrow 解决了该问题。我仍然有兴趣听到有关原因和首选解决方案的更多信息。

最小工作示例:

我的序言的相关部分如下:

\usepackage[amsthm]{ntheorem}
\newcounter{thms} %theorem counter
\newtheorem{theorem}[thms]{Theorem}

\newcounter{goalbroad}
\newcounter{goalnarrow} %this can't be named goal
\numberwithin{goalnarrow}{goalbroad}
\newtheorem{goal}[goalnarrow]{Theorem}

然后在之后\begin{document},对于目标的第一个陈述,

\stepcounter{thms}
\addtocounter{goalbroad}{\value{thms}}
\begin{goal} %Theorem 2.1
$e^{it}=\cos t + i\sin t$
\end{goal}

稍后

\begin{goal} %Theorem 2.2
$t\mapsto e^{it}$ is a covering map from \mathbb{R} to the unit circle in the complex plane.
\end{goal}

相关内容