%%
%% This is file `lastpageclassic.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% lastpage.dtx  (with options: `lastpageclassic')
%% 
%% This is a generated file.
%% 
%% Project: lastpage
%% Version: 2025-08-14 v2.1h
%% Info: Refers to last page's name
%% 
%% Copyright (C) 2010 - 2025 by
%%     H.-Martin Muench <Martin dot Muench at Uni-Bonn dot de>
%% Portions of code copyrighted by other people as marked.
%% 
%% 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
%%    https://www.latex-project.org/lppl/lppl-1-3c.txt
%% and the latest version of this license is in
%%    https://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.
%% 
%% This package was invented by Jeffrey P. Goldberg.
%% I thought that an enhancement was needed and therefore created the pageslts package,
%% https://ctan.org/pkg/pageslts. Nevertheless, for compatibility with existing
%% documents/packages as well as for the low amount of resources needed by the
%% lastpage package (no new counter!), I updated this package.
%% Thanks go to Jeffrey P. Goldberg for allowing me to do this.
%% 
%% While this package allows for things like "Page slash thepage{} of slash pageref{LastPage}"
%% to get "Page 7 of 9" or "Page VII of IX",
%% the NUMBER of pages is nowadays available from the kernel
%% (slash @abspage@last, slash thetotalpages, slash PreviousTotalPages),
%% but with pages for example I to X and then 1 to 10, the number of pages would be "20",
%% while the name of the last page is "10". Decide what you need/want!
%% 
%% This work consists of the main source file lastpage.dtx,
%% the README, and the derived files
%%    lastpage.sty, lastpage209.sty, lastpage2e.sty,
%%    lastpageclassic.sty, lastpagemodern.sty,
%%    lastpage.pdf, lastpage.ins, lastpage.drv,
%%    lastpage-example.tex, lastpage-example.pdf.
%% 
%% In memoriam
%%  Claudia Simone Barth + 1996-01-30
%%  Tommy Muench         + 2014-01-02
%%  Hans-Klaus Muench    + 2014-08-24
%% 
%% Part of the "lastpage" package
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesPackage{lastpageclassic}[2025/08/14 v2.1h %
  Refers to last page's name (HMM; JPG)]
%% allows for things like "Page \thepage{} of \pageref{LastPage}"
%% to get "Page 7 of 9"

\gdef\lastpage@one{1}
\gdef\lastpage@hyper{0}
\gdef\lastpage@nameref{0}
\gdef\lastpage@french{0}
\gdef\lastpage@LTS{0}
\gdef\lastpage@firstpage{1}
\gdef\lastpage@lastpage{??}
\gdef\lastpage@lastpageHy{??}

\AtBeginDocument{%
  \@ifpackageloaded{endfloat}{%
    \@ifpackagelater{endfloat}{1993/04/30}{\relax}{%
      \PackageError{lastpage}{%
        Incompatibility with outdated version of endfloat package}{%
        lastpage is not fully compatible with a version\MessageBreak%
        before 2.1 of the endfloat package,\MessageBreak%
        because those versions redefined\MessageBreak%
        the \string\enddocument\space command.}%
    }}{}%
  \@ifpackageloaded{tikz}{\gdef\lastpage@tikz{1}}{}%
  \@ifpackageloaded{hyperref}{\gdef\lastpage@hyper{1}}{}%
  \@ifpackageloaded{nameref}{\gdef\lastpage@nameref{1}}{}%
  \@ifpackageloaded{french}{\gdef\lastpage@french{1}}{}%
  \@ifpackageloaded{frenchle}{\gdef\lastpage@french{1}}{}%
  \@ifpackageloaded{pagesLTS}{\gdef\lastpage@LTS{1}}{}%
  \@ifpackageloaded{pageslts}{\gdef\lastpage@LTS{1}}{}%
  \gdef\lastpage@putlabel{\relax}%
  }

\newcommand{\lastpage@putl@bel}{%
  \@ifundefined{Hy@Warning}{%  hyperref not loaded
    }{\gdef\lastpage@hyper{1}% hyperref loaded
     }%
  \ifx\lastpage@LTS\lastpage@one%
  \else%
    \ifx\lastpage@hyper\lastpage@one%
      \lastpage@putlabelhyper%
    \else%
      \ifx\lastpage@nameref\lastpage@one%
        \lastpage@putlabelNR%
      \else%
        \begingroup%
          \addtocounter{page}{-1}%
          \immediate\write\@auxout{\string\newlabel{LastPage}{{}{\thepage}}}%
          \immediate\write\@auxout{\string\xdef\string\lastpage@lastpage{\thepage}}%
          \immediate\write\@auxout{\string\gdef\string\lastpage@lastpageHy{}}%
          \addtocounter{page}{+1}%
        \endgroup%
      \fi%
    \fi%
  \fi%
  }

\newcommand{\lastpage@putlabelhyper}{%
  \ifHy@pageanchor%
  \else%
    \PackageWarningNoLine{lastpage}{%
      The \string\pageref{LastPage} link does not work\MessageBreak%
      using hyperref with disabled option `pageanchor'.\MessageBreak%
      Better enable `pageanchor' or use\MessageBreak%
      \string\pageref*{LastPage} (not generating a link)%
      }%
  \fi%
  \begingroup%
    \addtocounter{page}{-1}%
%% with code from \Hy@EveryPageAnchor of the hyperref package,
%% 2010/04/17 v6.80x; newer versions are available
    \let\@number\@firstofone%
    \ifHy@pageanchor%
      \ifHy@hypertexnames%
        \ifHy@plainpages%
          \def\Hy@temp{\arabic{page}}%
        \else%
          \Hy@unicodefalse%
          \ifnum \value{page}=1\relax%
            \ifx \lastpage@firstpage\lastpage@one\relax%
              \def\Hy@temp{\thepage}%
              \gdef\lastpage@firstpage{0}%
            \else%
              \pdfstringdef\Hy@temp{\thepage}%
          \fi%
          \else%
            \pdfstringdef\Hy@temp{\thepage}%
          \fi%
        \fi%
      \else%
        \def\Hy@temp{\the\Hy@pagecounter}%
      \fi%
    \fi%
    \immediate\write\@auxout{%
      \string\newlabel{LastPage}{{}{\thepage}{}{%
        \ifHy@pageanchor page.\Hy@temp\fi}{}}%
      }%
    \immediate\write\@auxout{\string\xdef\string\lastpage@lastpage{\thepage}}%
    \ifHy@pageanchor%
      \immediate\write\@auxout{\string\xdef\string\lastpage@lastpageHy{\Hy@temp}}%
    \else%
      \immediate\write\@auxout{\string\gdef\string\lastpage@lastpageHy{}}%
    \fi%
    \addtocounter{page}{+1}%
  \endgroup%
  }

\newcommand{\lastpage@putlabelNR}{%
  \begingroup%
    \addtocounter{page}{-1}%
    \immediate\write\@auxout{\string\newlabel{LastPage}{{}{\thepage}{}{}{}}}%
    \immediate\write\@auxout{\string\xdef\string\lastpage@lastpage{\thepage}}%
    \immediate\write\@auxout{\string\gdef\string\lastpage@lastpageHy{}}%
    \addtocounter{page}{+1}%
  \endgroup%
  }

\newcommand{\lastpage@fileswtest}[2]{%
  \edef\lastpage@testa{#1}%
  \edef\lastpage@testb{#2}%
  \ifx\lastpage@testa\lastpage@testb%
  \else%
    \ifx\lastpage@tikz\lastpage@one\relax%
      \PackageWarning{lastpage}%
       {The lastpage package was not allowed to write to an\MessageBreak%
        .aux file. This package does not work without access\MessageBreak%
        to an .aux file.\MessageBreak%
        It is OK if the .aux file was already updated\MessageBreak%
        by a previous compiler run\MessageBreak%
        and would not have changed anyway.\MessageBreak%
       }%
    \else%
      \PackageError{lastpage}{No auxiliary file allowed}%
       {The lastpage 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%
        But it is OK if the .aux file was already updated\MessageBreak%
        by a previous compiler run\MessageBreak%
        and would not have changed anyway.}%
    \fi%
  \fi%
  }

\newcommand{\lastpage@fileswtestHy}{%
  \ifHy@pageanchor%
    \lastpage@fileswtest{\Hy@temp}{\lastpage@lastpageHy}%
  \else%
    \lastpage@fileswtest{\empty}{\lastpage@lastpageHy}%
  \fi%
  }

\AtEndDocument{%
  \ifx\lastpage@LTS\lastpage@one%
  \else%
    \gdef\lastpage@putlabel{??}%
    \ifx\lastpage@lastpage\lastpage@putlabel\relax%
      \PackageWarning{lastpage}{Rerun to get the references right}%
    \fi%
  \fi%
  \gdef\lastpage@putlabel{\relax}%
  \if@filesw%
    \message{^^JAED: lastpage setting LastPage^^J}%
    \@ifundefined{clearpage}{\relax}{\clearpage}%
    \ifx\lastpage@french\lastpage@one% french or frenchle loaded
      \addtocounter{page}{+1}\lastpage@putl@bel\addtocounter{page}{-1}%
    \else% neither one loaded
      \lastpage@putl@bel%
    \fi%
  \else%
    \ifx\lastpage@LTS\lastpage@one%
    \else%
      \lastpage@fileswtest{\thepage}{\lastpage@lastpage}%
      \ifx\lastpage@hyper\lastpage@one%
        \lastpage@fileswtestHy%
      \fi%
    \fi%
  \fi%
  }
\endinput
%%
%% End of file `lastpageclassic.sty'.
