% \iffalse % % Copyright (C) 1996-98 by Jochen R"utschlin. All rights reserved. % % This file is part of the `lastpage' package. % % IMPORTANT NOTICE: % % You are not allowed to change this file. % % You are NOT ALLOWED to distribute this file alone. You are NOT % ALLOWED to take money for the distribution or use of this file (or % a changed version). % % If you receive only some of these files from someone, complain! % % \fi % % \CheckSum{100} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % \iffalse %<*driver> \documentclass[a4paper,11pt]{ltxdoc} \DisableCrossrefs \OnlyDescription \pagestyle{empty} \usepackage[german]{babel} \usepackage{typearea} \typearea{15} \usepackage{multicol} \begin{document} \DocInput{lastpage.dtx} \end{document} % % \fi % % \title{Das \textsf{lastpage} Paket v1.0b} % \author{Jochen R"utschlin} % \date{22.\ M"arz 1998} % \maketitle % % \thispagestyle{empty} % % \begin{abstract} % Dieses Paket speichert die Seitenzahl der letzten Dokumentseite im % Z"ahler |lastpage| und schreibt diesen in die Haupt-aux-Datei. Damit % wird eine Darstellung von Seitenzahlen der Art \glqq Seite 2 von 5\grqq\ % erm"oglicht. % \end{abstract} % % \noindent\rule{\hsize}{.4pt} % % \begin{multicols}{2} % Urspr"unglich verwendete ich die \textsf{lastpage}-Ver"-si"-on von Piet % van Oostrum aus dem \textsf{fancyheadings}-Paket, die noch f"ur % \LaTeX2.09 geschrieben war (allerdings auch problemlos unter \LaTeXe\ % verwendet werden konnte). % % K"urzlich stie"s ich auf die elegantere Version von Jeff Goldberg, der % den \LaTeXe-Befehl |\AtEndDocument| f"ur die Einbindung der Referenz % verwendete. % % \smallskip Nach diesen beiden Vorlagen habe ich meine Version des % \textsf{lastpage}-Pakets erstellt -- jedoch mit einem Unterschied: sowohl % van Oostrum als auch Goldberg verwendeten als Merker f"ur die letzte Seite % eine Referenz.\footnote{Wahrscheinlich lag bei der Wahl f"ur diese % Alternative die "Uberlegung zugrunde, da"s bei einer Referenz die % Meldungen "uber noch nicht vorliegende oder ge"anderte Refernzwerte % bereits in \LaTeX\ implementiert sind, was bei der Verwendung eines % Z"ahlers nicht der Fall ist.} Zur Darstellung der letzten Seitenzahl % mu"s mit |\pageref| die Referenz aufgel"ost werden, was unter % Umst"anden zu Problemen f"uhren kann\footnote{K"urzlich versuchte ich % einer Z"ahlvariablen den Abschnittswert einer Referenz unter % Verwendung des Befehls % \texttt{\bslash{}setcounter\{counter\}\{\bslash{}ref\{reference\}} % zuzuweisen, was kl"aglich scheiterte. Sowohl durch Protektion als auch % durch verschiedene Expandierungsreihenfolgen konnte ich nicht das % gew"unschte Ergebnis erzielen (obwohl ich fest davon "uberzeugt bin, % da"s es eine L"osung geben mu"s). Ein weiteres Problem tritt bei % dieser Zuweisung nat"urlich im ersten Druchlauf auf, weil da die % Referenz noch nicht belegt ist und \texttt{\bslash{}ref} zwei % Fragezeichen zur"uckliefert, die schlecht einer Z"ahlvariablen % zugewiesen werden k"onnen.\\Dies veranla"ste mich neben der % optischen Analogie zu \texttt{\bslash{}thepage} einen Z"ahler f"ur % das Festhalten der letzten Seitenzahl zu verwenden.}. Daher habe ich % mich entschlossen eine neue Z"ahlvariable einzuf"uhren, die wie auch die % Referenz am Ende des Dokuments mit dem richtigen Wert belegt in die % Haupt-aux-Datei geschrieben wird. Die Verwendung innerhalb des Dokuments % erfolgt einfach mit dem Aufruf\setlength{\fboxsep}{.8pt} % \fbox{\small\texttt{\bslash{}thelastpage}}, der eher an die % Verwendung des Seitenz"ahlers |page| erinnert, als bei der Verwendung % eine Referenz (was allerdings reine Geschmackssache ist). % % \medskip Im Abschnitt \emph{A few warnings}\footnote{Mir lag die Version % 1.0b vom 20.\ Juli 1994 vor.} geht Goldberg auf ein Problem der % Verwendung des |\AtEndDocument|-Befehls ein. Am Ende seiner Wunschliste % schl"agt er bis zur L"osung dieses Problems die Ausgabe einer Meldung % vor, die bei der "Ubersetzung "uber die Verwendung von |\AtEndDocument| % hinweist; diese Ausgabe nehme auch ich vor. % \end{multicols} % \StopEventually{\Finale} % % \iffalse %<*package> % \fi % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{lastpage} [1998/03/22 v1.0b package for referencing the last page (jr)] % \end{macrocode} % % \begin{macrocode} \newcounter{lastpage} % \end{macrocode} % % \begin{macrocode} \AtEndDocument{% \message{^^JAtEndDocument: used by lastpage^^J} \clearpage\addtocounter{page}{-1}% \if@filesw \immediate\write\@mainaux{\string\setcounter{lastpage}{\thepage}} \fi \addtocounter{page}{1}} % \end{macrocode} % \iffalse % % \fi % \Finale