%%
%% 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}[2010/09/27 v1.1m
            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.'.

\RequirePackage{atveryend}[2010/03/24]% v1.5
\RequirePackage{everyshi}[2001/05/15]% v3.00
\RequirePackage{kvoptions}[2010/02/22]% v3.7
\RequirePackage{undolabl}[2011/02/01]% v1.0h
%% 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}

\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\MessageBreak%
    (or use \ 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}
\def\pagesLTS@messageaMz{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%
}
\def\pagesLTS@messageAMiz{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%
}
\def\pagesLTS@messagefsmz{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%
}

\ifx\pagesLTS@alphMult\pagesLTS@ab%
  \relax%
\else%
  \ifx\pagesLTS@alphMult\pagesLTS@bb%
    \relax%
  \else%
    \ifx\pagesLTS@alphMult\pagesLTS@zero%
      \PackageWarningNoLine{pagesLTS}{\pagesLTS@messageaMz }%
    \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%
  \relax%
\else%
  \ifx\pagesLTS@AlphMulti\pagesLTS@BBi%
    \relax%
  \else%
    \ifx\pagesLTS@AlphMulti\pagesLTS@zero%
      \PackageWarningNoLine{pagesLTS}{\pagesLTS@messageAMiz }%
    \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%

\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%
  \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%
  \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}{\pagesLTS@messagefsmz }%
\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%
 \textbackslash pagenumbering\MessageBreak%
 was not called at the beginning of the document\MessageBreak%
 (maybe earlier or later).\MessageBreak%
 Please use \textbackslash 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%
 }

\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 [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}%
      \global\edef\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
      \global\edef\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%
  }

\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 \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%
  \@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/01/31}% 2011/02/01 v1.2g
         {\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}%
    {\PackageInfo{pagesLTS}{Package alphalph detected.\MessageBreak%
       pagesLTS supports alphalph. Congratulations!\MessageBreak%
       }%
     \global\def\pagesLTS@AlphAlph{1}%
     \newalphalph{\AlphMult}[mult]{\@Alph}{26}%
     \newalphalph{\alphMult}[mult]{\@alph}{26}%
     \newalphalph{\fnsymbolmult}[mult]{\@fnsymbol}{5}%
    }%
    {\ifx\pagesLTS@alphMult\pagesLTS@zero%
       \PackageWarning{pagesLTS}{\pagesLTS@messageaMz }%
     \else%
       \PackageError{pagesLTS}{Package alphalph not loaded}%
         {Package alphalph was not loaded, but package pagesLTS\MessageBreak%
          was called without option alphMult=0 (zero).\MessageBreak%
          Either load package alphalph,\MessageBreak%
          or give option alphMult=0 (zero) to the pagesLTS package.\MessageBreak%
         }%
     \fi%
     \ifx\pagesLTS@AlphMulti\pagesLTS@zero%
       \PackageWarning{pagesLTS}{\pagesLTS@messageAMiz }%
       \relax%
     \else%
       \PackageError{pagesLTS}{Package alphalph not loaded}%
         {Package alphalph was not loaded, but package pagesLTS\MessageBreak%
          was called without option AlphMulti=0 (zero).\MessageBreak%
          Either load package alphalph,\MessageBreak%
          or give option AlphMulti=0 (zero) to the pagesLTS package.\MessageBreak%
         }%
     \fi%
     \ifpagesLTS@fnsymbolmult%
       \PackageError{pagesLTS}{Package alphalph not loaded}%
         {Package alphalph was not loaded, but package pagesLTS\MessageBreak%
          was called without option fnsymbolmult=false.\MessageBreak%
          Either load package alphalph,\MessageBreak%
          or give option fnsymbolmult=false to the pagesLTS package.\MessageBreak%
         }%
     \else%
       \PackageWarning{pagesLTS}{\pagesLTS@messagefsmz }%
     \fi%
    }%
  \@ifpackageloaded{hyperref}%
    {\PackageInfo{pagesLTS}{Package hyperref detected.\MessageBreak%
       pagesLTS supports hyperref. Congratulations!\MessageBreak%
       }%
     \global\def\pagesLTS@hyper{1}%
     \@ifpackageloaded{pdfpages}%
       {\PackageWarning{pagesLTS}{Package pdfpages detected.\MessageBreak%
          Using hyperref with pdfpages can cause problems. See\MessageBreak%
          ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/pax/\MessageBreak%
          for project pax (PDFAnnotExtractor).\MessageBreak%
          }%
       }{\relax}%
     \@ifpackageloaded{undolabl}%
       {\@ifpackagelater{undolabl}{2010/07/14}% 2010/07/15 v1.0d
          {\@ifpackagelater{undolabl}{2011/01/31}% 2011/02/01 v1.0h
             {% 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}{2010/12/15}{% 2010/12/16 v6.81z
       \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 2010/12/16 v6.81z).
     %% 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}%
  \newcommand\pagesLTS@dofilelist{}%
  \let\pagesLTS@dofilelist\@dofilelist%
  \def\@dofilelist{\pagesLTS@dofilelist\pagesLTS@rerunwarning}%
  }

\newcommand\pagesLTS@rerunwarning{}%
\let\pagesLTS@rerunwarning\relax%

\AtEndDocument{%
  \ifx\pncmissing\pagesLTS@one%
    \PackageError{pagesLTS}{pagenumbering scheme missing}{\pagesLTS@messageNPN }%
  \fi%
  \message{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{AED: pagesLTS setting VeryLastPage via AfterLastShipout ^^J}%
  \pagesLTS@putlabel{VeryLastPage}{\thepage}{1}%
  \message{AED: pagesLTS setting LastPages via AfterLastShipout ^^J}%
  \pagesLTS@putlabels%
  \let\pagesLTS@tmpA\undefined%
  \let\pagesLTS@tmpB\undefined%
  }

\AtVeryEndDocument{%
  \ifx\pagesLTS@rerun\pagesLTS@one%
    \def\pagesLTS@rerunwarning{%
      \PackageWarningNoLine{pagesLTS}{Label(s) may have changed.\MessageBreak%
        Rerun to get cross-references right.\MessageBreak%
        }%
    }%
  \fi%
  }

\endinput
%%
%% End of file `pagesLTS.sty'.
