我在包中遇到了一个错误totcount
:有时它会错误地计算页数。例如,以下代码为我生成了一个 2 页的 PDF 文件,但totcount
认为只有一页:
\documentclass[letterpaper]{article}
\usepackage{lipsum}
\usepackage{totcount}
\regtotcounter{page}
\begin{document}
\lipsum[1-5]
{\LARGE Total page count according to \texttt{totcount}: \total{page}.}
\end{document}
还有人在维护这个包吗?
有哪些可行的替代方案totcount
?
我知道,lastpage
但我需要数字形式的总数,而不是文本。totcount
我用\totvalue{page}
它。
答案1
您可以使用zref
它,它不应该有totcount
与页码相关的问题。我的意思是,totcount
它非常适合保存计数器的值,但它可能会失败page
。
\documentclass[letterpaper]{article}
\usepackage[lastpage]{zref}
\usepackage{lipsum} % for the example
\makeatletter
\newcommand{\totalpages}{\zref@extractdefault{LastPage}{page}{0}}
\makeatother
\newcounter{test}
\begin{document}
\lipsum[1-5]
\bigskip
\LARGE
\setcounter{test}{\totalpages}\thetest
Total page count according to \texttt{zref}: \totalpages.
\end{document}
\totalpages
如您所见,您也可以在需要数字的上下文中使用。
答案2
lastpage
如你所愿返回 2
\documentclass[letterpaper]{article}
\usepackage{lipsum}
\usepackage{lastpage}
\begin{document}
\lipsum[1-5]
{\LARGE Total page count according to \texttt{lastpage}: \pageref{LastPage}.}
\end{document}
如果您很小心的话,您可以将 的值用作\pageref{LastPage}
数字。
\documentclass[letterpaper]{article}
\makeatletter
\long\def\@secondoffour#1#2#3#4{#2}
\def\getlastpage{\ifx\r@LastPage\@undefined 0\else
\expandafter\@secondoffour\r@LastPage\@empty\@empty\fi}
\makeatother
\usepackage{lipsum}
\usepackage{lastpage}
\begin{document}
\lipsum[1-5]
{\LARGE Total page count according to \texttt{lastpage}: \pageref{LastPage}.}
\the\numexpr\getlastpage+5\relax
\end{document}
答案3
\AtEndDocument
您可以使用以下命令“手动”执行此操作电子工具箱包。下面的代码equation
在文档末尾增加计数器,然后创建LastPage
标签。有了这个,\pageref{LastPage}
将给出文档中的页数(当然,您需要使用 latex 两次,并且页数需要稳定。
以下是 MWE 输出的前几行:
以下是代码:
\documentclass{article}
\usepackage{etoolbox}% setting the LastPage label
\AtEndDocument{\refstepcounter{equation}\label{LastPage}}
\usepackage{blindtext}% for illustrative purposes only below
\begin{document}
The number of pages in this document is \pageref{LastPage}.
\Blinddocument% a fake random document
\end{document}