diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/lastpage/lastpagemodern.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/lastpage/lastpagemodern.sty | 237 |
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'. |