重命名后引用 LastPage

重命名后引用 LastPage

我正在尝试获取页码Page X of XX并使用标准语法,例如,

\rhead{Page \thepage\ of \pageref{LastPage}}

在此处输入图片描述

它应该可以正常工作,期望我的last page定义如下

\cleardoublepage
\renewcommand{\CoverName}{Back Cover}
\renewcommand{\thepage}{\CoverName}
\thispagestyle{empty}
\centering
\mbox{}
\vfill
\huge{[This page is intentionally left blank.]
\vfill

所以我可以得到这个

在此处输入图片描述

我如何保留Back Cover并启用LastPage?我正在考虑重置页码之类的操作,但我不知道该怎么做。

谢谢。

答案1

您正在重新定义内置\thepage命令,它是不是很好!如果任何其他包使用它(如您演示的 LastPage),它将受此影响。此外,当您有时,最后一页的页眉没有任何用处\thispagestyle{empty}

我假设您不想将封底算作最后一页。

LastPage 将当前页码放入名为 的宏中\lastpage@lastpage。要实现(大概)所需的效果,您可以将其与 结合使用\number\numexpr。因此,您需要执行\rhead{\thepage~of~\the\numexpr\lastpage@lastpage-1\relax}

此外,您可能希望在封底的右上方显示文字“Back Cover”。在这种情况下,您只需重新定义\rhead而不是 即可\thepage

总而言之:

\documentclass{article}
\usepackage{lastpage}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\makeatletter
% ^so we can use \macros containing @ in their macronames

% Just remove the -1 below if you did not want to subtract 1
\rhead{\thepage~of~\the\numexpr\lastpage@lastpage-1\relax}
\makeatother
\begin{document}
Page 1\clearpage Page 2\clearpage
% Switch out the line below with \rhead{Back Cover} if you want "Back Cover" in your header
\thispagestyle{empty}
\centering
~\vfill
\huge{[This page is intentionally left blank.]
\vfill
\end{document}

相关内容