如何在一份文档中显示两组页码?

如何在一份文档中显示两组页码?

我想在文档中设置两组页码(P 和 p)。第一组页码(P)是全局的,第二组页码(p)在某些预定义点重置为 1。

因此,该文件将如下所示,

文本

1/5 1/3

文本

P2/5 P2/3

文本

P3/5 P3/3

文本。在此页中,页码(p,第二个)被重置。

P4/5 p1/2

文本

P5/5 p2/2

要获取总页数,请使用最后一页或最后一页包中的标签(http://www.ctan.org/pkg/lastpage) 可以帮助我。但这不是这个问题的主题。

问题出在第二个计数器上。我可以使用 chappg (http://www.ctan.org/pkg/chappg) 并带有 noauto 选项。但我失去了全局页面计数器 P。此外,该组中的 (子) 总页面数必须手动设置。

我知道,如果我用新的计数器(my@local@page)编写一组宏,将其重置为我预定义的点,标记组中的最后一页(标签名称必须不同),也许我可以实现我的目标。但这至少需要半天时间。而我现在没有时间。

我想知道您是否可以建议一些易于使用的东西。

答案1

这是一个可能的设置。我用它fancyhdr来排版两个页码,也用它来步进辅助计数器。宏\resetpageaux执行一个\clearpage,设置一个标签,并将辅助计数器设置为零。在文档的末尾,我们还设置了最后一个标签。

\documentclass{article}

\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\fancyhf{}
\fancyfoot[C]{\twopagenumbers}
\fancypagestyle{plain}{
  \renewcommand{\headrulewidth}{0pt}
  \fancyhf{}
  \fancyfoot[C]{\twopagenumbers}
}

\usepackage{atenddvi}
\usepackage[user]{zref}

\newcounter{pageaux}
\def\currentauxref{PAGEAUX1}
\newcommand{\twopagenumbers}{%
  \stepcounter{pageaux}%
  P \thepage/\zpageref{LastPage} -- p \thepageaux/\ref{\currentauxref}%
}
\makeatletter
\newcommand{\resetpageaux}{%
  \clearpage
  \edef\@currentlabel{\thepageaux}\label{\currentauxref}%
  \xdef\currentauxref{PAGEAUX\thepage}%
  \setcounter{pageaux}{0}}
\AtEndDvi{\edef\@currentlabel{\thepageaux}\label{\currentauxref}}
\makeatletter

\usepackage{kantlipsum} % just for mock text

\begin{document}

\kant

\resetpageaux

\kant[1-14]

\resetpageaux

\kant[1-22]

\end{document}

enter image description here

相关内容