zref-perpage
정리와 유사한 환경과 방정식을 페이지별로 번호를 매기기 위해 패키지를 사용하려고 합니다 . 불행히도 잘 작동하지 않습니다. 이 첫 번째 예에서는 두 번째 페이지가 thm
두 번째 페이지에 나타나는 것을 볼 수 있지만 해당 카운터는 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}
두 번째 예에서 내가 변경한 유일한 변경 사항은 1인치에서 1.5인치로 늘리는 것입니다 textheight
. 이렇게 하면 두 번째가 thm
첫 번째 페이지에서 시작되지만 두 번째 페이지에서 끝나게 됩니다. 보시다시피 이번에는 방정식 카운터가 엉망이 되었습니다. 두 번째 방정식은 두 번째 페이지에 있지만 레이블 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
는 두 번째 페이지에 있지만 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
package 로 재정의된 Environment 는 amsmath
방정식 카운터를 증가시킵니다.~ 전에수학이 시작되었습니다. 따라서 카운터 설정과 표시된 수학 방정식 사이에 페이지 나누기가 발생합니다. 전자는 페이지 번호를 가져오도록 레이블을 설정하는 곳입니다.
해결 방법:
minipage
페이지 나누기를 방지하기 위해 주위에 배치 :\noindent \begin{minipage}{\linewidth} \begin{equation}...\end{equation} \end{minipage}
를 호출하는
\equation
move 를 나중에 다른 위치로 재정의합니다 .\incr@eqnum
\refstepcounter{equation}
\makeatletter \renewcommand*{\equation}{% amsmath version \nobreak \mathdisplay@push \st@rredfalse \global\@eqnswtrue \mathdisplay{equation}% \incr@eqnum } \makeatother