summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/bigfoot/perpage.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-07-17 22:56:22 +0000
committerKarl Berry <karl@freefriends.org>2006-07-17 22:56:22 +0000
commitd9fe66749d8072f377522910c593df4705a9dc66 (patch)
treeca9258ad5cb90a44ec3c024220a97b98572b214a /Master/texmf-dist/tex/latex/bigfoot/perpage.sty
parent037d0c8b95024ed72ea62802db4f25231049bb7d (diff)
bigfoot update (18jul06)
git-svn-id: svn://tug.org/texlive/trunk@1872 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/bigfoot/perpage.sty')
-rw-r--r--Master/texmf-dist/tex/latex/bigfoot/perpage.sty159
1 files changed, 159 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/bigfoot/perpage.sty b/Master/texmf-dist/tex/latex/bigfoot/perpage.sty
new file mode 100644
index 00000000000..3f4d8e216f4
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bigfoot/perpage.sty
@@ -0,0 +1,159 @@
+%%
+%% 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 <dak@gnu.org>
+%%
+\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'.