amsthm:定理、引理倒序编号

amsthm:定理、引理倒序编号

我想要的是

\newtheorem{thm}{Theorem}

\begin{thm} A \end{thm}
\begin{thm} B \end{thm}
\begin{thm} C \end{thm}

最终产生

Theorem 1 A.
Theorem 2 B.
Theorem 3 C.

我想要的是:

Theorem 3 A.
Theorem 2 B.
Theorem 1 C.

为什么会想要这种疯狂的事情?

我正在用 LaTeX 记录我正在考虑的想法。

我希望所有东西都按时间倒序排列(即最新的想法排在第一位,最旧的想法排在最后)。

现在,我希望编号在各个版本中都保持有效 - 即,当我添加新定理时,我希望旧定理 20 保持为定理 20 [因此关于定理 20 的所有讨论不会突然被错误标记。]

答案1

如果你走的话

\let\oldthm\thm
\def\thm{\addtocounter{thm}{-2}\oldthm}

它会倒数,你需要

\setcounter{thm}{4}

在开始时,可​​以手动进行,或者通过计算上次使用的 thm 数量并从上次运行中自动设置。


自动重置的完整文档

\documentclass{article}
\usepackage{amsthm}

\newtheorem{thm}{Theorem}
\let\oldthm\thm
\def\thm{\addtocounter{thm}{-2}\oldthm}

\makeatletter
\def\finalthm{0}
\AtEndDocument{%
\immediate\write\@auxout{%
\string\gdef\string\finalthm{\the\value{thm}}}%
}
\AtBeginDocument{%
\setcounter{thm}{\startthm}
\addtocounter{thm}{-\finalthm}
\stepcounter{thm}%
\immediate\write\@auxout{%
\string\gdef\string\startthm{\the\value{thm}}}%
}
\makeatother
\begin{document}



\begin{thm} A \end{thm}
\begin{thm} B \end{thm}
\begin{thm} C \end{thm}

\end{document}

相关内容