diff options
author | Karl Berry <karl@freefriends.org> | 2011-08-13 22:16:14 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2011-08-13 22:16:14 +0000 |
commit | 6b87575670fd3d76e2deb61631f32402f3b59a27 (patch) | |
tree | 1cac454180659b0064c90a25d4b4222980eb5130 /Master/texmf-dist/tex/latex/pageslts/pageslts.sty | |
parent | de948fd0d23b011d22f685fc2b3a16e1113ca2bc (diff) |
pageslts (12aug11, was pagesLTS)
git-svn-id: svn://tug.org/texlive/trunk@23534 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/pageslts/pageslts.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/pageslts/pageslts.sty | 1238 |
1 files changed, 1238 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/pageslts/pageslts.sty b/Master/texmf-dist/tex/latex/pageslts/pageslts.sty new file mode 100644 index 00000000000..efc29f2b8b5 --- /dev/null +++ b/Master/texmf-dist/tex/latex/pageslts/pageslts.sty @@ -0,0 +1,1238 @@ +%% +%% This is file `pageslts.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% pageslts.dtx (with options: `package') +%% +%% This is a generated file. +%% +%% IMPORTANT NOTICE: +%% On the first page backslash pagenumbering should be called +%% (with the appropriate argument out of e.g. +%% * roman - Lowercase Roman numerals: i, ii, iii, iv,... +%% * Roman - Uppercase Roman numerals: I, II, III, IV,... +%% * arabic - Arabic numerals: 1, 2, 3, 4,... +%% * alph - Lowercase letters: a, b, c, d,... +%% * Alph - Uppercase letters: A, B, C, D,... +%% * fnsymbol - Footnote symbols: *, ^^86 (ddagger), ^^87 (dddagger), +%% ^^a7 (mathsection),... +%% ). The command backslash pagenumbering is renewed, but no change +%% should be visible to the output text, because only labels are added. +%% backslash OrigPagenumbering can be used to get the original meaning +%% of backslash pagenumbering, but in that case this package does not +%% see the change in the page numbering scheme and will make mistakes. +%% The package takes options. +%% +%% The usual disclaimers apply: +%% If it doesn't work right that's your problem. +%% (Nevertheless, send an e-mail to the maintainer +%% when you find an error in this package.) +%% +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either +%% version 1.3c of this license or (at your option) any later +%% version. This version of this license is in +%% http://www.latex-project.org/lppl/lppl-1-3c.txt +%% and the latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3c or later is part of all distributions of +%% LaTeX version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status "maintained". +%% +%% The Current Maintainer of this work is H.-Martin Muench +%% (Martin dot Muench at Uni-Bonn dot de). +%% +%% This package first started as a revision of the lastpage +%% package of Jeffrey P. Goldberg (jeffrey+news at goldmark dot org), +%% but it became obviouse that a replacement was needed. +%% +%% This work consists of the main source file pageslts.dtx +%% and the derived files +%% pageslts.sty, pageslts.pdf, pageslts.ins, pageslts.drv, +%% pageslts-example.tex. +%% +\NeedsTeXFormat{LaTeX2e}[1994/06/01] +\ProvidesPackage{pageslts}[2011/08/08 v1.2a + Refers to special pages' numbers/names (HMM)] + +%% Allows for things like\\ +%% |Page \thepage\ (\theCurrentPage; local: \theCurrentPageLocal) of % +%% \lastpageref{pagesLTS.roman}(\lastpageref{pagesLTS.roman.local}) + % +%% \lastpageref{pagesLTS.Roman}(\lastpageref{pagesLTS.Roman.local}) + % +%% \lastpageref{pagesLTS.arabic}(\lastpageref{pagesLTS.arabic.local}) + % +%% \lastpageref{pagesLTS.fnsymbol}(\lastpageref{pagesLTS.fnsymbol.local}) + % +%% \lastpageref{pagesLTS.alph}(\lastpageref{pagesLTS.alph.local}) + % +%% \lastpageref{pagesLTS.Alph}(\lastpageref{pagesLTS.Alph.local}) = % +%% \lastpageref{LastPages} pages.|\\ +%% to get\\ +%% 'Page d (57; local: 4) of ii(2) + XX(20) + *(1) + 30(30) + e(5) + C(3) = 61 pages.'. + +\@ifpackageloaded{pagesLTS}{% + \def\pagesLTS@doubleload{p@gesLTSlo@ded} + \ifx\pagesLTS@loaded\pagesLTS@doubleload% + \PackageError{pageslts}{Requested pagesLTS instead of pageslts}{% + You have requested package `pagesLTS'. This package is now named `pageslts'.\MessageBreak% + Requesting `pagesLTS' as well as `pageslts' leads to loading the same package\MessageBreak% + twice (and results in errors). Loading of `pageslts' will therefore be\MessageBreak% + abandoned now. To fix this problem, please look in the \jobname.log file for\MessageBreak% + LaTeX Warning: You have requested package `pagesLTS',\MessageBreak% + \space \space \space \space \space \space \space \space \space \space \space \space \space% + \space \space but the package provides `pageslts'.\MessageBreak% + and change the package call in the calling style/document.\MessageBreak% + If a style file made the mistake, please inform its maintainer and/or the\MessageBreak% + maintainer of the pageslts package about it (after making sure you have\MessageBreak% + the recent version of that style file).\MessageBreak% + Thank you and sorry for the inconvenience!\MessageBreak% + } + \endinput + \fi + }{% \relax + } + +\gdef\pagesLTS@loaded{p@gesLTSlo@ded} + +\RequirePackage{atveryend}[2011/04/23]% v1.7 +\RequirePackage{everyshi}[2001/05/15]% v3.00 +\RequirePackage{kvoptions}[2010/02/22]% v3.7 +\RequirePackage{undolabl}[2011/08/08]% v1.0j +\RequirePackage{rerunfilecheck}[2011/04/15]% v1.7 +%% pageslts package uses Prelim@EveryShipout code from the +%% prelim2e package [2009/05/29 v1.3] by Martin Schr\"{o}der, thanks! + +%% pageslts may work with earlier versions of those packages, +%% but this was not tested. Please consider updating your packages +%% to the most recent version (if they are not already the most +%% recent version). + +%% The recent version of the endfloat package is v2.4i as of 1995/10/11. +%% The pageslts package is not fully compatible with version 2.0 +%% (and earlier) of the endfloat package, because those versions +%% redefined the \enddocument command. + +\SetupKeyvalOptions{family = pagesLTS,prefix = pagesLTS@} +\DeclareBoolOption[true]{pagecontinue}% \pagesLTS@pagecontinue +\DeclareStringOption[ab]{alphMult} +\DeclareStringOption[AB]{AlphMulti} +\DeclareBoolOption[true]{romanMult} +\DeclareBoolOption[true]{RomanMulti} +\DeclareBoolOption[true]{fnsymbolmult} + +\ProcessKeyvalOptions* + +\def\pagesLTS@zero{0} +\def\pagesLTS@one{1} +\def\pagesLTS@two{2} +\def\pagesLTS@three{3} + +\ifpagesLTS@pagecontinue% + \PackageInfo{pageslts}{Option pagecontinue enabled\MessageBreak% + (maybe by default):\MessageBreak% + The pageslts package will continue the page numbering,\MessageBreak% + when the same page numbering scheme is used twice.\MessageBreak% + If you do not want this, call pageslts with option\MessageBreak% + pagecontinue=false (or use \string\setcounter{page}=1).\MessageBreak% + } +\else + \PackageWarningNoLine{pageslts}{Option pagecontinue is false:\MessageBreak% + The pageslts package was used, but the option\MessageBreak% + pagecontinue was set to false.\MessageBreak% + If you want the page numbers to be continued,\MessageBreak% + when the same page numbering scheme is used twice,\MessageBreak% + please call pageslts with option pagecontinue=true,\MessageBreak% + otherwise the page number is reset to one each time\MessageBreak% + the page numbering scheme is changed.\MessageBreak% + For details please see the documentation!\MessageBreak% + } +\fi + +\def\pagesLTS@ab{ab} +\def\pagesLTS@bb{bb} +\def\pagesLTS@ABi{AB} +\def\pagesLTS@BBi{BB} + +\ifx\pagesLTS@alphMult\pagesLTS@ab% + \ifpagesLTS@pagecontinue% \relax + \else + \PackageWarningNoLine{pageslts}{Option pagecontinue=false used,\MessageBreak% + but not alphMult=0.\MessageBreak% + Now setting alphMult=0.\MessageBreak% + } + \setkeys{pagesLTS}{alphMult=0} + \fi +\else + \ifx\pagesLTS@alphMult\pagesLTS@bb% + \ifpagesLTS@pagecontinue% \relax + \else + \PackageWarningNoLine{pageslts}{Option pagecontinue=false used,\MessageBreak% + but not alphMult=0.\MessageBreak% + Now setting alphMult=0.\MessageBreak% + } + \setkeys{pagesLTS}{alphMult=0} + \fi + \else + \ifx\pagesLTS@alphMult\pagesLTS@zero% + \PackageWarningNoLine{pageslts}{% + Option alphMult=0 found:\MessageBreak% + The pageslts package was used, but the option\MessageBreak% + alphMult was set to 0 (zero).\MessageBreak% + If you want the page numbers to be extended\MessageBreak% + after z, you have to organize this yourself now.\MessageBreak% + For automatic continuation, please use the\MessageBreak% + alphalph package and call pageslts\MessageBreak% + with option alphMult=ab (for aa, ab, ac, ad,...) or\MessageBreak% + with option alphMult=bb (for aa, bb, cc, dd,...).\MessageBreak% + For details please see the documentation!\MessageBreak% + } + \else + \PackageError{pageslts}{Unknown option value}{% + The pageslts package was used with option\MessageBreak% + alphMult= \pagesLTS@alphMult . Only values\MessageBreak% + ab, bb, and 0 (zero) are valid.\MessageBreak% + The default ab is set.\MessageBreak% + For details please see the documentation!\MessageBreak% + } + \setkeys{pagesLTS}{alphMult=ab} + \fi + \fi +\fi + +\ifx\pagesLTS@AlphMulti\pagesLTS@ABi% + \ifpagesLTS@pagecontinue% \relax + \else + \PackageWarningNoLine{pageslts}{Option pagecontinue=false used,\MessageBreak% + but not AlphMulti=0.\MessageBreak% + Now setting AlphMulti=0.\MessageBreak% + } + \setkeys{pagesLTS}{AlphMulti=0} + \fi +\else + \ifx\pagesLTS@AlphMulti\pagesLTS@BBi% + \ifpagesLTS@pagecontinue% \relax + \else + \PackageWarningNoLine{pageslts}{Option pagecontinue=false used,\MessageBreak% + but not AlphMulti=0.\MessageBreak% + Now setting AlphMulti=0.\MessageBreak% + } + \setkeys{pagesLTS}{AlphMulti=0} + \fi + \else + \ifx\pagesLTS@AlphMulti\pagesLTS@zero% + \PackageWarningNoLine{pageslts}{% + Option AlphMulti=0 found:\MessageBreak% + The pageslts package was used, but the option\MessageBreak% + AlphMulti was set to 0 (zero).\MessageBreak% + If you want the page numbers to be extended\MessageBreak% + after Z, you have to organize this yourself now.\MessageBreak% + For automatic continuation, please use the\MessageBreak% + alphalph package and call pageslts\MessageBreak% + with option AlphMulti=AB (for AA, AB, AC, AD,...) or\MessageBreak% + with option AlphMulti=BB (for AA, BB, CC, DD,...).\MessageBreak% + For details please see the documentation!\MessageBreak% + } + \else + \PackageError{pageslts}{Unknown option value}{% + The pageslts package was used with option\MessageBreak% + AlphMulti= \pagesLTS@AlphMulti . Only values\MessageBreak% + AB, BB, and 0 (zero) are valid.\MessageBreak% + The default AB is set.\MessageBreak% + For details please see the documentation!\MessageBreak% + } + \setkeys{pagesLTS}{AlphMulti=AB} + \fi + \fi +\fi + +\ifx\pagesLTS@alphMult\pagesLTS@zero% \relax +\else \RequirePackage{alphalph}[2010/04/18]% v2.3 +\fi + +\ifx\pagesLTS@AlphMulti\pagesLTS@zero% \relax +\else \RequirePackage{alphalph}[2010/04/18]% v2.3 +\fi + +\ifpagesLTS@fnsymbolmult% +\RequirePackage{alphalph}[2010/04/18]% v2.3 +\fi + +\ifpagesLTS@romanMult% + \ifpagesLTS@pagecontinue% \relax + \else + \PackageWarningNoLine{pageslts}{Option pagecontinue=false used,\MessageBreak% + but also romanMult.\MessageBreak% + Now setting romanMult=false.\MessageBreak% + } + \setkeys{pagesLTS}{romanMult=false} + \fi +\fi +\ifpagesLTS@romanMult% + \PackageInfo{pageslts}{Option romanMult enabled\MessageBreak% + (maybe by default):\MessageBreak% + The pageslts package will extend the page numbering\MessageBreak% + of the roman scheme below i with\MessageBreak% + 0, -i, -ii, -iii, -iv,...\MessageBreak% + If you do not want this, call pageslts with option\MessageBreak% + romanMult=false.\MessageBreak% + } +\else + \PackageWarningNoLine{pageslts}{Option romanMult is set to false:\MessageBreak% + The pageslts package was used, but the option\MessageBreak% + romanMult was set to false.\MessageBreak% + If you want the page numbering of the roman scheme\MessageBreak% + to be extended below i,\MessageBreak% + please call pageslts with option romanMult=true,\MessageBreak% + otherwise zero and negative page numbers of the\MessageBreak% + roman scheme will need to be defined otherwise.\MessageBreak% + For details please see the documentation!\MessageBreak% + } +\fi + +\ifpagesLTS@RomanMulti% + \ifpagesLTS@pagecontinue% \relax + \else + \PackageWarningNoLine{pageslts}{Option pagecontinue=false used,\MessageBreak% + but also RomanMulti.\MessageBreak% + Now setting RomanMulti=false.\MessageBreak% + } + \setkeys{pagesLTS}{RomanMulti=false} + \fi +\fi +\ifpagesLTS@RomanMulti% + \PackageInfo{pageslts}{Option RomanMulti enabled\MessageBreak% + (maybe by default):\MessageBreak% + The pageslts package will extend the page numbering\MessageBreak% + of the Roman scheme below I with\MessageBreak% + 0, -I, -II, -III, -IV,...\MessageBreak% + If you do not want this, call pageslts with option\MessageBreak% + RomanMulti=false.\MessageBreak% + } +\else + \PackageWarningNoLine{pageslts}{Option RomanMulti is set to false:\MessageBreak% + The pageslts package was used, but the option\MessageBreak% + RomanMulti was set to false.\MessageBreak% + If you want the page numbering of the Roman scheme\MessageBreak% + to be extended below i,\MessageBreak% + please call pageslts with option RomanMulti=true,\MessageBreak% + otherwise zero and negative page numbers of the\MessageBreak% + Roman scheme will need to be defined otherwise.\MessageBreak% + For details please see the documentation!\MessageBreak% + } +\fi + +\ifpagesLTS@fnsymbolmult% + \ifpagesLTS@pagecontinue% \relax + \else + \PackageWarningNoLine{pageslts}{Option pagecontinue=false used,\MessageBreak% + but also fnsymbolmult.\MessageBreak% + Now setting fnsymbolmult=false.\MessageBreak% + } + \setkeys{pagesLTS}{fnsymbolmult=false} + \fi +\fi +\ifpagesLTS@fnsymbolmult% + \PackageInfo{pageslts}{Option fnsymbolmult enabled\MessageBreak% + (maybe by default):\MessageBreak% + The pageslts package will extend the page numbering\MessageBreak% + of the footnotesymbol scheme using the alphalph\MessageBreak% + package.\MessageBreak% + If you do not want this, call pageslts with option\MessageBreak% + fnsymbolmult=false.\MessageBreak% + } +\else + \PackageWarningNoLine{pageslts}{% + Option fnsymbolmult is set to false:\MessageBreak% + The pageslts package was used, but the option\MessageBreak% + fnsymbolmult was set to false.\MessageBreak% + If you want the page numbering of the footnotesymbol\MessageBreak% + scheme to be extended using the alphalph package,\MessageBreak% + please call pageslts with option fnsymbolmult=true,\MessageBreak% + otherwise page numbers of the footnotesymbol scheme\MessageBreak% + greater than nine will need to be defined otherwise.\MessageBreak% + For details please see the documentation!\MessageBreak% + } +\fi + +\def\pagesLTS@pnc{0} +\def\pagesLTS@called{0} +\def\pagesLTS@fns{fnsymbol} +\def\pagesLTS@alph{alph} +\def\pagesLTS@Alph{Alph} +\def\pagesLTS@AlphAlph{0} +\def\pagesLTS@hyper{0} +\def\pagesLTS@rerun{0} +\def\pagesLTS@eso{0} +\def\pagesLTS@esov{0} +\def\lastpageref{\lastpagereftxt} +\def\pagesLTS@undolable{none} +\def\pncmissing{0} +\def\pagesLTS@SK{0} +\def\pagesLTS@messageNPN{% + The pageslts package was used, but\MessageBreak% + \string\pagenumbering \MessageBreak% + was not called at the beginning of the document\MessageBreak% + (maybe earlier or later).\MessageBreak% + Please use \string\pagenumbering \MessageBreak% + (with an argument like arabic, roman, Roman,\MessageBreak% + fnsymbol, alph, or Alph) at the beginning\MessageBreak% + of your document! Otherwise your document\MessageBreak% + will probably compile, but the pageslts\MessageBreak% + package might not be able to get all labels\MessageBreak% + for the references to the respective pages\MessageBreak% + right.\MessageBreak% + } + +\if@filesw% \relax +\else + \PackageError{pageslts}{No auxiliary file allowed.}{% + The pageslts package was not allowed to write to an .aux file.\MessageBreak + This package does not work without access to an .aux file.\MessageBreak + Press Ctrl+Z to exit.\MessageBreak + } +\fi + +\let\OrigPagenumbering\pagenumbering + +\newcounter{CurrentPage} +\setcounter{CurrentPage}{1} +\def\theCurrentPageLocal{\arabic{pagesLTS.current.local.\pagesLTS@pnc}} +\newcounter{pagesLTS.pagenr} +\newcounter{pagesLTS.current.local.0} +\setcounter{pagesLTS.current.local.0}{1} +\newcounter{pagesLTS.pnc.0} + +\newcommand{\xroman}[1]{% + \ifnum\value{#1}>0% + \roman{#1}% + \else% + \ifnum\value{#1}<0% + -\romannumeral\number-\arabic{#1}% + \else% + 0% + \fi% + \fi% + } + +\newcommand{\XRoman}[1]{% + \ifnum\value{#1}>0% + \Roman{#1}% + \else% + \ifnum\value{#1}<0% + -\expandafter\@slowromancap\romannumeral\number-\arabic{#1}@% + \else% + 0% + \fi% + \fi% + } + +\newcommand{\XXRoman}[1]{\XRoman{#1}% + \PackageError{pageslts}{Old command \string\XXRoman\space found}{Replaced by \string\XRoman.}% + } + +\newcommand{\pagesLTS@ifcounter}[1]{% + \@ifundefined{c@#1}{\newcounter{#1}}{\relax}% + } + +\newcommand{\lastpages}[2]{% + \pagesLTS@ifcounter{pagesLTS.#1.#2.local.cnt}% + \arabic{pagesLTS.#1.#2.local.cnt}% + } + +\newcommand{\pagesLTS@writelabel}[1]{% + \addtocounter{page}{+1}% + \pagesLTS@putlabel{pagesLTS.#1}{\thepage}{1} + \addtocounter{page}{-1}% + \ifx\pagesLTS@pnc\pagesLTS@zero% \relax + \else% + \addtocounter{page}{+1}% + \pagesLTS@putlabel{pagesLTS.#1.local}{\theCurrentPageLocal}{1} + \addtocounter{page}{-1}% + \fi% + } + + +%% The following code is from Heiko Oberdiek [2010/04/18], %% +%% expanding his alphalph package as of 2010/04/18, v2.3. (Thanks!) %% +\newcommand*{\erroralphalph}[2]{% + \ifnum\value{#2}>0% + #1{\value{#2}}% + \else% + \ifnum\value{#2}<0% + -#1{\expandafter\@gobble\the\value{#2}}% + \else% + 0% + \fi% + \fi% + } +%% End of code from Heiko Oberdiek %% +%% Check and Error/Warning messages have been moved to \EveryShipout, %% +%% because messages inside e.g. the \pageref command can cause trouble. %% + + +\newcommand{\expandPagenumbering}[1]{% + \let\Origthepage\thepage% + \def\pagesLTS@tmpC{arabic}% + \ifx\pagesLTS@pnc\pagesLTS@tmpC% \relax + \else% + \def\pagesLTS@tmpC{roman}% + \ifx\pagesLTS@pnc\pagesLTS@tmpC% + \ifpagesLTS@romanMult% + \renewcommand*{\thepage}{\xroman{page}}% + \fi% + \else% + \def\pagesLTS@tmpC{Roman}% + \ifx\pagesLTS@pnc\pagesLTS@tmpC% + \ifpagesLTS@RomanMulti% + \renewcommand*{\thepage}{\XRoman{page}}% + \fi% + \else% + \ifx\pagesLTS@pnc\pagesLTS@alph% + \ifx\pagesLTS@alphMult\pagesLTS@ab% + \renewcommand*{\thepage}{\erroralphalph{\alphalph}{page}}% + \else \ifx\pagesLTS@alphMult\pagesLTS@bb% + \renewcommand*{\thepage}{\erroralphalph{\alphMult}{page}}% + \fi% + \fi% + \else% + \ifx\pagesLTS@pnc\pagesLTS@Alph% + \ifx\pagesLTS@AlphMulti\pagesLTS@ABi% + \renewcommand*{\thepage}{\erroralphalph{\AlphAlph}{page}}% + \else \ifx\pagesLTS@AlphMulti\pagesLTS@BBi% + \renewcommand*{\thepage}{\erroralphalph{\AlphMult}{page}}% + \fi% + \fi% + \else% + \ifx\pagesLTS@pnc\pagesLTS@fns% + \ifpagesLTS@fnsymbolmult% + \renewcommand*{\thepage}{\erroralphalph{\fnsymbolmult}{page}}% + \fi% + \else% + \PackageError{pageslts}{unknown page numbering scheme}{% + The pageslts package encountered the unknown\MessageBreak% + page numbering scheme\MessageBreak% + `#1'. \MessageBreak% + If this is no typing mistake, it might work\MessageBreak% + - or it might not work.\MessageBreak% + \@ehc% + } + \fi% + \fi% + \fi% + \fi% + \fi% + \fi% + \let\pagesLTS@tmpC\undefined% + } + +\renewcommand{\pagenumbering}[1]{% + \edef\pagesLTS@tmpA{#1}% + \ifx\pagesLTS@pnc\pagesLTS@fns% + \pagesLTS@ifcounter{pagesLTS.fnsymbol.local}% + \fi% + \ifx\pagesLTS@tmpA\pagesLTS@fns% + \pagesLTS@ifcounter{pagesLTS.fnsymbol.local}% + \fi% + \ifx\pagesLTS@pnc\pagesLTS@tmpA% \relax + \else% + \ifnum \value{CurrentPage}>1% + \addtocounter{page}{-1}% + \addtocounter{pagesLTS.current.local.\pagesLTS@pnc}{-1}% + \newcounter{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.count}% + \setcounter{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.count}{% + \value{pagesLTS.current.local.\pagesLTS@pnc}}% + \ifx\pagesLTS@pnc\pagesLTS@fns% + \ifnum \value{pagesLTS.pnc.\pagesLTS@pnc}>1% + \mathchardef\pagesLTS@tmpa=\arabic{pagesLTS.pnc.0}% + \setcounter{pagesLTS.pnc.0}{\value{pagesLTS.pnc.\pagesLTS@pnc}}% + \addtocounter{pagesLTS.pnc.0}{-1}% + \addtocounter{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.count}{% + -\value{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.0}.local.count}}% + \setcounter{pagesLTS.pnc.0}{\pagesLTS@tmpa}% + \fi% + \else% + \pagesLTS@writelabel{\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}}% + \ifnum \value{pagesLTS.pnc.\pagesLTS@pnc}<2% + \pagesLTS@writelabel{\pagesLTS@pnc}% + \else% + \mathchardef\pagesLTS@tmpa=\arabic{pagesLTS.pnc.0}% + \setcounter{pagesLTS.pnc.0}{\value{pagesLTS.pnc.\pagesLTS@pnc}}% + \addtocounter{pagesLTS.pnc.0}{-1}% + \pagesLTS@ifcounter{pagesLTS.\pagesLTS@pnc.done}% + \addtocounter{pagesLTS.\pagesLTS@pnc.done}{% + \value{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.0}.local.count}}% + \addtocounter{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.count}{% + -\value{pagesLTS.\pagesLTS@pnc.done}}% + \setcounter{pagesLTS.pnc.0}{\pagesLTS@tmpa}% + \fi% + \if@filesw% + \immediate\write\@auxout{\string + \pagesLTS@ifcounter{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.cnt}}% + \fi% + \edef\pagesLTS@tmpB{\arabic{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.count}}% + \if@filesw% + \immediate\write\@auxout{\string + \setcounter{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.cnt}{\pagesLTS@tmpB}}% + \fi% + \fi% + \pagesLTS@ifcounter{pagesLTS.double.\pagesLTS@pnc}% + \setcounter{pagesLTS.double.\pagesLTS@pnc}{\value{page}}% + \addtocounter{pagesLTS.current.local.\pagesLTS@pnc}{+1}% + \addtocounter{page}{+1}% + \xdef\pagesLTS@pnc{#1}% + \OrigPagenumbering{#1}% + \expandPagenumbering{#1} + \pagesLTS@ifcounter{pagesLTS.pnc.\pagesLTS@pnc}% + \addtocounter{pagesLTS.pnc.\pagesLTS@pnc}{1}% + \pagesLTS@ifcounter{pagesLTS.double.\pagesLTS@pnc}% + \addtocounter{pagesLTS.double.\pagesLTS@pnc}{1}% + \ifpagesLTS@pagecontinue% + \setcounter{page}{\value{pagesLTS.double.\pagesLTS@pnc}}% + \else% + \setcounter{page}{1}% + \fi% + \pagesLTS@ifcounter{pagesLTS.current.local.\pagesLTS@pnc}% + \ifnum \value{pagesLTS.double.\pagesLTS@pnc}=1% + \setcounter{pagesLTS.current.local.\pagesLTS@pnc}{1}% + \fi% + \else% + %% before the first page has shiped out + \xdef\pagesLTS@pnc{#1}% + \countdef\c@page=0 \c@page=1 + \def\cl@page{} + \global\c@page \@ne + \global\def\thepage{\csname \expandafter @\pagesLTS@pnc \endcsname \c@page}% + \expandPagenumbering{#1} + \pagesLTS@ifcounter{pagesLTS.pnc.\pagesLTS@pnc}% + \setcounter{pagesLTS.pnc.\pagesLTS@pnc}{1}% + \pagesLTS@ifcounter{pagesLTS.double.\pagesLTS@pnc}% + \setcounter{pagesLTS.double.\pagesLTS@pnc}{1}% + \pagesLTS@ifcounter{pagesLTS.current.local.\pagesLTS@pnc}% + \setcounter{pagesLTS.current.local.\pagesLTS@pnc}{1}% + \fi% + \gdef\pagesLTS@called{1}% + \fi% + \let\pagesLTS@tmpA\undefined% + \let\pagesLTS@tmpB\undefined% + } + +%% analogous to \HyPsd@pageref from the hyperref package by Heiko Oberdiek: +\def\lastpagereftxt#1{\pagesLTS@@pageref#1*\END} + +\def\pagesLTS@@pageref#1*#2\END{% + \ifx\\#2\\% no star + \pagesLTS@@@pageref{#1}% + \else% star + \expandafter\pagesLTS@@@pagerefstar% + \fi% +} + +\def\pagesLTS@@@pageref#1{\lastpagereftext{#1}} +\def\pagesLTS@@@pagerefstar#1{\lastpagereftextstar{#1}} + +\newcommand{\lastpagereftext}[1]{% + \def\pagesLTS@tmpA{#1}% + \def\pagesLTS@tmpB{pagesLTS.fnsymbol.local}% + \ifx\pagesLTS@tmpA\pagesLTS@tmpB% + \pagesLTS@ifcounter{pagesLTS.fnsymbol.local}% + \ifx\pagesLTS@hyper\pagesLTS@one% + \href{\#pagesLTS.fnsymbol.local.\arabic{pagesLTS.fnsymbol.local}}% + {\arabic{pagesLTS.fnsymbol.local}}% + \else \arabic{pagesLTS.fnsymbol.local}% + \fi% + \else% + \pageref{#1}% + \fi% + \let\pagesLTS@tmpA\undefined% + \let\pagesLTS@tmpB\undefined% + } + +\newcommand{\lastpagereftextstar}[1]{% + \def\pagesLTS@tmpA{#1}% + \def\pagesLTS@tmpB{pagesLTS.fnsymbol.local}% + \ifx\pagesLTS@tmpA\pagesLTS@tmpB% + \pagesLTS@ifcounter{pagesLTS.fnsymbol.local}% + \arabic{pagesLTS.fnsymbol.local}% + \else% + \ifx\pagesLTS@hyper\pagesLTS@one% + \pageref*{#1}% + \else% + \pageref{#1}% + \fi% + \fi% + \let\pagesLTS@tmpA\undefined% + \let\pagesLTS@tmpB\undefined% + } + +\def\lastpagerefend#1{\pagesLTS@@pagerefend#1*\END} + +\def\pagesLTS@@pagerefend#1*#2\END{% + \ifx\\#2\\% no star + \pagesLTS@@@pagerefend{#1}% + \else% star + \expandafter\pagesLTS@@@pagerefendstar% + \fi% +} + +\def\pagesLTS@@@pagerefend#1{\l@stpagerefend{#1}} +\def\pagesLTS@@@pagerefendstar#1{\l@stpagerefendstar{#1}} + +\newcommand{\l@stpagerefend}[1]{% + \def\pagesLTS@tmpA{#1}% + \def\pagesLTS@tmpB{pagesLTS.fnsymbol.local}% + \ifx\pagesLTS@tmpA\pagesLTS@tmpB% + \pagesLTS@ifcounter{pagesLTS.fnsymbol.local}% + \ifx\pagesLTS@hyper\pagesLTS@one% + \href{\#pagesLTS.fnsymbol.local.\arabic{pagesLTS.fnsymbol.local}}% + {\arabic{pagesLTS.fnsymbol.local}}% + \else \arabic{pagesLTS.fnsymbol.local}% + \fi% + \else% + \def\pagesLTS@tmpB{pagesLTS.fnsymbol}% + \ifx\pagesLTS@tmpA\pagesLTS@tmpB% + \ifx\pagesLTS@hyper\pagesLTS@one% + \href{\#pagesLTS.fnsymbol.local.\arabic{pagesLTS.fnsymbol.local}}% + {\pagesLTS.lastpage}% + \else \pageref{pagesLTS.fnsymbol}% + \fi% + \else% + \def\pagesLTS@tmpB{LastPage}% + \ifx\pagesLTS@tmpA\pagesLTS@tmpB% + \ifx\pagesLTS@hyper\pagesLTS@one% + \href{\#pagesLTS.fnsymbol.local.\pagesLTS@eso}% + {\pagesLTS.lastpage}% + \else \pageref{LastPage}% + \fi% + \else% + \def\pagesLTS@tmpB{VeryLastPage}% + \ifx\pagesLTS@tmpA\pagesLTS@tmpB% + \ifx\pagesLTS@hyper\pagesLTS@one% + \href{\#pagesLTS.fnsymbol.local.\arabic{pagesLTS.fnsymbol.local}}% + {\pagesLTS.lastpage}% + \else \pageref{VeryLastPage}% + \fi% + \else% + \def\pagesLTS@tmpB{LastPages}% + \ifx\pagesLTS@tmpA\pagesLTS@tmpB% + \ifx\pagesLTS@hyper\pagesLTS@one% + \href{\#pagesLTS.fnsymbol.local.\arabic{pagesLTS.fnsymbol.local}}% + {\arabic{pagesLTS.pagenr}}% + \else \pageref{LastPages}% + \fi% + \else% + \pageref{#1}% + \fi% + \fi% + \fi% + \fi% + \fi% + \let\pagesLTS@tmpA\undefined% + \let\pagesLTS@tmpB\undefined% + } + +\newcommand{\l@stpagerefendstar}[1]{% + \def\pagesLTS@tmpA{#1}% + \def\pagesLTS@tmpB{pagesLTS.fnsymbol.local}% + \ifx\pagesLTS@tmpA\pagesLTS@tmpB% + \pagesLTS@ifcounter{pagesLTS.fnsymbol.local}% + \arabic{pagesLTS.fnsymbol.local}% + \else% + \def\pagesLTS@tmpB{pagesLTS.fnsymbol}% + \ifx\pagesLTS@tmpA\pagesLTS@tmpB% + \ifx\pagesLTS@hyper\pagesLTS@one% + \pageref*{pagesLTS.fnsymbol}% + \else \pageref{pagesLTS.fnsymbol}% + \fi% + \else% + \def\pagesLTS@tmpB{LastPage}% + \ifx\pagesLTS@tmpA\pagesLTS@tmpB% + \ifx\pagesLTS@hyper\pagesLTS@one% + \pageref*{LastPage}% + \else \pageref{LastPage}% + \fi% + \else% + \def\pagesLTS@tmpB{VeryLastPage}% + \ifx\pagesLTS@tmpA\pagesLTS@tmpB% + \ifx\pagesLTS@hyper\pagesLTS@one% + \pageref*{VeryLastPage}% + \else \pageref{VeryLastPage}% + \fi% + \else% + \def\pagesLTS@tmpB{LastPages}% + \ifx\pagesLTS@tmpA\pagesLTS@tmpB% + \ifx\pagesLTS@hyper\pagesLTS@one% + \pageref*{LastPages}% + \else \pageref{LastPages}% + \fi% + \else% + \ifx\pagesLTS@hyper\pagesLTS@one% + \pageref*{#1}% + \else \pageref{#1}% + \fi% + \fi% + \fi% + \fi% + \fi% + \fi% + \let\pagesLTS@tmpA\undefined% + \let\pagesLTS@tmpB\undefined% + } + +\newcommand\overrideLTSlabel[2]{% + \@bsphack + \ifnum \value{pagesLTS.pnc.\pagesLTS@pnc}>1% + \edef\pagesLTStmpA{#1}% + \edef\pagesLTStmpB{pagesLTS.\pagesLTS@pnc.local}% + \ifx\pagesLTStmpA\pagesLTStmpB% + \immediate\write\@auxout{\string\undonewlabel{#1}\string\relax}% + \@overriddenmessage s{#1}% + \fi% + \fi% + \pagesLTS@putlabel{#1}{#2}{0}% + \@esphack% + } + +\newcommand{\@pagesLTS@Prelim@EveryShipout}{% +%% The following code is from the prelim2e package %% +%% [2009/05/29 v1.3] by Martin Schr\"{o}der (Thanks!): %% + \bgroup + \dimen\z@=\wd\@cclv + \dimen\@ne=\ht\@cclv + \dimen\tw@=\dp\@cclv + \dimen\thr@@=\dimen1 + \advance\dimen\thr@@ by \dimen\tw@ + \global\setbox\@cclv\vbox to \dimen\thr@@{% + \hb@xt@\dimen\z@{% + \box\@cclv% + \hss% + }% + \vbox to \z@{% + \hb@xt@\dimen\z@{% + \let\protect\relax +%% Code not from prelim2e package: %% + \ifx\pagesLTS@pnc\pagesLTS@fns% + \pagesLTS@ifcounter{pagesLTS.fnsymbol.cont}% + \addtocounter{pagesLTS.fnsymbol.cont}{1}% + \ifx\pagesLTS@hyper\pagesLTS@one% + \phantomsection% + \hypertarget{pagesLTS.fnsymbol.local.\arabic{pagesLTS.fnsymbol.cont}}{}% + \fi% + \ifnum \pagesLTS@esov=\pagesLTS@zero% + \label{pagesLTS.fnsymbol}% + \else% + \overridelabel{pagesLTS.fnsymbol}% + \fi% + \else% + \ifx\pagesLTS@hyper\pagesLTS@one% + \phantomsection% + \fi% + \if@filesw% + \overridelabel{pagesLTS.\pagesLTS@pnc}% + \addtocounter{page}{+1}% + \overrideLTSlabel{pagesLTS.\pagesLTS@pnc.local}{\theCurrentPageLocal}% + \addtocounter{page}{-1}% + \fi% + \fi% +%% Code from prelim2e package again: %% + }% + \vss% + }% + \vss% + }% + \wd\@cclv=\dimen\z@ + \ht\@cclv=\dimen\@ne + \dp\@cclv=\dimen\tw@ + \egroup +%% End of code from the prelim2e package. %% + } + +\EveryShipout{% + \ifnum\value{page}>0% \relax + \else% + \ifnum\value{page}=0% + \PackageWarning{pageslts}{% + Counter `page' is zero!\MessageBreak% + If the page numbering scheme is not arabic\MessageBreak% + and further not extended\MessageBreak% + (see Page counter overflow in the pageslts\MessageBreak% + documentation), without other measures\MessageBreak% + this will lead to a counter overflow.\MessageBreak% + }% + \else% + \ifnum\value{page}<0% + \PackageWarning{pageslts}{% + Counter `page' is negative: `\the\value{page}'!\MessageBreak% + If the page numbering scheme is not arabic\MessageBreak% + and further not extended\MessageBreak% + (see Page counter overflow in the pageslts\MessageBreak% + documentation), without other measures\MessageBreak% + this will lead to a counter overflow.\MessageBreak% + }% + \else% + \PackageError{pageslts}{% + Counter `page' does not have a recognized value:\MessageBreak% + `\the\value{page}'\MessageBreak% + \@ehd \MessageBreak% + }% + \fi% + \fi% + \fi% + \ifnum \value{CurrentPage}=1% This is the first shipout! + \@ifundefined{Hy@Warning}{% hyperref not loaded + }{% hyperref loaded + \gdef\pagesLTS@hyper{1}% + }% + \ifx\pagesLTS@called\pagesLTS@zero% + \global\def\pncmissing{1}% + \mathchardef\pagesLTS@tmpD=\arabic{page}% +%% Code from Andres L\"{o}h, Universiteit Utrecht (NL) %% + \def\extract#1{\expandafter\extract@ #1\END}% + \def\extract@#1\csname @#2\endcsname#3\END{#2}% + \edef\pagesLTS@tmpQ{\extract\thepage}% +%% End of code from Andres L\"{o}h %% + \let\pagesLTS@tmpP\pagesLTS@tmpQ% + \def\pagesLTS@pnc{0}% + \pagenumbering{\pagesLTS@tmpP}% + \setcounter{page}{\pagesLTS@tmpD}% + \fi% + \pagesLTS@writelabel{0}% + \fi% + \ifx\pagesLTS@pnc\pagesLTS@fns% + \@pagesLTS@Prelim@EveryShipout% + \gdef\pagesLTS@esov{\arabic{pagesLTS.fnsymbol.cont}}% + \else% + \ifnum \value{pagesLTS.pnc.\pagesLTS@pnc}>1% + \@pagesLTS@Prelim@EveryShipout% + \fi% + \fi% + \addtocounter{CurrentPage}{1}% + \addtocounter{pagesLTS.current.local.\pagesLTS@pnc}{1}% + } + +\newcommand{\pagesLTS@putlabelhyper}[2]{% + \ifHy@pageanchor \relax% + \else% + \PackageError{pagesLTS}{hyperref option pageanchor disabled}{% + The \string\lastpageref{#1} link doesn't work\MessageBreak% + using hyperref with disabled option `pageanchor'.\MessageBreak% + }% + \fi +%% The following code is from the hyperref package %% +%% [2010/04/17 v6.80x; newer versions are available] %% +%% by Heiko Oberdiek (Big Thanks!). %% + \if@filesw + \begingroup + \let\@number\@firstofone + \ifHy@pageanchor + \ifHy@hypertexnames + \ifHy@plainpages + \def\Hy@temp{\arabic{page}}% + \else + \Hy@unicodefalse +%% Code not from hyperref package: %% +%% The following lines are modified from the hyperref package. %% +%% Without the modification, after the first shipout "PD1" is %% +%% inserted each time |\pdfstringdef\Hy@temp{\thepage}| is %% +%% executed (if |fnsymbol| is not used). %% + \ifnum \value{CurrentPage}=1% + \ifx\pagesLTS@pnc\pagesLTS@fns% + \pdfstringdef\Hy@temp{\thepage}% + \else% + \def\Hy@temp{\thepage}% + \fi% + \else% + \pdfstringdef\Hy@temp{\thepage}% + \fi% +%% Code from hyperref package again: %% + \fi + \else + \def\Hy@temp{\the\Hy@pagecounter}% + \fi + \fi +%% End of code from the hyperref package. %% +%% (The following four lines are modified %% +%% from the hyperref package.) %% + \immediate\write\@auxout{\string + \newlabel{#1}{{}{#2}{}{\ifHy@pageanchor page.\Hy@temp\fi}{}}}% + \endgroup% + \fi% + } + +\newcommand{\pagesLTS@putlabel}[3]{% + \addtocounter{page}{-1}% + \ifx\pagesLTS@SK\pagesLTS@one% + \message{^^J}% + \message{Package pageslts Warning: Package showkeys without option final loaded,}% + \ifnum\value{pagesLTS.pagenr}<1% + \message{(pageslts) but label #1 on page \thepage\space(about \theCurrentPage)}% + \else% + \message{(pageslts) but label #1 on page \thepage\space(about \theCurrentPage\space of \arabic{pagesLTS.pagenr})}% + \fi% + \message{(pageslts) cannot be shown, because pageslts does not use \string\label,}% + \message{(pageslts) but writes directly to the \jobname.aux file. ^^J}% + \fi% + \ifx\pagesLTS@hyper\pagesLTS@one% + \pagesLTS@putlabelhyper{#1}{#2}% + \else% + \if@filesw% + \ifnum \value{pagesLTS.pnc.\pagesLTS@pnc}<2% + \immediate\write\@auxout{\string + \newlabel{#1}{{}{#2}}}% + \else% + \edef\pagesLTStmpA{#1}% + \edef\pagesLTStmpB{pagesLTS.\pagesLTS@pnc.local}% + \ifx\pagesLTStmpA\pagesLTStmpB% + \edef\pagesLTStmpA{#3}% + \ifx\pagesLTStmpA\pagesLTS@one% + \immediate\write\@auxout{\string + \undonewlabel{#1}}% + \fi% + \fi% + \immediate\write\@auxout{\string + \newlabel{#1}{{}{#2}}}% + \fi% + \fi% + \fi% + \addtocounter{page}{+1}% + } + +\newcommand{\pagesLTS@putlabels}{% + \addtocounter{page}{-1}% + \addtocounter{CurrentPage}{-1}% + \addtocounter{pagesLTS.current.local.\pagesLTS@pnc}{-1}% + \ifx\pagesLTS@pnc\pagesLTS@zero% + \PackageWarning{pagesLTS}{No page numbering scheme found:\MessageBreak% + \pagesLTS@messageNPN }% + \else% + \pagesLTS@writelabel{\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}}% + \ifnum \value{pagesLTS.pnc.\pagesLTS@pnc}<2% + \ifx\pagesLTS@pnc\pagesLTS@fns% \relax + \else% + \pagesLTS@writelabel{\pagesLTS@pnc}% + \fi% + \fi% + \fi% + \addtocounter{page}{+1}% + \pagesLTS@putlabel{LastPages}{\theCurrentPage}{1}% + \addtocounter{CurrentPage}{+1}% + \addtocounter{pagesLTS.current.local.\pagesLTS@pnc}{1}% + } + +\AtBeginDocument{% + \if@filesw% + \immediate\write\@auxout{\string\gdef\string\pagesLTS@loaded{p@gesLTSnotlo@ded}}% + \fi% + \@ifpackageloaded{endfloat}% + {\@ifpackagelater{endfloat}{1992/03/31}% April 1992 v2.0 + {\@ifpackagelater{endfloat}{1995/10/10}{% 1995/10/11 v2.4i + \relax}% + {\PackageWarningNoLine{pageslts}{Old endfloat package detected:\MessageBreak% + There is a newer version of the endfloat package available.\MessageBreak% + Please consider updating your version.\MessageBreak% + The pageslts package might be incompatible with\MessageBreak% + your current endfloat package.\MessageBreak% + }% + }% + {\PackageError{pageslts}{Incompatible, very old endfloat package detected.}% + {The very old version 2.0 (and earlier) of the\MessageBreak% + endfloat package actually redefined the \ enddocument,\MessageBreak% + and so interferred drastically with the LaTeX2e commands\MessageBreak% + which make use of \ AtEndDocument.\MessageBreak% + Newer versions of the endfloat package exists\MessageBreak% + (at least: v2.4i as of 1995/10/11)\MessageBreak% + in modern documentation form,\MessageBreak% + which should be available from CTAN.\MessageBreak% + Please update your endfloat package\MessageBreak% + for use with the pageslts package.\MessageBreak % + }% + }% + }% + }{}% + \@ifpackageloaded{lastpage}% + {\@ifpackagelater{lastpage}{2010/07/28}% 2010/07/29 v1.2a + {\@ifpackagelater{lastpage}{2011/08/07}% 2011/08/08 v1.2i + {\PackageWarning{pageslts}{lastpage package detected.\MessageBreak% + With pageslts package in use, lastpage has no function.\MessageBreak% + Just remove the lastpage package from your document.\MessageBreak% + }% + }{% + \PackageWarning{pageslts}{Old lastpage package detected.\MessageBreak% + With pageslts package in use, lastpage has no function.\MessageBreak% + Just remove the lastpage package from your document.\MessageBreak% + At least update it!\MessageBreak% + }% + }% + }{% + \PackageWarning{pageslts}{Incompatible package lastpage detected:\MessageBreak% + Package pageslts was loaded, but also an old\MessageBreak% + version of the lastpage package.\MessageBreak% + pageslts has all functionality of the lastpage\MessageBreak% + package (and more), so just remove the lastpage\MessageBreak% + package from your document.\MessageBreak% + (At least update it!)\MessageBreak% + pageslts will now ''kill'' the lastpage@putlabel\MessageBreak% + command of the lastpage package.\MessageBreak% + }% + \gdef\lastpage@putlabel{\relax}% + }% + }{}% + \@ifpackageloaded{alphalph}% + {\global\def\pagesLTS@AlphAlph{1}% + \newalphalph{\AlphMult}[mult]{\@Alph}{26}% + \newalphalph{\alphMult}[mult]{\@alph}{26}% + \newalphalph{\fnsymbolmult}[mult]{\@fnsymbol}{5}% + }{% \relax + } + \@ifpackageloaded{hyperref}% + {\global\def\pagesLTS@hyper{1}% + \@ifpackageloaded{pdfpages}% + {\PackageWarningNoLine{pageslts}{Package pdfpages detected.\MessageBreak% + Using hyperref with pdfpages can cause problems. See\MessageBreak% + ftp://ftp.ctan.org/tex-archive/\MessageBreak% + macros/latex/contrib/pax/\MessageBreak% + for project pax (PDFAnnotExtractor).% + }% + }{% \relax + }% + \@ifpackageloaded{undolabl}% + {\@ifpackagelater{undolabl}{2010/07/14}% 2010/07/15 v1.0d + {\@ifpackagelater{undolabl}{2011/08/07}% 2011/08/08 v1.0j + {% recent version as of the time of last revision of this package: OK + }{% old, but not obsolete version + \PackageWarningNoLine{pageslts}{Old version of undolabl package used.\MessageBreak% + See ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/undolabl/ \MessageBreak% + for a new version.\MessageBreak% + }% + } + }{\PackageError{pageslts}{Incompatible, obsolete version of undolabl package used.}{% + See ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/undolabl/ \MessageBreak% + for a new version.\MessageBreak% + Type X <return> to quit.\MessageBreak% + }% + } + }{\PackageError{pageslts}{Package undolabl missing}{% + Package undolabl not found.\MessageBreak% + The pageslts package needs the undolabl package.\MessageBreak% + See e.g.\MessageBreak% + ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/undolabl/ \MessageBreak% + Type X <return> to quit.\MessageBreak% + }% + } + \@ifpackagelater{hyperref}{2011/04/16}{% 2011/04/17 v6.82g + \relax}{% + \PackageWarningNoLine{pageslts}{Old hyperref package detected:\MessageBreak% + There is a newer version of the\MessageBreak% + hyperref package available.\MessageBreak% + Please consider updating your version.\MessageBreak% + }% + }% + %% pageslts supports the use of the package hyperref by + %% Heiko Oberdiek (hyperref version 2011/04/17 v6.82g). + %% pageslts may work with earlier versions of this packages, + %% but this was not tested. + }% + {\PackageWarning{pageslts}{Package hyperref NOT detected.\MessageBreak% + pageslts would support hyperref. The page references\MessageBreak% + will NOT be hyperlinked!\MessageBreak }% + }% + \@ifpackageloaded{showkeys}{% + \@ifpackagewith{showkeys}{final}{\relax}{\gdef\pagesLTS@SK{1}}% + }{% \relax + }% + } + +\AtEndDocument{% + \ifx\pncmissing\pagesLTS@one% + \PackageError{pageslts}{pagenumbering scheme missing}{\pagesLTS@messageNPN }% + \fi% + \message{^^J% + AED: pageslts setting LastPage ^^J}% + \clearpage% + \ifx\pagesLTS@pnc\pagesLTS@fns% + \def\pagesLTS@tmpA{\arabic{pagesLTS.fnsymbol.local}}% + \ifnum \pagesLTS@eso=\pagesLTS@tmpA% + \gdef\pagesLTS@rerun{0}% + \else% + \gdef\pagesLTS@rerun{1}% + \fi% + \if@filesw% + \immediate\write\@auxout{\string + \gdef\string\pagesLTS@eso{\pagesLTS@tmpA}}% + \fi% + \fi% + \pagesLTS@putlabel{LastPage}{\thepage}{1}% + \let\pagesLTS@tmpA\undefined% + } + +\AfterLastShipout{% + \if@filesw% + \ifx\pagesLTS@esov\pagesLTS@zero% + \else% + \immediate\write\@auxout{\string + \pagesLTS@ifcounter{pagesLTS.fnsymbol.local}}% + \immediate\write\@auxout{\string + \setcounter{pagesLTS.fnsymbol.local}{\pagesLTS@esov}}% + \fi% + \ifx\pagesLTS@hyper\pagesLTS@one% + \ifx\pagesLTS@pnc\pagesLTS@fns% + \immediate\write\@auxout{\string + \gdef\string\lastpageref{\string\lastpagerefend}}% + \fi% + \fi% + \fi% + \pagesLTS@ifcounter{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.count}% + \setcounter{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.count}{% + \value{pagesLTS.current.local.\pagesLTS@pnc}}% + \addtocounter{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.count}{-1} + \ifnum \value{pagesLTS.pnc.\pagesLTS@pnc}>1% + \mathchardef\pagesLTS@tmpD=\arabic{pagesLTS.pnc.0}% + \setcounter{pagesLTS.pnc.0}{\value{pagesLTS.pnc.\pagesLTS@pnc}}% + \addtocounter{pagesLTS.pnc.0}{-1}% + \addtocounter{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.count}{% + -\value{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.0}.local.count}}% + \setcounter{pagesLTS.pnc.0}{\pagesLTS@tmpD}% + \fi% + \if@filesw% + \immediate\write\@auxout{\string + \pagesLTS@ifcounter{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.cnt}}% + \edef\pagesLTS@tmpA{\arabic{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.count}}% + \immediate\write\@auxout{\string + \setcounter{pagesLTS.\pagesLTS@pnc.\arabic{pagesLTS.pnc.\pagesLTS@pnc}.local.cnt}{\pagesLTS@tmpA}}% + \let\pagesLTS@tmpA\undefined% + \fi% + \addtocounter{page}{-1}% + \edef\pagesLTS@tmpA{\thepage}% + \if@filesw% + \immediate\write\@auxout{\string + \gdef\string\pagesLTS.lastpage{\pagesLTS@tmpA}}% + \fi% + \addtocounter{page}{+1}% + \addtocounter{CurrentPage}{-1}% + \def\pagesLTS@tmpB{\arabic{CurrentPage}}% + \if@filesw% + \immediate\write\@auxout{\string + \setcounter{pagesLTS.pagenr}{\pagesLTS@tmpB}}% + \fi% + \addtocounter{CurrentPage}{+1}% + \message{^^J% + AED: pageslts setting VeryLastPage via AfterLastShipout ^^J}% + \pagesLTS@putlabel{VeryLastPage}{\thepage}{1}% + \message{^^J% + AED: pageslts setting LastPages via AfterLastShipout ^^J}% + \pagesLTS@putlabels% + \let\pagesLTS@tmpA\undefined% + \let\pagesLTS@tmpB\undefined% + } + +\AtEndAfterFileList{% + \ifx\pagesLTS@rerun\pagesLTS@one% + \PackageWarningNoLine{pageslts}{% + Label(s) may have changed.\MessageBreak% + Rerun to get cross-references right.\MessageBreak% + }% + \fi% + } + +\endinput +%% +%% End of file `pageslts.sty'. |