在下面的代码中,我将总页数存储在一个以 命名的宏中(来自 和 的\totalpages
包)。\getpagerefnumber{LastPage}
lastpage
refcount
然后我用 比较数字\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}