仅当未发生分页符时才增加计数器

仅当未发生分页符时才增加计数器

我正在尝试创建一个包含一系列测试说明的表单,每个说明都以小页面的形式显示,占用标准 A4 纸的 1/3 - 1/2 大小。我希望能够在每页的页脚内显示页面上的测试数量。

我创建了一个计数器,每当添加测试时,计数器就会递增,每当页面计数器递增时,计数器就会重置。但是,我发现即使由于空间不足,测试最终出现在下一页,测试计数器也会递增。有没有办法让计数器报告每页的正确测试数量?

其中包括 MWE:

\documentclass[10pt,a4paper]{article}   

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{fancyhdr}

\rfoot{\large{$\dfrac{}{\arabic{PageTestCounter}}$}}

\newcounter{PageTestCounter}[page]

\newcommand{\addTest}[1]{%
\stepcounter{PageTestCounter}
Test #1:\hspace{1cm}$\square$
\vspace{25\baselineskip}
}

\begin{document}

\pagestyle{fancy}

\addTest{1}

\addTest{2}

\addTest{3}

\end{document}

MWE 的输出:

在此处输入图片描述

答案1

您应该使用一个\mark命令,例如与 extramarks 包一起使用:

\documentclass[10pt,a4paper]{article}
\usepackage{extramarks}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{fancyhdr}

\rfoot{\large{$\dfrac{}{\lastxmark}$}}

\usepackage{perpage}
\newcounter{PageTestCounter}
\MakePerPage{PageTestCounter}

\newcommand{\addTest}[1]{%
\stepcounter{PageTestCounter}%
Test #1:\extramarks{}{\arabic{PageTestCounter}}\hspace{1cm}$\square$    
\vspace{25\baselineskip}%
}

\begin{document}

\pagestyle{fancy}

\addTest{1}

\addTest{2}

\addTest{3}

\end{document}

您也可以使用正常的\markboth,但是您可能需要它用于部分。

相关内容