使用页码对定理进行编号

使用页码对定理进行编号

我想按 来编号定理(page number).(sequential in the page)。因此,在第 6 页中,我会

Thm 6.1 AAAAAAABBBVVV

Thm 6.2 BBBGGSDFASFASF

Thm 6.3 AXASDFASDF

然后在第 7 页

Thm 7.1 AAAAAAABBBVVV

Thm 7.2 BBBGGSDFASFASF

Thm 7.3 AXASDFASDF

我尝试使用\newtheorem{thm}{Thm}[page]。但是,如果 Thm 7.1 位于第 7 页的顶部,有时它会被编号为 Thm 6.4。我假设这种情况发生是因为\thepage在实际设置新页面之前调用了 。有没有简单的解决方法?

答案1

您需要一个\label机制\pageref来在稍后的运行中修复页面引用。

在此处输入图片描述

\documentclass{article}

\setlength\textheight{4cm}

\newcounter{thminternal}
\newtheorem{thm}{Thm}
\let\zzthm\thm
\makeatletter
\def\@begintheorem#1#2{\trivlist
   \item[%
\protected@edef\zz{\pageref{thm-\thethminternal}}%
        \stepcounter{thminternal}%
\protected@edef\zzz{\pageref{thm-\thethminternal}}%
\ifx\zz\zzz\else\setcounter{thm}{0}\refstepcounter{thm}\fi
\label{thm-\thethminternal}%
        \hskip \labelsep{\bfseries #1\ \pageref{thm-\thethminternal}.#2}]\itshape}



\begin{document}

\begin{thm}aaaa\end{thm} zzz

\begin{thm}bbb\end{thm} \begin{thm}ccc\end{thm}

zzz

\begin{thm}aaaa\end{thm} zzz

\begin{thm}bbb\end{thm} \begin{thm}ccc\end{thm}
\begin{thm}bbb\end{thm} \begin{thm}ccc\end{thm}

zzz
\begin{thm}bbb\end{thm} \begin{thm}ccc\end{thm}
\begin{thm}bbb\end{thm} \begin{thm}ccc\end{thm}

zzz


\end{document}

相关内容