summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/lastpage/lastpagemodern.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/lastpage/lastpagemodern.sty')
-rw-r--r--Master/texmf-dist/tex/latex/lastpage/lastpagemodern.sty237
1 files changed, 237 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/lastpage/lastpagemodern.sty b/Master/texmf-dist/tex/latex/lastpage/lastpagemodern.sty
new file mode 100644
index 00000000000..482c7209e7a
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/lastpage/lastpagemodern.sty
@@ -0,0 +1,237 @@
+%%
+%% This is file `lastpagemodern.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% lastpage.dtx (with options: `lastpagemodern')
+%%
+%% This is a generated file.
+%%
+%% Project: lastpage
+%% Version: 2023-03-07 v2.0a
+%% Info: Refers to last page's name
+%%
+%% 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.
+%%
+%% 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 a replacement 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 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, 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}[2022-11-01]
+\ProvidesPackage{lastpagemodern}[2023-03-07 v2.0a Refers to last page's name (HMM; JPG)]
+%% allows for things like "Page \thepage{} of \pageref{LastPage}"
+%% to get "Page 7 of 9" or "Page VII of IX";
+%% the NUMBER of pages is available via \@abspage@last, but with pages
+%% for example I to X and then 1 to 10, the number of pages woud be "20",
+%% while the name of the last page is "10". Decide what you need/want!
+
+\gdef\lastpage@one{1}
+\gdef\lastpage@firstpage{1}
+\gdef\lastpage@lastpage{??}
+\gdef\lastpage@lastpageHy{??}
+
+\AddToHook{begindocument/end}{%
+ \IfPackageLoadedTF{endfloat}{%
+ \IfPackageAtLeastTF{endfloat}{1994/06/01}{\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.}%
+ }{}}%
+ \gdef\lastpage@putlabel{\relax}%
+ }
+
+\newcommand{\lastpage@putl@bel}{%
+ \IfPackageLoadedTF{pageslts}{\relax}{%
+ \IfPackageLoadedTF{hyperref}{\lastpage@putlabelhyper}{%
+ \IfPackageLoadedTF{nameref}{\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@putlabelhyper}{%
+ \ifHy@pageanchor%
+ \else%
+ \PackageError{lastpage}{hyperref option pageanchor disabled}{%
+ The \string\pageref{LastPage} link does not 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. %%
+ \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\relax%
+ \ifx \lastpage@firstpage\lastpage@one\relax%
+ \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%
+ \else%
+ \IfPackageLoadedTF{tikz}{%
+ \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%
+ }%
+ }{\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.\MessageBreak%
+ }%
+ }%
+ \fi%
+ }
+
+\newcommand{\lastpage@fileswtestHy}{%
+ \ifHy@pageanchor%
+ \lastpage@fileswtest{\Hy@temp}{\lastpage@lastpageHy}%
+ \else%
+ \lastpage@fileswtest{\empty}{\lastpage@lastpageHy}%
+ \fi%
+ }
+
+\AddToHook{enddocument/afterlastpage}{%
+ \IfPackageLoadedTF{pageslts}{\relax}{%
+ \gdef\lastpage@putlabel{??}%
+ \ifx\lastpage@lastpage\lastpage@putlabel\relax%
+ \AddToHook{enddocument/info}{%
+ \PackageWarning{lastpage}{Rerun to get the references right}%
+ }%
+ \fi%
+ }%
+ \gdef\lastpage@putlabel{\relax}%
+ \if@filesw%
+ \message{^^Jenddocument/afterlastpage: lastpage setting LastPage.^^J}%
+ \IfPackageLoadedTF{french}{%
+ \addtocounter{page}{+1}\lastpage@putl@bel\addtocounter{page}{-1}%
+ }{\IfPackageLoadedTF{frenchle}{%
+ \addtocounter{page}{+1}\lastpage@putl@bel\addtocounter{page}{-1}%
+ }{\lastpage@putl@bel%
+ }%
+ }%
+ \else%
+ \IfPackageLoadedTF{pageslts}{\relax}{%
+ \lastpage@fileswtest{\thepage}{\lastpage@lastpage}%
+ \IfPackageLoadedTF{hyperref}{\lastpage@fileswtestHy}{\relax}%
+ }%
+ \fi%
+ }
+\endinput
+%%
+%% End of file `lastpagemodern.sty'.