%% %% This is file `totpages.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% totpages.dtx (with options: `package') %% %% Copyright (c) [2005] by Wilhelm Mueller. All rights reserved. %% %% This file is part of the Totpages package %% %% This program may be redistributed and/or modified under the terms %% of the LaTeX Project Public License, either version 1.0 of this %% license, or (at your option) any later version. %% The latest version of this license is in %% CTAN:macros/latex/base/lppl.txt. %% %% The Totpages package contains these files: %% %% totpages.dtx %% totpages.ins %% totexmpl.tex %% %% Error Reports in case of UNCHANGED versions to %% %% Wilhelm Mueller %% Herbststrasse 66 %% D-28215 Bremen %% muewi@ACM.org %% \NeedsTeXFormat{LaTeX2e}[1995/12/01] %% \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 \~} %% %% =================================================================== %% @LaTeX-style-file{ %% author = {Wilhelm M\"uller}, %% version = "2.00", %% date = "19 September 2005", %% filename = "totpages.sty", %% address = {Wilhelm M\"uller %% Herbststra\ss{}e 66 %% D-28215 Bremen %% telephone = "+49-421-1692525", %% email = "muewi@acm.org", %% codetable = "ISO/ASCII", %% keywords = "LaTeX, pages", %% supported = "yes", %% docstring = "LaTeX package which sets count1 to the total %% number of pages in the document. %% Uses the everyshi and keyval packages." %% %% } %% =================================================================== \ProvidesPackage{totpages} [2005/09/19 v2.00 Totpages Package (muewi)] \NeedsTeXFormat{LaTeX2e}[1995/12/01] \RequirePackage{everyshi}[1994/12/09] \RequirePackage{keyval}[1998/06/05] \newif\ifTotPagesToDvi\TotPagesToDvitrue \newif\ifPagesPerSheet\PagesPerSheetfalse \newcommand{\TotPerSheet}{} \define@key{Tot}{dvi}[x]{\TotPagesToDvitrue} \define@key{Tot}{nodvi}[x]{\TotPagesToDvifalse} \define@key{Tot}{nopagespersheet}[x]{\PagesPerSheetfalse} \define@key{Tot}{pagespersheet}{% \lowercase{\def\Tot@temp{#1}}% \ifx\Tot@temp\@empty \else \def\Tot@no{no} \ifx\Tot@temp\Tot@no \else \edef\TotPerSheet{#1} \PagesPerSheettrue \fi \fi } \def\Tot@ptionsWithKV#1{% \let\@tempc\relax \let\Tot@tempa\@empty \def\Tot@tempopt##1=##2=##3\Tot@tempopt{% \@ifundefined{KV@#1@##1}% {}% {% \edef\Tot@tempa{\Tot@tempa,\CurrentOption,}% \@expandtwoargs\@removeelement\CurrentOption \@unusedoptionlist\@unusedoptionlist }% }% \@for\CurrentOption:=\@classoptionslist\do{% \expandafter\Tot@tempopt\CurrentOption==\Tot@tempopt }% \edef\Tot@tempa{% \noexpand\setkeys{#1}{% \Tot@tempa\@ptionlist{\@currname.\@currext}% }% }% \Tot@tempa \let\Tot@no\relax \let\Tot@temp\relax \let\Tot@tempa\relax \let\Tot@tempopt\relax \let\Tot@ptionsWithKV\undefined } \Tot@ptionsWithKV{Tot}% \AtEndOfPackage{\let\@unprocessedoptions\relax} \ifPagesPerSheet \ifnum 1 > \TotPerSheet \PackageError{totpages}{% The number of pages per sheet must be positive.}{% You cannot print less than one TeX page per sheet of paper.\MessageBreak The option pagespersheet has been disabled.} \PagesPerSheetfalse \fi \fi \ifTotPagesToDvi \countdef\c@TotPages=1 \c@TotPages=0 \let\cl@TotPages\@empty \newcommand\theTotPages{\arabic{TotPages}} \else \newcounter{TotPages} \fi \let\ifTotPagesToDvi\undefined \let\TotPagesToDvitrue\undefined \let\TotPagesToDvifalse\undefined \EveryShipout{\stepcounter{TotPages}} \AtBeginDocument{% \@ifpackageloaded{count1to}{% \PackageError{totpages}{% Can't use both, count1to and totpages}{% You should read the documentation of these packages and\MessageBreak decide which one is more appropriate for your intentions.} }{}% \@ifpackageloaded{lastpage}{% \PackageError{totpages}{% Can't use both, lastpage and totpages}{% You should read the documentation of these packages and\MessageBreak decide which one is more appropriate for your intentions.} }{}% \ifx\undefined\TotPages@putlabel \@ifpackageloaded{hyperref}{% \ifx\undefined\Hy@WarningNoLine \let\Hy@WarningNoLine\hyper@warn \fi \ifHy@pageanchor \else \Hy@WarningNoLine{% The \string\ref{TotPages} link will not provide hyperlinks\MessageBreak with disabled option `pageanchor'% }% \fi \if@filesw \def\TotPages@putlabel{% \addtocounter{page}{-1}% \begingroup \let\@number\@firstofone \ifHy@pageanchor \ifHy@hypertexnames \ifHy@plainpages \def\Hy@temp{\arabic{page}}% \else \let\textlatin\@firstofone \edef\Hy@temp{\thepage}% \fi \else \def\Hy@temp{\the\Hy@pagecounter}% \fi \fi \immediate\write\@mainaux{% \string\newlabel {TotPages}{{\theTotPages}{\thepage}{}{% \ifHy@pageanchor page.\Hy@temp\fi}{}}% }% \endgroup \addtocounter{page}{1}% }% \fi }{% \if@filesw \def\TotPages@putlabel{% \addtocounter{page}{-1}% \immediate\write\@mainaux{% \string\newlabel{TotPages}{{\theTotPages}{\thepage}}% }% \addtocounter{page}{1}% }% \fi }% \fi \ifPagesPerSheet \ifx\undefined\TotSheets \newcommand{\TotSheets}{0000} \fi \def\TotPages@putSheets{% \addtocounter{TotPages}{\TotPerSheet} \addtocounter{TotPages}{-1} \divide \value{TotPages} by \TotPerSheet \edef\Tot@temp{\arabic{TotPages}} \ifx\Tot@temp\TotSheets \else \PackageWarning{totpages}{% The number of sheets may have changed (\TotSheets => \Tot@temp).\MessageBreak You should run your document through the formatter again.} \fi \if@filesw \immediate\write\@mainaux{% \string\gdef\string\TotSheets{\Tot@temp}}% \fi }% \else \let\TotSheets\undefined \fi \if@filesw \AtEndDocument{% \clearpage \TotPages@putlabel }% \fi \ifPagesPerSheet \AtEndDocument{\TotPages@putSheets} \fi \let\ifPagesPerSheet\undefined \let\PagesPerSheettrue\undefined \let\PagesPerSheetfalse\undefined } \endinput %% %% End of file `totpages.sty'.