%% %% This is file `lastpage.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% lastpage.dtx (with options: `package') %% %% This is a generated file. %% %% Project: lastpage %% Version: 2015/03/29 v1.2m %% %% Copyright (C) 2010 - 2015 by %% H.-Martin M"unch %% Portions of code copyrighted by other people as marked. %% %% The usual disclaimer applies: %% 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. %% %% This package was invented by %% Jeffrey P. Goldberg (jeffrey+news at goldmark dot org). %% I thought that a replacement was needed and therefore created the pageslts package, %% https://www.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. %% %% This work consists of the main source file lastpage.dtx, %% the README, and the derived files %% lastpage.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 %% \NeedsTeXFormat{LaTeX2e}[2014/05/01] \ProvidesPackage{lastpage}% [2015/03/29 v1.2m Refers to last page's name (HMM; JPG)]% %% lastpage may work with earlier versions of LaTeX, %% but this was not tested. Please consider updating %% your LaTeX (and packages) to the most recent version %% (if it is/they are not already the most recent version). %% Allows for things like %% Page \thepage{} of \pageref{LastPage} %% to get %% 'Page 7 of 9'. %% For LaTeX 2.09 use lastpage209.sty. %% For LaTeX 2e maybe consider upgrading to the pageslts package. %% lastpage may work with earlier versions of LaTeX2e, %% but this was not tested. Please consider updating your LaTeX %% contribution to the most recent version (if it is not already %% the most recent version). %% The recent version of the endfloat package is v2.5d as of 2011/12/25. %% The lastpage package is not fully compatible with version 2.0 %% (and earlier) of the endfloat package, because those versions %% redefined the \enddocument command. \def\lastpage@one{1} \gdef\lastpage@hyper{0} \gdef\lastpage@nameref{0} \gdef\lastpage@LTS{0} \def\lastpage@firstpage{1} \AtBeginDocument{% \@ifpackageloaded{tikz}{\gdef\lastpage@tikz{1}}{}% \@ifpackageloaded{hyperref}{\gdef\lastpage@hyper{1}}{}% \@ifpackageloaded{nameref}{\gdef\lastpage@nameref{1}}{}% \@ifpackageloaded{pageslts}{% \PackageWarning{lastpage}{Package pageslts found.\MessageBreak% Therefore the lastpage package is no longer\MessageBreak% necessary.% }% \gdef\lastpage@LTS{1}% }{\PackageInfo{lastpage}{% Please have a look at the pageslts package at\MessageBreak% https://www.ctan.org/pkg/pageslts\MessageBreak% !}% }% \@ifpackageloaded{pagesLTS}{% \PackageWarning{lastpage}{% Outdated pagesLTS package found.\MessageBreak% Please replace by a recent version of\MessageBreak% pageslts package, see e.g. at\MessageBreak% https://www.ctan.org/pkg/pageslts\MessageBreak% !\MessageBreak% With pagesLTS as well as pageslts package\MessageBreak% the lastpage package is no longer necessary.\MessageBreak% }% \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% \PackageError{lastpage}{hyperref option pageanchor disabled}{% The \string\pageref{LastPage} link doesn't work\MessageBreak% using hyperref with disabled option `pageanchor'.\MessageBreak% }% \fi% \begingroup% \addtocounter{page}{-1}% %% The following code is from the hyperref package %% %% [2010/04/17 v6.80x; newer versions are available] %% %% by Heiko Oberdiek (Big Thanks!). %% \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 taken from the pageslts package, %% %% which in turn got them from the hyperref package and %% %% modified them. %% %% Without the modification, after the first shipout "PD1" %% %% is inserted each time |\pdfstringdef\Hy@temp{\thepage}| %% %% is executed. %% \ifnum \value{page}=1% \ifx \lastpage@firstpage\lastpage@one \def\Hy@temp{\thepage}% \gdef\lastpage@firstpage{0}% \else% %% Code from hyperref package again: %% \pdfstringdef\Hy@temp{\thepage}% %% End of code from the hyperref package. %% \fi% %% The pageslts package would even check for fnsymbol page %% %% numbering scheme and adapt the code correspondingly. %% \else% %% Code from hyperref package again: %% \pdfstringdef\Hy@temp{\thepage}% %% Code from pageslts package again: %% \fi% %% Code from hyperref package again: %% \fi \else \def\Hy@temp{\the\Hy@pagecounter}% \fi \fi \immediate\write\@auxout{% \string\newlabel {LastPage}{{}{\thepage}{}{% \ifHy@pageanchor page.\Hy@temp\fi}{}}% }% %% End of code from the hyperref package. %% \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% OK \else% \ifx\lastpage@tikz\lastpage@one% \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 previouse 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% }% \fi% \fi% } \newcommand{\lastpage@fileswtestHy}{% \ifHy@pageanchor% \lastpage@fileswtest{\Hy@temp}{\lastpage@lastpageHy}% \else% \lastpage@fileswtest{\empty}{\lastpage@lastpageHy}% \fi% } \AtEndDocument{% \gdef\lastpage@putlabel{\relax}% \ifx\lastpage@LTS\lastpage@one% \else% \@ifundefined{lastpage@lastpage}% {\gdef\lastpage@lastpage{LastpagePackageError}% % If there really is a page numbered (!) "LastpagePackageError", % you will get the rerun warning whether it is necessary or not. \PackageWarning{lastpage}{Rerun to get the references right}% }{% already defined, nothing to be done. }% \@ifundefined{lastpage@lastpageHy}% {\gdef\lastpage@lastpageHy{LastpagePackageError}% }{% already defined, nothing to be done. }% \fi% \if@filesw% \message{^^JAED: lastpage setting LastPage^^J}% \clearpage\lastpage@putl@bel% \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 `lastpage.sty'.