引用 lastpage 包中 pageref 中的倒数第二页

引用 lastpage 包中 pageref 中的倒数第二页

我可以用来\pageref{LastPage}给出带包装的最后一页的参考lastpage。文档的最后一页是封底,所以我不想计算它。我想知道如何指定带lastpage包装的倒数第二页。提前感谢您的帮助。

答案1

使用refcount操纵(页面)引用:

在此处输入图片描述

\documentclass{article}
\usepackage{lastpage,refcount,atbegshi}
\usepackage{hyperref}
\usepackage{lipsum}
\AtBeginShipout{%
  \ifnum\value{page}=\number\numexpr\getpagerefnumber{LastPage}-2\relax
    \phantomsection\label{preLastPage}
  \fi}
\begin{document}

Last page: \pageref{LastPage} \par
Second to last page: \pageref{preLastPage}

\lipsum[1-50]

\end{document}

之所以要比较\value{page}<LastPage>-2是因为页码是分步的打印值 - 与文档中的其他计数器不同。因此,\AtBeginShipout页面计数器已经步进,我们需要\label在页面末尾插入一个<LastPage>-2,以便将其设置在页面开头<LastPage>-1

答案2

如果您在文档开头以及每次方案更改时使用,软件包pageslts会为每个编号方案添加最后一页标签pagenumbering{…}。因此,对于封面,您可以使用任何以前未使用的方案,并\pagestyle{empty}在之后立即设置:

\documentclass{article}
\usepackage{pageslts,refcount}
\usepackage{lipsum}
\usepackage[ plainpages=false, pdfpagelabels=true]{hyperref}

\begin{document}

\pagenumbering{arabic}
Last page: \pageref{pagesLTS.arabic} \par
Very last page:  \lastpageref{LastPages}

\lipsum[1-50]
\clearpage
\pagenumbering{roman}
\pagestyle{empty}
section{New page numbering}
\lipsum[51-60]

\end{document} 

在此处输入图片描述 请注意,根据文档(§ 3.1),如果两个页面具有相同的编号(即使采用不同的编号方案),则设置选项是hyperref为了防止出现任何问题,但对于此处给出的示例而言,这些选项并不是必需的。请参阅文档中约束的详细信息。

相关内容