%% %% This is file `perpage.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% perpage.dtx (with options: `style') %% %% IMPORTANT NOTICE: %% %% For the copyright see the source file. %% %% Any modified versions of this file must be renamed %% with new filenames distinct from perpage.sty. %% %% For distribution of the original source see the terms %% for copying and modification in the file perpage.dtx. %% %% This generated file may be distributed as long as the %% original source files, as listed above, are part of the %% same distribution. (The sources need not necessarily be %% in the same archive or directory.) %% %% perpage is part of the bigfoot bundle for critical typesetting %% Copyright 2002, 03, 04, 05, 06 David Kastrup %% \NeedsTeXFormat{LaTeX2e} \def\next$#1: #2 #3${#2} \ProvidesPackage{perpage}[\next$Date: 2006/07/15 21:43:23 $ \next$Revision: 1.12 $ Reset/sort counters per page] \newcommand\AddAbsoluteCounter[1] {\@ifundefined{c@abs#1}{% \expandafter\newcount\csname c@abs#1\endcsname \global\value{abs#1}\@ne \global\expandafter\let\csname cl@abs#1\endcsname\@empty \expandafter\xdef\csname theabs#1\endcsname{% \noexpand\number \csname c@abs#1\endcsname}% \global\@namedef{c@pabs@#1}{\z@=\z@{% \stepcounter{abs#1}% \afterassignment}\count@}% \@addtoreset{pabs@#1}{#1}}{}} \AddAbsoluteCounter{page} \def\theabspage{\ifx\thepage\relax \noexpand\theabspage \else \number\c@abspage \fi} \newcommand*\MakePerPage[2][\@ne]{% \pp@makeperpage{#2}\c@pchk@{#1}} \newcommand*\MakeSorted[1]{% \setcounter{#1}{\z@}% \pp@makeperpage{#1}\c@schk@{\@ne}} \newcommand*\MakeSortedPerPage[2][\@ne]{% \pp@makeperpage{#2}\c@spchk@{#1}} \@onlypreamble\MakePerPage \@onlypreamble\MakeSorted \@onlypreamble\MakeSortedPerPage \def\pp@makeperpage#1#2#3{% \global\expandafter\mathchardef\csname c@pp@r@#1\endcsname=#3\relax \global\@namedef{c@pchk@#1}{#2{#1}}% \newcounter{pp@a@#1}% \setcounter{pp@a@#1}{#3}% \addtocounter{pp@a@#1}\m@ne \@addtoreset{pchk@#1}{#1}% \AtBeginDocument{\setcounter{pp@a@#1}\z@}% \edef\next{\noexpand\AtEndDocument{\noexpand\setcounter{pp@a@#1}{% \number\value{pp@a@#1}}}}\next} \@onlypreamble\pp@makeperpage \def\pp@chkvlist{% \ifcase \ifvmode \ifx\lastnodetype\@undefined \ifdim-\@m\p@=\prevdepth\ifdim\lastskip=\z@\ifnum\lastpenalty=\z@ \@ne \fi\fi\fi \else \ifnum\lastnodetype=\m@ne \@ne \fi \fi \fi \z@ \or \PackageWarning{perpage}{\string\stepcounter\space probably at start of vertical list:^^JYou might need to use \string\leavevmode\space before it to avoid vertical shifts}% \fi} \def\pp@fetchctr#1{\expandafter\expandafter\expandafter\pp@fetchctrii \csname pp@r@#1@\number\value{pp@a@#1}\endcsname \@empty\@empty} \global\let\theperpage\@empty \def\pp@fetchctrii#1#2#3{\edef\pp@label{#1}% \edef\pp@page{#2}% \gdef\theperpage{#3}} \def\c@pchk@#1{\z@=\z@ \begingroup \pp@fetchctr{#1}\let\next\pp@page \addtocounter{pp@a@#1}\@ne \pp@fetchctr{#1}% \ifcase\ifx\next\pp@page\else\@ne\fi \ifnum\value{#1}=\z@\@ne\fi\z@ \else \setcounter{#1}{\value{pp@r@#1}}% \fi \pp@writectr\pp@pagectr{#1}{\noexpand\theabspage}} \def\pp@writectr#1#2#3{\edef\next{% \string#1{#2}{\number\value{pp@a@#2}}{#3}{\noexpand\thepage}}% \pp@chkvlist \dimen@=\lastkern \ifdim\dimen@=\z@ \else \unkern\fi \protected@write\@auxout{}{\next}% \ifdim\dimen@=\z@ \nobreak \else \kern\dimen@\fi \afterassignment\endgroup\count@} \def\pp@pagectr#1#2#3#4{\@ifundefined{c@pp@a@#1}{}{% \addtocounter{pp@a@#1}\@ne \edef\next{\noexpand \@newl@bel{pp@r@#1}{#2}{{\number\value{pp@a@#1}}{#3}% {#4}}}\next}} \def\c@schk@#1{\z@=\z@ \begingroup \addtocounter{pp@a@#1}\@ne \ifnum\value{#1}=\@ne \expandafter\xdef\csname pp@g@#1\endcsname{\number\value{pp@a@#1}}% \edef\next{\noexpand\AtEndDocument{\global\let \expandafter\noexpand\csname pp@g@#1@\number\value{pp@a@#1}\endcsname \relax}}\next \fi \pp@fetchctr{#1}% \ifx\pp@page\@empty \else \setcounter{#1}{\pp@label}\fi \pp@writectr\pp@spagectr{#1}{\csname pp@g@#1\endcsname}}% \def\pp@spagectr#1#2#3#4{\@ifundefined{c@pp@a@#1}{}{% \count@0\csname pp@g@#1@#3\endcsname \advance\count@\@ne \expandafter\xdef\csname pp@g@#1@#3\endcsname{\number\count@}% \edef\next{\noexpand \@newl@bel{pp@r@#1}{#2}{{\number\count@}{#3}% {#4}}}\next}} \def\c@spchk@#1{\z@=\z@ \begingroup \addtocounter{pp@a@#1}\@ne \pp@fetchctr{#1}% \ifx\pp@page\@empty \else \setcounter{#1}{\pp@label}\fi \pp@writectr\pp@ppagectr{#1}{\noexpand\theabspage}} \def\pp@ppagectr#1#2#3#4{\@ifundefined{c@pp@a@#1}{}{% \def\next{#3}% \expandafter\ifx\csname pp@page@#1\endcsname\next \addtocounter{pp@a@#1}\@ne \else \setcounter{pp@a@#1}{\value{pp@r@#1}}% \fi \global\expandafter\let\csname pp@page@#1\endcsname\next \edef\next{\noexpand \@newl@bel{pp@r@#1}{#2}{{\number\value{pp@a@#1}}{#3}% {#4}}}\next}} \endinput %% %% End of file `perpage.sty'.