zref-perpage funktioniert nicht mit theoremähnlichen Umgebungen

zref-perpage funktioniert nicht mit theoremähnlichen Umgebungen

Ich versuche, das zref-perpagePaket zu verwenden, um theoremähnliche Umgebungen und Gleichungen seitenweise zu nummerieren. Leider funktioniert das nicht gut. In diesem ersten Beispiel sehen wir, dass die zweite thmauf der zweiten Seite erscheint, aber ihr Zähler ist 1,2 statt 2,1. Die Gleichungsnummern sind in Ordnung.

\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}

Im zweiten Beispiel ist die einzige Änderung, die ich vornehme, dass ich den Wert textheightvon 1 Zoll auf 1,5 Zoll erhöhe. Dadurch thmbeginnt die zweite Gleichung auf der ersten Seite, endet aber auf der zweiten Seite. Wie Sie sehen, gerät diesmal der Gleichungszähler durcheinander: Die zweite Gleichung steht auf der zweiten Seite, bekommt aber die Bezeichnung 1,3, also so, als stünde sie auf Seite 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}

Auf Anregung von @christian verwende ich im folgenden Beispiel nur articleund, mit textheight=.9in, der zweite thmsteht auf der 2. Seite, der thmZähler zeigt aber 1,2 statt 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}

Dieses Beispiel zeigt, dass das perpagePaket auch nicht funktioniert.

\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}

Antwort1

Umgebung equation, neu definiert durch Paket amsmath, erhöht den GleichungszählerVordie Mathematik wird gestartet. Dadurch kommt es vor, dass zwischen der Zählerstellung und der angezeigten mathematischen Gleichung ein Seitenumbruch erfolgt. Ersterer ist die Stelle, an der das Etikett gesetzt wird, um die Seitenzahl zu erhalten.

Problemumgehungen:

  • minipageSo verhindern Sie den Seitenumbruch :

    \noindent
    \begin{minipage}{\linewidth}
      \begin{equation}...\end{equation}
    \end{minipage}
    
  • Neudefinition von , was auffordert , an einen späteren Ort \equationzu verschieben :\incr@eqnum\refstepcounter{equation}

    \makeatletter
    \renewcommand*{\equation}{% amsmath version
      \nobreak
      \mathdisplay@push
      \st@rredfalse
      \global\@eqnswtrue
      \mathdisplay{equation}%
      \incr@eqnum
    } 
    \makeatother
    

verwandte Informationen