如何使用 \pagenumbering{Roman} 获取阿拉伯语总页数

如何使用 \pagenumbering{Roman} 获取阿拉伯语总页数

在下面的代码中,我将总页数存储在一个以 命名的宏中(来自 和 的\totalpages包)。\getpagerefnumber{LastPage}lastpagerefcount

然后我用 比较数字\ifnum,但由于\pagenumbering{Roman}页码不是阿拉伯格式而失败。

我想知道是否有办法获得阿拉伯数字的总页数,即使页码的格式是非阿拉伯的,即\pagenumbering{Roman}字母等。

\documentclass{article}
\usepackage{lastpage,refcount}
\pagenumbering{Roman}

\begin{document}
\def\totalpages{\getpagerefnumber{LastPage}}
\ifnum\totalpages=3 ok \else not ok \fi\\
first page
\clearpage
second page
\clearpage
third page
\end{document} 

答案1

当前 LaTeX 将绝对页码写入辅助文件。因此无需任何包即可检索它。在第一次编译中,该值为1073741823

\documentclass{article}
\pagenumbering{Roman}
\begin{document}

\makeatletter
absolute page number: \@abspage@last\\
\ifnum\@abspage@last=3 ok \else not ok \fi\\
\makeatother
first page
\clearpage
second page
\clearpage
third page
\end{document} 

答案2

使用pageslts包代替lastpage

\documentclass{article}
\usepackage{pageslts,refcount}
\pagenumbering{Roman}

\begin{document}
\newcommand\totalpages{\getpagerefnumber{LastPages}}
\ifnum\totalpages=3 ok \else not ok \fi\\
first page
\clearpage
second page
\clearpage
third page
\end{document} 

相关内容