The package xassoccnt
provides a mean to force a stepping of an associated counter each time a driver counter is stepped as well -- the driver counter is page
here.
This has an advantage over the totcount
or lastpage
packages, since the associated counter realpage
(any name will do, but section
etc. is unwise, of course ;-)) is not reset (unless explicitly done so with \setcounter
) -- As such, it counts the total absolute values of pages.
So even in case of \pagenumbering
commands, this does not have an effect on the realpage
counter.
Please note that page
is an unrealiable counter in some sense!
\documentclass[a5paper, 11pt]{scrbook}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{xassoccnt}
\newcounter{realpage}
\DeclareAssociatedCounters{page}{realpage}
\AtBeginDocument{%
\stepcounter{realpage}
}
\begin{document}
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
\pagenumbering{gobble}
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
\pagenumbering{arabic}
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
\end{document}
A version with \NewTotalDocumentCounter
(needs xassoccnt
v.1.2. and above)
\documentclass[a5paper, 11pt]{scrbook}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{xassoccnt}
\NewTotalDocumentCounter{totalrealpage}
\NewDocumentCounter{realpage}
\DeclareAssociatedCounters{page}{realpage,totalrealpage}
\makeatletter
\AtBeginDocument{%
\setcounter{realpage}{1}
}
\makeatother
\begin{document}
In diesem Dokument sind insgesamt \TotalValue{totalrealpage} Seiten!
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
\pagenumbering{gobble}
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
\pagenumbering{arabic}
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
Seite \therealpage
\newpage
\end{document}