我试图在右侧标题处设置一个计数器,显示“x of 3”,其中 x 根据我使用 \pgroup 的时间递增。但是,它在第一页显示“2 of 3”,然后在第二页和第三页显示“3 of 3”。当我使用\lipsum
而不是 时,Sample text
它按我想要的方式工作。我在 Google 搜索中找不到任何结果,但也许我使用了错误的关键字。
\documentclass[12pt]{article}
\usepackage[head=50pt]{geometry}
\usepackage{fancyhdr}
\newcounter{pgroup}
\setcounter{pgroup}{1}
\newcommand{\pgroup}{\stepcounter{pgroup} \newpage
\setcounter{page}{1}}
\newcommand{\numgroups}{3}
\pagestyle{fancy}
\chead{Homework 9}
\rhead{\arabic{pgroup} of \numgroups}
\begin{document}
\begin{enumerate}
\item Sample text. Pgroup: \arabic{pgroup}
\item Sample text. Pgroup: \arabic{pgroup}
\pgroup
\item Sample text. Pgroup: \arabic{pgroup}
\pgroup
\item Sample text. Pgroup: \arabic{pgroup}
\end{enumerate}
\end{document}
答案1
您的代码序列执行以下操作:
\setcounter{pgroup}{1}
这设置pgroup
为 1。在列表中
\begin{enumerate}
\item Sample text. Pgroup: \arabic{pgroup}
\item Sample text. Pgroup: \arabic{pgroup}
\pgroup
\item Sample text. Pgroup: \arabic{pgroup}
\pgroup
\item Sample text. Pgroup: \arabic{pgroup}
\end{enumerate}
直到第一页才输出\pgroup
,
\newcommand{\pgroup}{\stepcounter{pgroup} \newpage \setcounter{page}{1}}
因此它pgroup
第一的(现在它将代表两个),在发送页面之前(通过\newpage
)。由于页眉/页脚构成页面样式的一部分,仅在页面发送期间写入,因此\arabic{pgroup}
将打印2
。
随后对 的调用也发生同样的情况\pgroup
,pgroup
在输出页面之前执行了三步。最终页面在文档末尾输出,无需调用\pgroup
,保持pgroup
原样。
以上仅解释了该行为。但是,由于我不清楚您到底想要实现什么,因此我无法提出更多建议,只能切换步进和\newpage
引用\pgroup
:
\newcommand{\pgroup}{\newpage \stepcounter{pgroup} \setcounter{page}{1}}