我正在尝试获取页码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}