diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/lastpage/lastpage.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/lastpage/lastpage.sty | 277 |
1 files changed, 27 insertions, 250 deletions
diff --git a/Master/texmf-dist/tex/latex/lastpage/lastpage.sty b/Master/texmf-dist/tex/latex/lastpage/lastpage.sty index 909e3f88771..573ace14169 100644 --- a/Master/texmf-dist/tex/latex/lastpage/lastpage.sty +++ b/Master/texmf-dist/tex/latex/lastpage/lastpage.sty @@ -9,17 +9,13 @@ %% This is a generated file. %% %% Project: lastpage -%% Version: 2021/09/03 v1.2n +%% Version: 2023-03-07 v2.0a +%% Info: Refers to last page's name %% -%% Copyright (C) 2010 - 2021 by -%% H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de> +%% Copyright (C) 2010 - 2023 by +%% H.-Martin Muench <Martin dot Muench at Uni-Bonn dot de> %% 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 @@ -28,265 +24,46 @@ %% 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. +%% 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). +%% This package was invented by Jeffrey P. Goldberg. %% I thought that a replacement was needed and therefore created the pageslts package, -%% https://www.ctan.org/pkg/pageslts +%% 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 via slash @abspage@last from the kernel, +%% 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, lastpage.pdf, -%% lastpage.ins, lastpage.drv, +%% 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 +%% Claudia Simone Barth + 1996-01-30 +%% Tommy Muench + 2014-01-02 +%% Hans-Klaus Muench + 2014-08-24 %% -\NeedsTeXFormat{LaTeX2e}[2014/05/01] -\ProvidesPackage{lastpage}% - [2021/09/03 v1.2n 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@french{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{french}{\gdef\lastpage@french{1}}{}% - \@ifpackageloaded{frenchle}{\gdef\lastpage@french{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% - But it is OK if the .aux file was already updated\MessageBreak% - by a previouse compiler run\MessageBreak% - and would not have changed anyway.\MessageBreak% - }% - \fi% - \fi% - } -\newcommand{\lastpage@fileswtestHy}{% - \ifHy@pageanchor% - \lastpage@fileswtest{\Hy@temp}{\lastpage@lastpageHy}% - \else% - \lastpage@fileswtest{\empty}{\lastpage@lastpageHy}% - \fi% - } - -\gdef\lastpage@lastpage{\relax}% -\gdef\lastpage@lastpageHy{\relax}% - -\AtEndDocument{% - \gdef\lastpage@putlabel{\relax}% - \ifx\lastpage@LTS\lastpage@one% - \else% - \ifx\lastpage@lastpage\relax% - \PackageWarning{lastpage}{Rerun to get the references right}% - \fi% - \ifx\lastpage@lastpageHy\relax% - \PackageWarning{lastpage}{Rerun to get the references right}% - \fi% - \fi% - \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% - } - +%% Part of the "lastpage" package +%% loads either lastpage2.09.sty for TeX 2.09 or lastpage2e.sty for LaTeX 2e +%% with code from https://groups.google.com/g/comp.text.tex/c/-Qmhj1ZI4xM +\def\loadlastpage{\ProvidesPackage{lastpage}[2023/03/07 v2.0a lastpage: 2.09 or 2e? (HMM)]\relax\RequirePackage{lastpage2e}} +\begingroup \expandafter \ifx \csname documentclass\endcsname\relax +\endgroup \expandafter \input{lastpage209.sty} +\else \endgroup \expandafter \loadlastpage +\fi \endinput %% %% End of file `lastpage.sty'. |