Счетчик страниц не работает в уравнении поверх новой страницы

Счетчик страниц не работает в уравнении поверх новой страницы

В примере ниже (извините, я не знаю, как сделать его меньше) я пытаюсь включить номер страницы в нумерацию уравнений, но на новой странице уравнение нумеруется по предыдущей странице, а не по странице, на которой оно находится. Я указываю, где возникает проблема, с помощью предложения, которое ссылается на неправильно пронумерованное уравнение. Как вы можете видеть, на странице 3 все 4 уравнения в alignсреде нумеруются по предыдущей странице.

Я вижу ту же проблему в любой среде, подобной теоремам.

Мотивация: гораздо проще найти уравнение (или любую теоремоподобную структуру) в большой статье или книге, если в ссылке указан номер страницы, а не раздел или что-либо еще.)

\documentclass[12pt,letterpaper]{amsart}
\numberwithin{equation}{page}
\begin{document}
\begin{equation}
  \frac12=\frac24\label{eq:1}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:2}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:3}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:4}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:5}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:6}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:7}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:8}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:9}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:10}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:11}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:12}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:13}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:14}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:15}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:16}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:17}  
\end{equation}
Equation \eqref{eq:17} is on page \pageref{eq:17}, not on the
previous page.
\begin{equation}
  \frac12=\frac24\label{eq:18}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:19}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:20}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:21}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:22}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:23}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:24}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:25}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:26}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:27}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:28}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:29}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:30}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:31}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:32}  
\end{equation}
\begin{align}
  \frac12&=\frac24\label{eq:33} \\
  \frac12&=\frac24\\
  \frac12&=\frac24\\
  \frac12&=\frac24
\end{align}
Equation \eqref{eq:33} is on page \pageref{eq:33}, not on the previous
page.
\begin{equation}
  \frac12=\frac24\label{eq:34}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:35}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:36}  
\end{equation}


\end{document}

Добавлено (спасибо!!!): Пакет perpageработает отлично. Одно замечание: требуется дополнительный запуск латекса. Я мог бы использовать его даже для сред, подобных теоремам. Вот что мне нужно было сделать, чтобы все теоремы были пронумерованы постранично. Обратите внимание, что переопределение счетчика должно было быть сделано после определения среды, thmпоскольку счетчик thmсчетчика не существует до этого.

\mdtheorem[style=theorem]{thm}{Theorem}
\let\origthethm\thethm
\MakePerPage{thm}
\renewcommand{\thethm}{\theperpage.\origthethm}

решение1

Используйте perpageпакет, который предназначен для таких per - pageдействий. Правильное значение страницы можно получить с помощью \theperpageмакроса.

\documentclass[12pt,letterpaper]{amsart}

\let\origtheequation\theequation

\usepackage{perpage}

\MakePerPage{equation}


\renewcommand{\theequation}{\theperpage.\origtheequation}



\begin{document}
\begin{equation}
  \frac12=\frac24\label{eq:1}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:2}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:3}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:4}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:5}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:6}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:7}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:8}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:9}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:10}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:11}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:12}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:13}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:14}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:15}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:16}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:17}  
\end{equation}
Equation \eqref{eq:17} is on page \pageref{eq:17}, not on the
previous page.
\begin{equation}
  \frac12=\frac24\label{eq:18}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:19}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:20}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:21}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:22}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:23}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:24}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:25}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:26}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:27}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:28}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:29}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:30}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:31}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:32}  
\end{equation}
\begin{align}
  \frac12&=\frac24\label{eq:33} \\
  \frac12&=\frac24\\
  \frac12&=\frac24\\
  \frac12&=\frac24
\end{align}
Equation \eqref{eq:33} is on page \pageref{eq:33}, not on the previous
page.
\begin{equation}
  \frac12=\frac24\label{eq:34}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:35}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:36}  
\end{equation}


\end{document}

введите описание изображения здесь

решение2

Вы можете использовать zrefпакет, в частности его perpageмодуль.

Обратите внимание на использование \thezpageдля получения правильного номера страницы, что не совпадает с \thepageнекоторыми обстоятельствами: проблема в том, что TeX выполняет дополнительную верстку, прежде чем осознает, что ему нужно извлечь страницу; это делается для того, чтобы найти оптимальную точку разрыва страницы в соответствии с его правилами.

\documentclass[12pt]{amsart}

\usepackage{zref-perpage}

\usepackage[a6paper]{geometry} % just for the example

\zmakeperpage{equation}
\renewcommand{\theequation}{\thezpage.\arabic{equation}}

\begin{document}
\begin{equation}
  \frac12=\frac24\label{eq:1}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:2}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:3}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:4}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:5}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:6}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:7}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:8}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:9}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:10}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:11}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:12}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:13}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:14}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:15}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:16}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:17}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:18}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:19}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:20}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:21}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:22}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:23}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:24}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:25}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:26}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:27}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:28}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:29}  
\end{equation}
\begin{equation}
  \frac12=\frac24\label{eq:30}  
\end{equation}
\end{document}

Пакет geometryиспользовался только для сокращения объема кода и отображения нескольких страниц на небольшой картинке.

введите описание изображения здесь

Связанный контент