このパッケージを使用して、定理のような環境と方程式をページごとに番号付けしようとしていますzref-perpage
。残念ながら、うまく機能しません。この最初の例では、2 番目のものがthm
2 ページ目に表示されますが、そのカウンターは 2.1 ではなく 1.2 です。方程式の番号は正常に表示されます。
\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
2 番目の例では、 を1 インチから 1.5 インチに増やすという変更のみを行っています。これにより、2 番目の式thm
は最初のページで始まりますが、2 番目のページで終了します。ご覧のとおり、今回は方程式のカウンターがおかしくなります。2 番目の方程式は 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
の場合textheight=.9in
、2 番目thm
は 2 ページ目にありますが、thm
カウンターには 2.1 ではなく 1.2 が表示されます。
\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