Я пытаюсь использовать zref-perpage
пакет для нумерации теоремоподобных сред и уравнений по страницам. К сожалению, это не работает должным образом. В этом первом примере мы видим, что вторая thm
появляется на 2-й странице, но ее счетчик равен 1,2 вместо 2,1. Номера уравнений выходят нормально.
\documentclass{amsart}
\usepackage[textheight=1in]{geometry}
\usepackage{zref-perpage}
\newtheorem{thm}{Theorem}
\zmakeperpage{thm}
\renewcommand{\thethm}{\thezpage.\arabic{thm}}
\zmakeperpage{equation}
\renewcommand{\theequation}{\thezpage.\arabic{equation}}
\begin{document}
\begin{thm}
We have
\begin{equation}
\int_1^e\frac1x = 1
\end{equation}
\end{thm}
\begin{thm}
We have
\begin{equation}
\int_1^e\frac1x = 1
\end{equation}
\begin{equation}
\int_1^e\frac1x = 1
\end{equation}
\end{thm}
\end{document}
Во втором примере единственное изменение, которое я делаю, это увеличиваю textheight
с 1 дюйма до 1,5 дюйма. Это заставляет вторую строку thm
начинаться на первой странице, но заканчиваться на второй странице. Как вы можете видеть, на этот раз счетчик уравнений сбивается: второе уравнение находится на 2-й странице, но получает метку 1,3, так, как будто оно находится на 1-й странице.
\documentclass{amsart}
\usepackage[textheight=1.5in]{geometry}
\usepackage{zref-perpage}
\newtheorem{thm}{Theorem}
\zmakeperpage{thm}
\renewcommand{\thethm}{\thezpage.\arabic{thm}}
\zmakeperpage{equation}
\renewcommand{\theequation}{\thezpage.\arabic{equation}}
\begin{document}
\begin{thm}
We have
\begin{equation}
\int_1^e\frac1x = 1
\end{equation}
\end{thm}
\begin{thm}
We have
\begin{equation}
\int_1^e\frac1x = 1
\end{equation}
\begin{equation}
\int_1^e\frac1x = 1
\end{equation}
\end{thm}
\end{document}
По предложению @christian, в следующем примере я использую только article
and, при этом textheight=.9in
второй thm
находится на 2-й странице, но thm
счетчик показывает 1,2 вместо 2,1.
\documentclass[letterpaper]{article}
%\usepackage{mdframed}
\usepackage[textheight=.9in]{geometry}
\usepackage{zref-perpage}
\newtheorem{thm}{Theorem}
\zmakeperpage{thm}
\renewcommand{\thethm}{\thezpage.\arabic{thm}}
\zmakeperpage{equation}
\renewcommand{\theequation}{\thezpage.\arabic{equation}}
\begin{document}
\begin{thm}
We have
\begin{equation}
\int_1^e\frac1x = 1
\end{equation}
\end{thm}
\begin{thm}
We have
\begin{equation}
\int_1^e\frac1x = 1
\end{equation}
\begin{equation}
\int_1^e\frac1x = 1
\end{equation}
\end{thm}
\end{document}
Этот пример показывает, что perpage
пакет также не работает.
\documentclass[letterpaper]{article}
\usepackage[textheight=.9in]{geometry}
\usepackage{perpage}
\newtheorem{thm}{Theorem}
\let\origthethm\thethm
\MakePerPage{thm}
\renewcommand{\thethm}{\theperpage.\origthethm}
\let\origtheequation\theequation
\MakePerPage{equation}
\renewcommand{\theequation}{\theperpage.\origtheequation}
\begin{document}
\begin{thm}
We have
\begin{equation}
\int_1^e\frac1x = 1
\end{equation}
\end{thm}
\begin{thm}
We have
\begin{equation}
\int_1^e\frac1x = 1
\end{equation}
\begin{equation}
\int_1^e\frac1x = 1
\end{equation}
\end{thm}
\end{document}
решение1
Окружение equation
, переопределенное пакетом amsmath
, увеличивает счетчик уравненийдоматематика запущена. Таким образом, получается, что между настройкой счетчика и отображаемым математическим уравнением есть разрыв страницы. Первое — это место, где устанавливается метка для получения номера страницы.
Обходные пути:
Обводим
minipage
вокруг, чтобы предотвратить разрыв страницы:\noindent \begin{minipage}{\linewidth} \begin{equation}...\end{equation} \end{minipage}
Переопределение глагола
\equation
«переместить»\incr@eqnum
, который призывает к перемещению\refstepcounter{equation}
в более позднее место:\makeatletter \renewcommand*{\equation}{% amsmath version \nobreak \mathdisplay@push \st@rredfalse \global\@eqnswtrue \mathdisplay{equation}% \incr@eqnum } \makeatother