如果超过一页,则将页面更改为页面

如果超过一页,则将页面更改为页面

在我的文档开头,我需要列出文档的总页数。我有一个在大多数情况下都能正常工作的系统(见下文),但如果文档只有一页,那么我的文档将显示“1 页”,这很不幸。如果只有一页,有没有办法让它正确地显示“1 页”,如果有 n > 1 页,则显示“n 页”?我的文档需要使用 pdflatex 进行编译。

\documentclass{article}
\usepackage{lipsum}
\usepackage{lastpage}

\begin{document}
\pageref{LastPage} pages
\lipsum[1-2]
\end{document}

答案1

也可以看看如何在\ifnum的测试块中使用\ref命令?

\documentclass{article}
\usepackage{lipsum}
\usepackage{refcount}% must go before ]astpage
\usepackage{lastpage}

\begin{document}
\expandafter\ifnum\getpagerefnumber{LastPage}>1\relax \pageref{LastPage} pages
\else \pageref{LastPage} page
\fi

\lipsum[1-2]
\end{document}

答案2

zref包装

\documentclass{article}
\usepackage{lipsum}
\usepackage[totpages,user]{zref}

\newcommand{\totpages}{\ifnum\ztotpages=1 1 page \else  \ztotpages\ pages \fi}

\begin{document}
\totpages
\lipsum[1-2]
\end{document}

答案3

你可以这样做

\documentclass{article}
\usepackage{lipsum}

\makeatletter
\AtEndDocument{%
\label{LastPage}%
\protected@write\@auxout{}%
{\string\gdef\string\mtpages{page%
\ifx\@begindvi\@empty s\fi}}
}\makeatother
\begin{document}
\pageref{LastPage} \mtpages{}
\lipsum[1-2]
\end{document}

相关内容