zref は `align` 内の方程式番号をリセットします

zref は `align` 内の方程式番号をリセットします

この例では、パッケージを使用するとzref-perpage、環境に入るときに方程式の番号がリセットされる (1 から始まる)ことがわかりますalignperpageパッケージにはこの問題はありません。

\documentclass{article}
\usepackage{amsmath}
\usepackage{zref-perpage}
\zmakeperpage{equation}
\renewcommand{\theequation}{\thezpage.\arabic{equation}}
\begin{document}
Equation:
\begin{equation}
  1<2
\end{equation}


Align:
\begin{align}
  2&<3\\
  &<4
\end{align}


Equation:
\begin{equation}
  4<5
\end{equation}


Align:
\begin{align}
  5&<6\\
  &<7
\end{align}


Equation:
\begin{equation}
  7<8
\end{equation}

\end{document} 

答え1

zref-perpage材料がalign2 回処理されるため、混乱が生じます。簡単なパッチでこの問題を解決します。つまり、測定フェーズ以外でのみ内部カウンターをステップします。

\documentclass{article}
\usepackage{amsmath}
\usepackage{zref-perpage}
\usepackage{xpatch}

\makeatletter
\xpatchcmd{\ZREF@@perpage@step}
 {\global\advance\c@zref@unique\ltx@one}
 {\ifmeasuring@\else\global\advance\c@zref@unique\ltx@one\fi}
 {}{}
\makeatother

\zmakeperpage{equation}
\renewcommand{\theequation}{\thezpage.\arabic{equation}}
\begin{document}
Equation:
\begin{equation}
  1<2
\end{equation}


Align:
\begin{align}
  2&<3\\
  &<4
\end{align}


Equation:
\begin{equation}
  4<5
\end{equation}


Align:
\begin{align}
  5&<6\\
  &<7
\end{align}


Equation:
\begin{equation}
  7<8
\end{equation}

\end{document} 

ここに画像の説明を入力してください

関連情報