summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/lastpage/lastpage.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/lastpage/lastpage.sty')
-rw-r--r--Master/texmf-dist/tex/latex/lastpage/lastpage.sty277
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'.