diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-13 00:09:44 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-13 00:09:44 +0000 |
commit | 6f61dfc6e0759e2d9568a123ab033703de376c50 (patch) | |
tree | ef5fb9897cd4d2beea36f8a6265034eca8eb9b17 /Master/texmf-dist/tex/latex/totpages/totpages.sty | |
parent | af7677d2922783acbd8032893521899c9ed3a490 (diff) |
totpages
git-svn-id: svn://tug.org/texlive/trunk@1404 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/totpages/totpages.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/totpages/totpages.sty | 241 |
1 files changed, 241 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/totpages/totpages.sty b/Master/texmf-dist/tex/latex/totpages/totpages.sty new file mode 100644 index 00000000000..580f50f9a5a --- /dev/null +++ b/Master/texmf-dist/tex/latex/totpages/totpages.sty @@ -0,0 +1,241 @@ +%% +%% 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'. |