diff options
Diffstat (limited to 'Master/texmf-dist/tex/latex/lastpage/lastpageclassic.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/lastpage/lastpageclassic.sty | 254 |
1 files changed, 254 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/lastpage/lastpageclassic.sty b/Master/texmf-dist/tex/latex/lastpage/lastpageclassic.sty new file mode 100644 index 00000000000..8b4a63cadcd --- /dev/null +++ b/Master/texmf-dist/tex/latex/lastpage/lastpageclassic.sty @@ -0,0 +1,254 @@ +%% +%% This is file `lastpageclassic.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% lastpage.dtx (with options: `lastpageclassic') +%% +%% 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}[1994/12/01] +\ProvidesPackage{lastpageclassic}[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" + +\gdef\lastpage@one{1} +\gdef\lastpage@hyper{0} +\gdef\lastpage@nameref{0} +\gdef\lastpage@french{0} +\gdef\lastpage@LTS{0} +\gdef\lastpage@firstpage{1} +\gdef\lastpage@lastpage{??} +\gdef\lastpage@lastpageHy{??} + +\AtBeginDocument{% + \@ifpackageloaded{endfloat}{% + \@ifpackagelater{endfloat}{1993/04/30}{\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.}% + }{}}% + \@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}{\gdef\lastpage@LTS{1}}{}% + \@ifpackageloaded{pageslts}{\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. %% + \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% + \ifx\lastpage@tikz\lastpage@one\relax% + \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% + }% + \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 previous 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% + } + +\AtEndDocument{% + \ifx\lastpage@LTS\lastpage@one% + \else% + \gdef\lastpage@putlabel{??}% + \ifx\lastpage@lastpage\lastpage@putlabel\relax% + \PackageWarning{lastpage}{Rerun to get the references right}% + \fi% + \fi% + \gdef\lastpage@putlabel{\relax}% + \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% + } +\endinput +%% +%% End of file `lastpageclassic.sty'. |