diff options
author | Karl Berry <karl@freefriends.org> | 2023-04-07 20:53:03 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-04-07 20:53:03 +0000 |
commit | ed6247daaa6ff33f1d7202c5e8fc465ae1006371 (patch) | |
tree | 5f37a303a0b2db6a57e78c9b3fff7c799f5b4817 /Master/texmf-dist/source/latex/regstats | |
parent | d0423c83954c22e45edf84971856e193c12df1c3 (diff) |
regstats (7apr23)
git-svn-id: svn://tug.org/texlive/trunk@66793 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/regstats')
-rw-r--r-- | Master/texmf-dist/source/latex/regstats/regstats.drv | 50 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/regstats/regstats.dtx | 1625 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/regstats/regstats.ins | 56 |
3 files changed, 974 insertions, 757 deletions
diff --git a/Master/texmf-dist/source/latex/regstats/regstats.drv b/Master/texmf-dist/source/latex/regstats/regstats.drv index 07aa2095bfb..bd1ca7a945a 100644 --- a/Master/texmf-dist/source/latex/regstats/regstats.drv +++ b/Master/texmf-dist/source/latex/regstats/regstats.drv @@ -9,25 +9,21 @@ %% This is a generated file. %% %% Project: regstats -%% Version: 2012/01/07 v1.0h +%% Version: 2023-04-04 v1.1a +%% Info: Counting used registers %% -%% Copyright (C) 2011 - 2012 by -%% H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de> -%% -%% 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.) +%% Copyright (C) 2011 - 2023 by +%% H.-Martin Muench <Martin dot Muench at Uni-Bonn dot de> %% %% 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 -%% http://www.latex-project.org/lppl/lppl-1-3c.txt +%% https://www.latex-project.org/lppl/lppl-1-3c.txt %% and the latest version of this license is in -%% http://www.latex-project.org/lppl.txt +%% 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". %% @@ -40,20 +36,20 @@ %% regstats-example.tex, regstats-example.pdf, %% regstats-example.log. %% -\NeedsTeXFormat{LaTeX2e}[2011/06/27] -\ProvidesFile{regstats.drv}% - [2012/01/07 v1.0h Counting used registers (HMM)] -\documentclass{ltxdoc}[2007/11/11]% v2.0u -\usepackage{pdflscape}[2008/08/11]% v0.10 -\usepackage{holtxdoc}[2011/02/04]% v0.21 -%% regstats may work with earlier versions of LaTeX2e and those -%% class and packages, but this was not tested. -%% Please consider updating your LaTeX, class, and packages -%% to the most recent version (if they are not already the most -%% recent version). +%% In memoriam +%% Claudia Simone Barth + 1996-01-30 +%% Tommy Muench + 2014-01-02 +%% Hans-Klaus Muench + 2014-08-24 +%% +\NeedsTeXFormat{LaTeX2e}[2022-11-01] +\ProvidesFile{regstats.drv}[2023-04-04 v1.1a Counting used registers (HMM)] +\documentclass[landscape]{ltxdoc}[2022/06/22]% v2.1i Standard LaTeX documentation class +\usepackage{geometry}[2020/01/02]% v5.9 Page Geometry +\usepackage{holtxdoc}[2019/12/09]% v0.30 Private additional ltxdoc support (HO) +\usepackage[T1]{fontenc}[2021/04/29]% v2.0v Standard LaTeX package \hypersetup{% pdfsubject={Information about used number of TeX registers (HMM)},% - pdfkeywords={LaTeX, regstats, registers, read, write, language, box, dimen, counter, toks, skip, muskip, math family, insertion, H.-Martin Muench},% + pdfkeywords={LaTeX, regstats, registers, read, write, language, box, dimen, counter, toks, skip, muskip, math family, insertion},% pdfencoding=auto,% pdflang={en},% breaklinks=true,% @@ -69,14 +65,12 @@ pdfnewwindow=true% } \CodelineIndex -\hyphenation{printing docu-ment} -\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}% +\hyphenation{docu-ment} \makeatletter -\@ifundefined{eTeX}{\gdef\eTeX{$\m@th \varepsilon $-\TeX }}{% else \relax -} +\@ifundefined{eTeX}{\gdef\eTeX{\hbox{$\m@th \varepsilon $-\TeX}}}{} \makeatother \begin{document} - \DocInput{regstats.dtx}% + \DocInput{regstats.dtx}% \end{document} \endinput %% diff --git a/Master/texmf-dist/source/latex/regstats/regstats.dtx b/Master/texmf-dist/source/latex/regstats/regstats.dtx index 903f08ab3d3..737df53ea97 100644 --- a/Master/texmf-dist/source/latex/regstats/regstats.dtx +++ b/Master/texmf-dist/source/latex/regstats/regstats.dtx @@ -1,24 +1,25 @@ % \iffalse meta-comment % % File: regstats.dtx -% Version: 2012/01/07 v1.0h +% Version: 2023-04-04 v1.1a +% Info: Counting used registers % -% Copyright (C) 2011 - 2012 by -% H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de> +% Copyright © 2011 - 2023 by +% H.-Martin Münch <Martin dot Muench at Uni-Bonn dot de> % % 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 -% http://www.latex-project.org/lppl/lppl-1-3c.txt +% https://www.latex-project.org/lppl/lppl-1-3c.txt % and the latest version of this license is in -% http://www.latex-project.org/lppl.txt +% 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. +% The Current Maintainer of this work is H.-Martin Münch. % % This work consists of the main source file regstats.dtx, % the README, and the derived files @@ -27,49 +28,12 @@ % regstats-example.tex, regstats-example.pdf, % regstats-example.log. % -% Distribution: -% CTAN:macros/latex/contrib/regstats/regstats.dtx -% CTAN:macros/latex/contrib/regstats/regstats.pdf -% CTAN:install/macros/latex/contrib/regstats.tds.zip -% -% Cf. http://ctan.org/pkg/regstats and -% http://www.tex.ac.uk/tex-archive/help/Catalogue/entries/regstats.html -% -% Unpacking: -% (a) If regstats.ins is present: -% tex regstats.ins -% (b) Without regstats.ins: -% tex regstats.dtx -% (c) If you insist on using LaTeX -% latex \let\install=y\input{regstats.dtx} -% (quote the arguments according to the demands of your shell) -% -% Documentation: -% (a) If regstats.drv is present: -% (pdf)latex regstats.drv -% makeindex -s gind.ist regstats.idx -% (pdf)latex regstats.drv -% makeindex -s gind.ist regstats.idx -% (pdf)latex regstats.drv -% (b) Without regstats.drv: -% (pdf)latex regstats.dtx -% makeindex -s gind.ist regstats.idx -% (pdf)latex regstats.dtx -% makeindex -s gind.ist regstats.idx -% (pdf)latex regstats.dtx -% -% The class ltxdoc loads the configuration file ltxdoc.cfg -% if available. Here you can specify further options, e.g. -% use DIN A4 as paper format: -% \PassOptionsToClass{a4paper}{article} -% -% Installation: -% TDS:tex/latex/regstats/regstats.sty -% TDS:doc/latex/regstats/regstats.pdf -% TDS:doc/latex/regstats/regstats-example.tex -% TDS:doc/latex/regstats/regstats-example.pdf -% TDS:doc/latex/regstats/regstats-example.log -% TDS:source/latex/regstats/regstats.dtx +% "regstats" is available on CTAN: +% https://ctan.org/pkg/regstats +% +% Also a TDS.ZIP file is provided that contains all the files +% already sorted in a TDS tree: +% https://mirror.ctan.org/install/macros/latex/contrib/regstats.tds.zip % %<*ignore> \begingroup @@ -84,10 +48,10 @@ %</ignore> %<*install> \input docstrip.tex -\Msg{********************************************************************} -\Msg{* Installation *} -\Msg{* Package: regstats 2012/01/07 v1.0h Counting used registers (HMM) *} -\Msg{********************************************************************} +\Msg{*******************************************************************} +\Msg{* Installation *} +\Msg{* Package: regstats 2023-04-04 v1.1a Counting used registers (HMM)*} +\Msg{*******************************************************************} \keepsilent \askforoverwritefalse @@ -98,25 +62,21 @@ This is a generated file. Project: regstats -Version: 2012/01/07 v1.0h - -Copyright (C) 2011 - 2012 by - H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de> +Version: 2023-04-04 v1.1a +Info: Counting used registers -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.) +Copyright (C) 2011 - 2023 by + H.-Martin Muench <Martin dot Muench at Uni-Bonn dot de> 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 - http://www.latex-project.org/lppl/lppl-1-3c.txt + https://www.latex-project.org/lppl/lppl-1-3c.txt and the latest version of this license is in - http://www.latex-project.org/lppl.txt + 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". @@ -129,6 +89,11 @@ the README, and the derived files regstats-example.tex, regstats-example.pdf, regstats-example.log. +In memoriam + Claudia Simone Barth + 1996-01-30 + Tommy Muench + 2014-01-02 + Hans-Klaus Muench + 2014-08-24 + \endpreamble \let\MetaPrefix\DoubleperCent @@ -148,7 +113,7 @@ the README, and the derived files \Msg{* To finish the installation you have to move the following} \Msg{* file into a directory searched by TeX:} \Msg{*} -\Msg{* regstats.sty} +\Msg{* regstats.sty} \Msg{*} \Msg{* To produce the documentation run the file `regstats.drv'} \Msg{* through (pdf)LaTeX, e.g.} @@ -174,7 +139,7 @@ the README, and the derived files % \section{The documentation driver file} % % The next bit of code contains the documentation driver file for -% \TeX{}, i.\,e., the file that will produce the documentation you +% \TeX, i.\,e., the file that will produce the documentation you % are currently reading. It will be extracted from this file by the % \texttt{docstrip} programme. That is, run \LaTeX{} on \texttt{docstrip} % and specify the \texttt{driver} option when \texttt{docstrip} @@ -182,20 +147,15 @@ the README, and the derived files % % \begin{macrocode} %<*driver> -\NeedsTeXFormat{LaTeX2e}[2011/06/27] -\ProvidesFile{regstats.drv}% - [2012/01/07 v1.0h Counting used registers (HMM)] -\documentclass{ltxdoc}[2007/11/11]% v2.0u -\usepackage{pdflscape}[2008/08/11]% v0.10 -\usepackage{holtxdoc}[2011/02/04]% v0.21 -%% regstats may work with earlier versions of LaTeX2e and those -%% class and packages, but this was not tested. -%% Please consider updating your LaTeX, class, and packages -%% to the most recent version (if they are not already the most -%% recent version). +\NeedsTeXFormat{LaTeX2e}[2022-11-01] +\ProvidesFile{regstats.drv}[2023-04-04 v1.1a Counting used registers (HMM)] +\documentclass[landscape]{ltxdoc}[2022/06/22]% v2.1i Standard LaTeX documentation class +\usepackage{geometry}[2020/01/02]% v5.9 Page Geometry +\usepackage{holtxdoc}[2019/12/09]% v0.30 Private additional ltxdoc support (HO) +\usepackage[T1]{fontenc}[2021/04/29]% v2.0v Standard LaTeX package \hypersetup{% pdfsubject={Information about used number of TeX registers (HMM)},% - pdfkeywords={LaTeX, regstats, registers, read, write, language, box, dimen, counter, toks, skip, muskip, math family, insertion, H.-Martin Muench},% + pdfkeywords={LaTeX, regstats, registers, read, write, language, box, dimen, counter, toks, skip, muskip, math family, insertion},% pdfencoding=auto,% pdflang={en},% breaklinks=true,% @@ -211,38 +171,17 @@ the README, and the derived files pdfnewwindow=true% } \CodelineIndex -\hyphenation{printing docu-ment} -\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}% +\hyphenation{docu-ment} \makeatletter -\@ifundefined{eTeX}{\gdef\eTeX{$\m@th \varepsilon $-\TeX }}{% else \relax -} +\@ifundefined{eTeX}{\gdef\eTeX{\hbox{$\m@th \varepsilon $-\TeX}}}{} \makeatother \begin{document} - \DocInput{regstats.dtx}% + \DocInput{regstats.dtx}% \end{document} %</driver> % \end{macrocode} -% % \fi % -% \CheckSum{578} -% -% \CharacterTable -% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% % \GetFileInfo{regstats.drv} % % \begingroup @@ -260,76 +199,63 @@ the README, and the derived files % }%^^A % \expandafter\endgroup\x % -% \DoNotIndex{\\} -% \DoNotIndex{\documentclass,\usepackage,\ProvidesPackage,\begin,\end} -% \DoNotIndex{\message,\MessageBreak} -% \DoNotIndex{\NeedsTeXFormat,\DoNotIndex,\verb} -% \DoNotIndex{\def,\edef,\gdef,\global} -% \DoNotIndex{\ifx,\listfiles,\mathord,\mathrm} -% \DoNotIndex{\kvoptions,\SetupKeyvalOptions,\ProcessKeyvalOptions} -% \DoNotIndex{\bigskip,\space,\thinspace,\ldots} -% \DoNotIndex{\indent,\noindent,\newline,\linebreak,\pagebreak, \newpage} -% \DoNotIndex{\textbf,\textit,\textsf,\texttt,\textquotedblleft,\textquotedblright} -% \DoNotIndex{\plainTeX,\TeX,\LaTeX,\pdfLaTeX} -% \DoNotIndex{\chapter,\section,\the,\csname,\endscname} -% \DoNotIndex{\value,\setcounter,\addtocounter,\arabic} -% \DoNotIndex{\regstats@test} +% \DoNotIndex{\\,\@gobble,\@ifclassloaded,\@ifl@t@r,\@ifpackagelater,\@ifpackageloaded,\@ifundefined,\@whilenum,\@percentchar} +% \DoNotIndex{\@tempcnta,\@tempcntb,\AddToHook,\advance,\AfterLastShipout,\Alternative,\arabic,\AtBeginDocument,\AtEndAfterFileList} +% \DoNotIndex{\AtEndDocument,\atveryend,\AtVeryEndDocument,\AtVeryVeryEnd,\begin,\count,\DeclareBoolOption,\divide} +% \DoNotIndex{\csname,\endcsname,\do,\setcounter,\stepcounter,\thenumberreg,\value} +% \DoNotIndex{\documentclass,\end,\eTeX,\fmtversion,\gdef,\hbox,\hologo,\holtxdoc,\hyperref,\ifetex,\IfFileExists} +% \DoNotIndex{\IfFormatAtLeastTF,\ifnum,\IfPackageLoadedTF,\ifpdf,\ifregstats@left,\ifregstats@proof,\ifregstats@timer} +% \DoNotIndex{\iftex,\ifx,\intcalc,\intcalcMod,\jobname,\kvoptions,\left,\listfiles,\luatexfalse,\m@th} +% \DoNotIndex{\makeatletter,\makeatother,\message,\MessageBreak,\multiply,\NeedsTeXFormat} +% \DoNotIndex{\newcommand,\newif,\newline,\options,\PackageError,\PackageInfo,\PackageWarning,\PackageWarningNoLine} +% \DoNotIndex{\pagenumbering,\par,\ProcessKeyvalOptions,\proof,\providecommand,\ProvidesPackage} +% \DoNotIndex{\regcount,\regstats-example.tex,\regstats.dtx,\regstats.sty,\renewcommand,\RequirePackage} +% \DoNotIndex{\regst@tsNoeTeX,\regs@tsmw,\regs@wmst,\regst@ts@st@tistics,\regst@ts@statistics,\regst@ts@timer} +% \DoNotIndex{\regstats@box,\regstats@counter,\regstats@dimen,\regstats@fam,\regstats@firstofone,\regstats@free} +% \DoNotIndex{\regstats@insert,\regstats@language,\regstats@left,\regstats@lft,\regstats@max,\regstats@message} +% \DoNotIndex{\regstats@muskip,\regstats@pl,\regstats@read,\regstats@regstatA,\regstats@regstatB,\regstats@skip} +% \DoNotIndex{\regstats@timerfalse,\regstats@toks,\regstats@used,\regstats@write} +% \DoNotIndex{\section,\SetupKeyvalOptions,\space,\TeX,\textsf,\texttt,\the,\usepackage,\varepsilon} % % \title{The \xpackage{regstats} package} -% \date{2012/01/07 v1.0h} -% \author{H.-Martin M\"{u}nch\\\xemail{Martin.Muench at Uni-Bonn.de}} +% \date{2023-04-04 v1.1a} +% \author{H.-Martin Münch\\\xemail{Martin.Muench at Uni-Bonn.de}} % % \maketitle % % \begin{abstract} -% This \LaTeX{} package allows to count the number of used registers -% (counter, dimen, skip, muskip, box, token, input, output, -% math families, languages, insertions) -% and compare these to the maximum available number of such registers. -% The time needed for a compilation run can be announced. +% \noindent This \LaTeX{} package allows to count the number of used registers +% (counter, dimen, skip, muskip, box, token, input, output, +% math families, languages, insertions) +% and compare these to the maximum available number of such registers. +% The time needed for a compilation run can be announced. % \end{abstract} % % \bigskip % % \noindent Disclaimer for web links: The author is not responsible for any contents -% referred to in this work unless he has full knowledge of illegal contents. -% If any damage occurs by the use of information presented there, only the -% author of the respective pages might be liable, not the one who has referred -% to these pages. -% -% \bigskip -% -% \noindent {\color{green} Save per page about $200\unit{ml}$ water, -% $2\unit{g}$ CO$_{2}$ and $2\unit{g}$ wood:\\ -% Therefore please print only if this is really necessary.} -% -% \pagebreak +% referred to in this work unless having full knowledge of illegal contents. +% If any damage occurs by the use of information presented there, +% only the author of the respective pages might be liable, +% not the one who has referred to those pages. % % \tableofcontents % -% \pagebreak -% % \section{Introduction} -% % \indent This \LaTeX{} package allows to count the number of used registers % (counter, dimen, skip, muskip, box, token, input, output, % math families, languages, insertions). % Therefore the according |\count| is read. While |\count10| should be the number -% of the counters, |\count11| the one of the dimens, and so on, it is possible to use -% option |proof|, in which case a new one of each register is used and looked at -% |\the\allocationnumber|, and this is compared to the number determined by reading -% the |\count|. The result for each register is compared to the maximum available -% number of the respective register -% (comparison independent of usage of option |proof|). +% of the counters, |\count11| the one of the dimens, and so on, if there is enough +% room for another register of that type, then a new one of that register is used +% and looked at |\the\allocationnumber|. The result for each register is compared +% to the maximum available number of the respective register.\newline % With option |left| additionally the number of remaining registers of each type % is given, and with option |timer| the time needed for the compilation run (when -% either |pdf(la)tex| or |lua(la)tex| with |\directlua{starttime = os.clock()}| -% before |\documentclass| is used). -% -% \bigskip +% either \hologo{LuaLaTeX} with |\directlua{starttime = os.clock()}| before +% |\documentclass| or |pdf(la)tex| is used). % % \section{Usage} -% % \indent Just load the package placing % \begin{quote} % |\usepackage[<|\textit{options}|>]{regstats}| @@ -337,142 +263,244 @@ the README, and the derived files % \noindent at the end of the preamble of your \LaTeXe{} source file. When you % load packages |\AtBeginDocument|, \xpackage{regstats} should be the last one % of those packages. The resulting message will be presented at the end of the -% compilation messages at the screen and in the \xfile{log} file.\\ +% compilation messages at the screen and in the \xfile{log} file. +% \bigskip +% +% The examplefile provides (commented out) |\stressCounter|, |\stressDimen|, +% \dots, and |\stressInsert| to try out how many counters, dimens, \dots, and +% inserts your system can handle. +% \pagebreak % % \subsection{Options} % \DescribeMacro{options} % \indent The \xpackage{regstats} package takes the following options: % -% \subsubsection{proof\label{sss:proof}} -% \DescribeMacro{proof} -% \indent When option \texttt{proof} (or \texttt{proof=true}) is chosen, -% a new one of each register is used and looked at |\the\allocationnumber|, -% and this is compared to the number determined by reading the |\count|. -% The default is \texttt{proof=false}. -% -% \subsubsection{left\label{sss:left}} +% \subsubsection{left} % \DescribeMacro{left} % \indent When option \texttt{left} (or \texttt{left=true}) is chosen, % also the number of remaining registers of each type is given. The default % is \texttt{left=false}. % -% \subsubsection{timer\label{sss:timer}} +% \subsubsection{timer} % \DescribeMacro{timer} % \indent When option \texttt{timer} (or \texttt{timer=true}) is chosen, % also the time needed for the compilation run is given. The default % is \texttt{timer=false}. The used |\pdfelapsedtime| is not available, -% when |lua(la)tex| is used instead of |pdf(la)tex| to compile the document. +% when \hologo{LuaLaTeX} is used instead of |pdf(la)tex| to compile the document. % In that case at the very beginning of your \xfile{tex} file say\\ % \verb|\directlua{starttime = os.clock()}|\\ -% (even before |\documentclass|!), and the \texttt{timer} option can also -% be used with |lua(la)tex|. When neither |lua(la)tex| nor |pdf(la)tex| is used +% (even before |\documentclass|!), and then the \texttt{timer} option can also +% be used with \hologo{LuaLaTeX}. When neither \hologo{LuaLaTeX} nor \hologo{pdfLaTeX} is used % to compile the document, the \texttt{timer}(-option) does not work. % -% \section{Alternatives\label{sec:Alternatives}} +% \subsubsection{proof} +% \DescribeMacro{proof} +% \indent Option \texttt{proof} is \textbf{obsolete} and should no longer be used. % +% \section{Alternatives\label{sec:Alternatives}} % \begin{description} -% \item[-] \xpackage{regcount}, 1999/08/03, v1.0, by \textsc{Jean-Pierre F. Drucbert}, +% \item[-] \xpackage{regcount}, 1999/08/03, v1.0, by \textsc{Jean-Pierre F. Drucbert}~(\textdied), % provides the command |\rgcounts|, which can write the numbers of used registers % into the \xfile{log} file anywhere (not only at the end) and does this automatically -% |\AtBeginDocument| and |\AtEndDocument| (but not |\AtVeryVeryEnd|). The number of -% allocated insertions is \emph{wrong} in my opinion, because these are not numbered -% $1, 2,\ldots$, but start at a high number, which is then decreased. The package is -% compatible with the \xpackage{regstats} package (i.\,e.~you can use both packages -% at the same time in one document) and available at -% \url{http://www.ctan.org/pkg/regcount}. +% |\AtBeginDocument| and |\AtEndDocument|. The given number of allocated insertions is +% \emph{wrong}, because these are not numbered $0$, $1$, $2$\ldots, +% but start at a high number, which is then decreased (and additionally there are jumps, +% see \hbox{p. \pageref{insertions}).} The package is compatible with the \xpackage{regstats} package +% (i.\,e.~you can use both packages at the same time in one document) and available at +% \url{https://ctan.org/pkg/regcount}. % % \item[-] One can manually search for the last appearance of % |\count|, |\dimen|, |\skip|, |\muskip|, |\box|, |\toks|, |\read| (input), -% |\write| (output), |\mathgroup| (math family), |\language|, and |\insert|, -% and find the according number there. (This does not provide any information -% about the number of remaining registers, of course.) +% |\write| (output), |\mathgroup| (math family), and |\language|, +% and find the according number there. This does not provide any information +% about the number of remaining registers, of course. And it does not work for +% |\insert|, see \hbox{p. \pageref{insertions}).} % \end{description} % % \bigskip % -% \noindent (You programmed or found another alternative, -% which is available at \CTAN{}?\\ -% OK, send an e-mail to me with the name, location at \CTAN{}, -% and a short notice, and I will probably include it in -% the list above.) +% \noindent You programmed or found another alternative, +% which is available at \url{https://www.CTAN.org/}? +% OK, send an e-mail to me with the name, location at CTAN, +% and a short notice, and I will probably include it in the list above. % % \newpage % % \section{Example} -% % \begin{macrocode} %<*example> -%% When compiling with lua(la)tex (and wanting to use option timer=true, +%% When compiling with LuaLaTeX (and wanting to use option timer=true), %% the following line must be uncommented (i.e. remove the "%% "). %% \directlua{starttime = os.clock()} -\documentclass[british]{article}[2007/10/19]% v1.4h -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% \usepackage{etex}[1998/03/26]% v2.0 -%% Uncomment the preceding line, if you want to use the eTeX-package -%% (which requires eTeX, of course). -\usepackage[% - extension=pdf,% - plainpages=false,% - pdfpagelabels=true,% - hyperindex=false,% - pdflang={en},% - pdftitle={regstats package example},% - pdfauthor={H.-Martin Muench},% - pdfsubject={Example for the regstats package},% - pdfkeywords={LaTeX, registers, read, write, language, box, dimen,% - count, toks, muskip, skip, counter, regstats, H.-Martin Muench},% - pdfview=Fit,% - pdfstartview=Fit,% - pdfpagelayout=SinglePage% -]{hyperref}[2011/12/04]% v6.82m -\usepackage[proof=false,left=true,timer=true]{regstats}[2012/01/07]% -%% v1.0h -\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}% -\makeatletter -\@ifundefined{eTeX}{\gdef\eTeX{$\m@th \varepsilon $-\TeX }}{% -%% else \relax +\documentclass[british]{article} +\usepackage[left=true,timer=true]{regstats}[2023/04/04]% v1.1a Counting used registers (HMM) +\ifpdf\ifluatex\else +\pdfinfo{ + /Author (H.-Martin Muench) + /Title (regstats package example) + /Subject (Example for the regstats package) + /Keywords (LaTeX;registers;read;write;language;box;dimen;count;toks;muskip;skip;counter;regstats) } +\fi\fi +%% If you use the hyperref package, use the options of that package +%% to set the pdf information. +%% Do NOT use \pdfinfo AND the hyperref package! + +%%\usepackage{etex} +%%\usepackage{morewrites} + +\makeatletter +\newcommand{\stressCounter}[1]{% + \ifnum\the\count10<#1\relax\else\message{Already \the\count10 \space counters used.} \fi% + \@tempcnta=0\relax% + \@whilenum\the\count10<#1\do% + {\advance\@tempcnta +1\relax% + \newcounter{TestCounter\the\@tempcnta} \message{counter \the\allocationnumber ^^J}% + }% + } + +\newcommand{\stressDimen}[1]{% + \ifnum\the\count11<#1\relax\else\message{Already \the\count11 \space dimens used.} \fi% + \@tempcnta=0\relax% + \@whilenum\the\count11<#1\do% + {\advance\@tempcnta +1\relax% + \expandafter\newdimen\csname TestDimen\the\@tempcnta\endcsname \message{dimen \the\allocationnumber ^^J}% + }% + } + +\newcommand{\stressSkip}[1]{\% + \ifnum\the\count12<#1\relax\else\message{Already \the\count11 \space skips used.} \fi% + \@tempcnta=0\relax% + \@whilenum\the\count12<#1\do% + {\advance\@tempcnta +1\relax% + \expandafter\newskip\csname TestSkip\the\@tempcnta\endcsname \message{skip \the\allocationnumber ^^J}% + }% + } + +\newcommand{\stressMuskip}[1]{% + \ifnum\the\count13<#1\relax\else\message{Already \the\count11 \space muskips used.} \fi% + \@tempcnta=0\relax% + \@whilenum\the\count13<#1\do% + {\advance\@tempcnta +1\relax% + \expandafter\newmuskip\csname TestMuskip\the\@tempcnta\endcsname \message{muskip \the\allocationnumber ^^J}% + }% + } + +\newcommand{\stressBox}[1]{% + \ifnum\the\count14<#1\relax\else\message{Already \the\count11 \space boxes used.} \fi% + \@tempcnta=0\relax% + \@whilenum\the\count14<#1\do% + {\advance\@tempcnta +1\relax% + \expandafter\newbox\csname TestBox\the\@tempcnta\endcsname \message{box \the\allocationnumber ^^J}% + }% + } + +\newcommand{\stressToks}[1]{% + \ifnum\the\count15<#1\relax\else\message{Already \the\count11 \space toks used.} \fi% + \@tempcnta=0\relax% + \@whilenum\the\count15<#1\do% + {\advance\@tempcnta +1\relax% + \expandafter\newtoks\csname TestToks\the\@tempcnta\endcsname \message{toks \the\allocationnumber ^^J}% + }% + } + +\newcommand{\stressRead}[1]{% + \ifnum\the\count16<#1\relax\else\message{Already \the\count11 \space reads used.} \fi% + \@tempcnta=0\relax% + \@whilenum\the\count16<#1\do% + {\advance\@tempcnta +1\relax% + \expandafter\newread\csname TestRead\the\@tempcnta\endcsname \message{read \the\allocationnumber ^^J}% + }% + } + +\newcommand{\stressWrite}[1]{% + \ifnum\the\count17<#1\relax\else\message{Already \the\count11 \space writes used.} \fi% + \@tempcnta=0\relax% + \@whilenum\the\count17<#1\do% + {\advance\@tempcnta +1\relax% + \expandafter\newwrite\csname TestWrite\the\@tempcnta\endcsname \message{write \the\allocationnumber ^^J}% + }% + } + +\newcommand{\stressFam}[1]{% + \ifnum\the\count18<#1\relax\else\message{Already \the\count11 \space fams used.} \fi% + \@tempcnta=0\relax% + \@whilenum\the\count18<#1\do% + {\advance\@tempcnta +1\relax% + \expandafter\newfam\csname TestFam\the\@tempcnta\endcsname \message{fam \the\allocationnumber ^^J}% + }% + } + +\newcommand{\stressLanguage}[1]{% + \ifnum\the\count19<#1\relax\else\message{Already \the\count11 \space languages used.} \fi% + \@tempcnta=0\relax% + \@whilenum\the\count19<#1\do% + {\advance\@tempcnta +1\relax% + \expandafter\newlanguage\csname TestLanguage\the\@tempcnta\endcsname \message{language \the\allocationnumber ^^J}% + }% + } + +\newcommand{\stressInsert}[1]{% + \message{Declaring #1\space ADDITIONAL inserts:}% + \@tempcnta=0\relax% + \@whilenum\the\@tempcnta<#1\do% + {\advance\@tempcnta +1\relax% + \expandafter\newinsert\csname TestInsert\the\@tempcnta\endcsname% + \message{insert \the\@tempcnta: \the\allocationnumber^^J}% + }% + } \makeatother + \listfiles \begin{document} \pagenumbering{arabic} \section*{Example for regstats} This example demonstrates the use of package\newline -\textsf{regstats}, v1.0h as of 2012/01/07 (HMM).\newline -The used options were \texttt{proof=false,left=true,timer=true}.\newline -\texttt{proof=false} is the default, but neither \texttt{left=true} -nor \texttt{timer=true} are defaults (\texttt{left=false,timer=false} -would be the defaults).\newline +\textsf{regstats}, v1.1a as of 2023-04-04.\newline +The used options were \texttt{left=true,timer=true}.\par +\texttt{left=false,timer=false} would be the defaults.\newline -If \eTeX{} is available with your \LaTeX{}-distribution -and you want to use it, uncomment the\newline -\verb|%% \usepackage{etex}[1998/03/26]% v2.0|\newline -line in the preamble of this document.\newline +Regarding the use of +\makeatletter% +\ \@ifundefined{eTeX}{\hbox{$\m@th \varepsilon $-\TeX}}{\eTeX}, % +\makeatother% +the \texttt{morewrite} package, the reservation of \texttt{insert}s, +and using more \texttt{math families} please see the documentation!\newline -For more details please see the documentation!\newline +For the resulting message, please compile \texttt{regstats-example.tex} +and have a look at the end of its \texttt{.log}-file.\newline -\noindent Save per page about $200\unit{ml}$ water, -$2\unit{g}$ CO$_{2}$ and $2\unit{g}$ wood:\newline -Therefore please print only if this is really necessary.\newline +Because the compilation time for this example is usually quite short, +option \texttt{timer} is not demonstrated very spectacular.\newline -For the resulting message, please compile regstats-example.tex and -have a look at the end of the log-file. +To test a register type for the number of available registers, +uncomment the respective line below and set the number to an interesting value. -Because the compilation time for this example is usually quite short, -option \texttt{timer} is not demonstrated very spectacular. + +\makeatletter +%%\stressCounter{233} +%%\stressDimen{233} +%%\stressSkip{233} +%%\stressMuskip{255} +%%\stressBox{233} +%%\stressToks{255} +%%\stressRead{15} +%%\stressWrite{14} +%%\stressFam{15} +%%\stressLanguage{255} +%%\stressInsert{20} +\makeatother \end{document} %</example> % \end{macrocode} % % \StopEventually{} -% % \newpage % % \section{The implementation} -% -% We start off by checking that we are loading into \LaTeXe\ and +% We start off by checking that we are loading into \LaTeXe{} and % announcing the name and version of this package. % % \begin{macrocode} @@ -480,9 +508,8 @@ option \texttt{timer} is not demonstrated very spectacular. % \end{macrocode} % % \begin{macrocode} -\NeedsTeXFormat{LaTeX2e}[2011/06/27] -\ProvidesPackage{regstats}[2012/01/07 v1.0h - Counting used registers (HMM)] +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{regstats}[2023/04/04 v1.1a Counting used registers (HMM)] % \end{macrocode} % @@ -496,73 +523,89 @@ option \texttt{timer} is not demonstrated very spectacular. % \end{macrocode} % -% We need the \xpackage{kvoptions}, \xpackage{atveryend}, and -% \xpackage{ltxcmds} packages by \textsc{Heiko Oberdiek}: +% We need the \xpackage{kvoptions} package: % % \begin{macrocode} -\RequirePackage{kvoptions}[2010/12/23]% v3.10 -\RequirePackage{atveryend}[2011/06/30]% v1.8 -\RequirePackage{ltxcmds}[2011/04/18]% v1.20 +\RequirePackage{kvoptions}% Key value format for package options (HO) % \end{macrocode} % -% A last information for the user: -% -% \begin{macrocode} -%% regstats may work with earlier versions of LaTeX and these -%% packages, but this was not tested. Please consider updating -%% your LaTeX and packages to the most recent version -%% (if they are not already the most recent version). - -% \end{macrocode} -% -% \indent See subsection~\ref{ss:Downloads} about how to get them.\\ -% % We process the options: % % \begin{macrocode} \SetupKeyvalOptions{family=regstats,prefix=regstats@} -\DeclareBoolOption{proof}% \regstats@proof -\DeclareBoolOption{left} +\DeclareBoolOption{left}% \regstats@left \DeclareBoolOption{timer} +\DeclareBoolOption{proof}% OBSOLETE \ProcessKeyvalOptions* +% \end{macrocode} +% +% Option |proof| is \textbf{obsolete}: +% +% \begin{macrocode} \ifregstats@proof - \PackageInfo{regstats}{% - This package will use one of each kind of register itself!% - \MessageBreak% - (And other packages used by this package\MessageBreak% - probably use additional resources,\MessageBreak% - if those packages are not used anyway.)\MessageBreak% - } + \PackageWarningNoLine{regstats}{Option proof is obsolete. Please do not use it\MessageBreak% + when loading the regstats package} \else - \PackageInfo{regstats}{% - This package will not use registers itself,\MessageBreak% - but packages used by this package\MessageBreak% - (and packages loaded by those packages)\MessageBreak% - use additional resources,\MessageBreak% - if those packages are not used anyway.\MessageBreak% - } + \PackageInfo{regstats}{Option proof is obsolete.\MessageBreak% + If you used proof=false, please remove this\@gobble} \fi % \end{macrocode} % -% The different kinds of registers used with option |proof=true| -% are used not before |\AtVeryVeryEnd|, therefore even if it is -% the one used register too much, it should not interfere -% with the creation of the document.\\ +% We need the \pkg{iftex} package (or its predecessors \pkg{ifpdf}, +% \pkg{ifetex}, and \pkg{ifluatex}): +% +% \begin{macrocode} +\IfFileExists{iftex.sty}{\RequirePackage{iftex}}{ + \RequirePackage{ifpdf} + \RequirePackage{ifetex} + \RequirePackage{ifluatex} + } + +% \end{macrocode} +% \pagebreak +% \begin{macrocode} +\@ifundefined{ifluatex}{\newif\ifluatex \luatexfalse}{\relax} +\@ifundefined{ifetex}{\newif\ifetex \etexfalse}{\relax} + +% \end{macrocode} +% +% Yes, if \hologo{LuaLaTeX} is used without defining |\ifluatex|, +% then we fail safe with assuming \hologo{LuaLaTeX} is not used. +% Otherwise everything (|\else|s and |\fi|s) gets mixed up, +% but \hologo{LuaLaTeX} without |\ifluatex| is really broken. +% Also if |\ifetex| is unknown, we assume that there is no +% \hologo{eTeX} available. +% +% \medskip +% +% Option timer requires some condition: % % \begin{macrocode} \ifregstats@timer - \RequirePackage{intcalc}[2007/09/27]% v1.1 - \RequirePackage{ifluatex}[2010/03/01]% v1.3 - \RequirePackage{ifpdf}[2011/01/30]% v2.3 + \ifpdf \RequirePackage{intcalc} + \else \PackageError{regstats}{Option timer only works with pdf(la)tex\MessageBreak% + and with lua(la)tex}{Neither appears to be used here.} + \regstats@timerfalse + \fi \fi -\newcommand{\regst@ts@timer}{% - \message{^^J} - \ifluatex +% \end{macrocode} +% +% The timer: +% +% \begin{macrocode} +\newcommand{\regst@ts@timer}{\message{^^J}% + \@tempcnta=0% +% \end{macrocode} +% +% For \hologo{LuaLaTeX}: +% +% \begin{macrocode} + \ifluatex% \@tempcnta=% \directlua{ if starttime then @@ -570,380 +613,555 @@ option \texttt{timer} is not demonstrated very spectacular. else tex.sprint(0) end - }\relax - \ifnum \the\@tempcnta = 0 + }\relax% +% \end{macrocode} +% +% and for pdf\LaTeX: +% +% \begin{macrocode} + \else \ifpdf \@tempcnta=\the\pdfelapsedtime\relax\fi% + \fi% +% \end{macrocode} +% +% Checking the result: +% +% \begin{macrocode} + \ifnum \the\@tempcnta = 0% + \ifluatex% \PackageError{regstats}{Did you forget to start the timer?}{% - Before \string\documentclass\space you need to say% - \MessageBreak% - \string\directlua{starttime = os.clock()} \MessageBreak% - } - \fi - \else - \ifpdf - \@tempcnta=\the\pdfelapsedtime\relax - \else - \PackageError{regstats}{Option timer only works with pdf(la)tex% - \MessageBreak% - and with lua(la)tex}{% - Neither appear to be used here. Announced compilation time % - will be zero. - } - \@tempcnta=0\relax - \fi - \fi - \edef\regstatselapsedtime{\the\@tempcnta} - \divide \@tempcnta by 65536% scaledseconds -> seconds - \edef\regstatsseconds{\the\@tempcnta} - \ifnum \regstatsseconds > 59 - \edef\regstatsseconds{\intcalcMod{\the\@tempcnta}{60}} - \divide \@tempcnta by 60% seconds -> minutes - \else - \@tempcnta=0\relax% minutes = 0 - \fi - \ifnum \regstatsseconds < 10 - \message{Time elapsed for the last compiler run:^^J% - about \the\@tempcnta:0\regstatsseconds\space% - (m:ss; \regstatselapsedtime /65536 s).^^J} - \else + Before \string\documentclass\space you need to say\MessageBreak% + \string\directlua{starttime = os.clock()}}% + \fi% + \PackageError{regstats}{Could not determine the time used for compilation}{Reason is unknown.}% + \else% % \end{macrocode} % +% It worked! % \pagebreak % % \begin{macrocode} - \message{Time elapsed for the last compiler run:^^J% - about \the\@tempcnta:\regstatsseconds \space% - (m:ss; \regstatselapsedtime /65536 s).^^J} - \fi + \xdef\regstatselapsedtime{\the\@tempcnta}% + \divide \@tempcnta by 65536% scaled-seconds -> seconds + \xdef\regstatsseconds{\the\@tempcnta}% + \ifnum \regstatsseconds > 59% + \xdef\regstatsseconds{\intcalcMod{\the\@tempcnta}{60}}% + \divide \@tempcnta by 60% seconds -> minutes + \else% + \@tempcnta=0% minutes = 0 + \fi% + \ifnum \regstatsseconds < 10% + \message{Time elapsed for the last compiler run:^^J% + about \the\@tempcnta:0\regstatsseconds\space% + (m:ss; \regstatselapsedtime /65536 s).^^J}% + \else% + \message{Time elapsed for the last compiler run:^^J% + about \the\@tempcnta:\regstatsseconds \space% + (m:ss; \regstatselapsedtime /65536 s).^^J}% + \fi% + \fi% } -\ifregstats@timer -\else -\renewcommand{\regst@ts@timer}{\relax} -\fi +% \end{macrocode} +% +% If the |timer|-option was not used, we do not use the timer: +% +% \begin{macrocode} +\ifregstats@timer\else\renewcommand{\regst@ts@timer}{\relax}\fi -\let\regst@ts@statistics\AtVeryVeryEnd% +% \end{macrocode} +% +% Initialisation of some commands: +% +% \begin{macrocode} +\long\def\regstats@firstofone#1{#1} + +\providecommand\IfFormatAtLeastTF{\@ifl@t@r\fmtversion} + +\let\regst@tsNoeTeX\relax + +\xdef\regstats@lft{} % \end{macrocode} % -% \LaTeXe{} 2011/06/27 changed the |\enddocument| command and thus -% broke the \xpackage{atveryend} package, which was then fixed. +% \LaTeXe{} 2011-06-27 changed the |\enddocument| command and thus +% broke the \pkg{atveryend} package, which was then fixed. % If new \LaTeXe{} and old \xpackage{atveryend} are combined, % |\AtVeryVeryEnd| will never be called. -% |\@ifl@t@r\fmtversion| is from |\@needsf@rmat| as in\\ -% \texttt{File L: ltclass.dtx Date: 2007/08/05 Version v1.1h}, line~259,\\ -% of The \LaTeXe{} Sources\\ -% by \textsc{Johannes Braams, David Carlisle, Alan Jeffrey, Leslie Lamport,% -% Frank Mittelbach, Chris Rowley, and Rainer Sch\"{o}pf},\\ -% as of 2011/06/27, p.~464. +% \LaTeXe{} 2020-10-01 introduced a new hook management. +% For \LaTeXe-format 2022-11-01 and newer we use hooks instead of +% loading the \pkg{atveryend} package. % % \begin{macrocode} -\@ifl@t@r\fmtversion{2011/06/27}% or possibly even newer -{\@ifpackagelater{atveryend}{2011/06/29}% - {% 2011/06/30, v1.8, or even more recent: OK - }{% else: older package version, no \AtVeryVeryEnd - \let\regst@ts@statistics\ltx@firstofone% - } -}{% else: older fmtversion: OK +\IfFormatAtLeastTF{2022/11/01}{ + \let\regst@ts@statistics\regstats@firstofone% We do not use \AtVeryVeryEnd. + \newcommand{\regst@ts@st@tistics}[1]{\AddToHook{begindocument}{% % \end{macrocode} % -% In this case the used \TeX{} format is outdated, but when\\ -% |\NeedsTeXFormat{LaTeX2e}[2011/06/27]|\\ -% is executed at the beginning of \xpackage{regstats} package, -% the appropriate warning message is issued automatically. -% (And \xpackage{regstats} should also work with older versions, -% I~used it with a 2003/12/01 version myself.) +% The \pkg{morewrites} package allows for more writes (see \hbox{p. \pageref{write}):} % % \begin{macrocode} -} - -\AtBeginDocument{% - \AtEndDocument{% - \BeforeClearDocument{% - \AfterLastShipout{% - \AtVeryEndDocument{% - \AtEndAfterFileList{% + \AddToHook{begindocument/end}{\IfPackageLoadedTF{morewrites}{\def\regs@tsmw{65250}}{% + \ifluatex\def\regs@tsmw{124}\else\def\regs@tsmw{16}\fi}% + \AddToHook{enddocument}{\AddToHook{enddocument/afterlastpage}{\AddToHook{enddocument/afteraux}{% + \AddToHook{enddocument/info}{\AddToHook{enddocument/end}{#1}}}}}}}} + }{\RequirePackage{atveryend} + \let\regst@ts@statistics\AtVeryVeryEnd + \IfFormatAtLeastTF{2011/06/27}{ + \@ifpackagelater{atveryend}{2011/06/29}{% 2011/06/30, v1.8, or even more recent: OK + }{% else: older package version, no \AtVeryVeryEnd + \let\regst@ts@statistics\regstats@firstofone + } + }{% else: older fmtversion: also OK + } + \newcommand{\regst@ts@st@tistics}[1]{\AtBeginDocument{\AtEndDocument{\AfterLastShipout{\AtVeryEndDocument{% + \AtEndAfterFileList{#1}}}}}} +% \end{macrocode} +% +% With the |seminar| class or the \pkg{slidesec} package |\AtVeryVeryEnd| must not be used: +% +% \begin{macrocode} + \AtBeginDocument{% + \@ifclassloaded{seminar}{% no \AtVeryVeryEnd + \let\regst@ts@statistics\regstats@firstofone}{\relax} + \@ifpackageloaded{slidesec}{% no \AtVeryVeryEnd + \let\regst@ts@statistics\regstats@firstofone}{\relax} % \end{macrocode} % -% The \xpackage{regstats} package uses the \xpackage{atveryend} package, -% which is not compatible with the \xclass{seminar} class nor the -% \xpackage{slidesec} package. |\AtVeryVeryEnd| cannot be used with that -% class or package.\\ -% |\ltx@ifclassloaded| and |\ltx@ifpackageloaded| from the \xpackage{ltxcmds} -% package can be used after |\AtBeginDocument| (in contrast to -% |\@ifclassloaded| and |\@ifpackageloaded|). +% The \pkg{morewrites} package allows for more writes (see \hbox{p. \pageref{write}):} % % \begin{macrocode} - \ltx@ifclassloaded{seminar}{% no \AtVeryVeryEnd - \let\regst@ts@statistics\ltx@firstofone% - }{% else - \ltx@ifpackageloaded{slidesec}{% no \AtVeryVeryEnd - \let\regst@ts@statistics\ltx@firstofone% - }{% else: OK + \@ifpackageloaded{morewrites}{\def\regs@tsmw{32767}}{\ifluatex\def\regs@tsmw{124}\else\def\regs@tsmw{15}\fi}% +% \end{macrocode} +% +% If neither \eTeX{} is available nor the \pkg{etex} package loaded, +% the number of available registers is drastically reduced: +% +% \begin{macrocode} + \ifetex\else% + \@ifpackageloaded{etex}{\relax}{% else + \gdef\regst@tsNoeTeX{% + \PackageWarning{regstats}{Neither eTeX nor the e-TeX-package found.\MessageBreak% + That can mean that e-TeX was disabled or\MessageBreak% + that your distribution of TeX does not contain e-TeX\MessageBreak% + or that you simply forgot to say \string\usepackage{etex}\MessageBreak% + in the preamble of \jobname.tex.\MessageBreak% + The number of available counter, dimen, skip,\MessageBreak% + muskip, box, and toks registers as well as the\MessageBreak% + number of insertions would be larger when using\MessageBreak% + eTeX or the e-TeX-package;% }% + }% }% + \fi% + } + } + +% \end{macrocode} +% \pagebreak +% \begin{macrocode} +\regst@ts@st@tistics{% +\regst@ts@statistics{% + \xdef\regstats@message{\relax}% % \end{macrocode} % -% |\AtEndAfterFileList| we write to |\AtVeryVeryEnd| (if available) via\linebreak -% |\regst@ts@statistics|, thus the code will be executed quite late during -% the compilation. (Please load \xpackage{regstats} as very last package!)\\ +% |\regstats@regstatA| uses three arguments: 1.~the used number of registers +% of some type, 2.~the \textquotedblleft regular\textquotedblright number +% of available registers of that type, 3.~that number in case of extended +% register range (\eTeX). Maximum available minus used registers gives +% the number of free/currently available registers. % % \begin{macrocode} - \regst@ts@statistics{% + \newcommand{\regstats@regstatA}[3]{% + \ifx\regst@tsNoeTeX\relax \xdef\regstats@max{#3}\else\xdef\regstats@max{#2}\fi% + \@tempcnta=\regstats@max \relax% + \advance\@tempcnta by -#1\relax% + \xdef\regstats@free{\the\@tempcnta}% + }% % \end{macrocode} % -% We try to determine, whether the \xpackage{etex}-package was loaded by the user -% (which requires \eTeX{} being available in the \LaTeX{} distribution -% used to compile the document). +% |\regstats@regstatB| gives the singular (2nd~argument) or plural (3rd~argument) +% of the name of that register type (1st~argument): % % \begin{macrocode} - \ltx@ifpackageloaded{etex}{% - \PackageInfo{regstats}{e-TeX-package found.} - }{% else - \PackageWarning{regstats}{Could not find the e-TeX-package.% - \MessageBreak% - That can mean that e-TeX was disabled or\MessageBreak% - that your distribution of TeX does not contain e-TeX% - \MessageBreak% - or that you simply forgot to say \string\usepackage{etex}% - \MessageBreak% - in the preamble of \jobname.tex.\MessageBreak% - The number of available counter, dimen, skip,\MessageBreak% - muskip, box, and toks registers as well as the\MessageBreak% - number of insertions would be larger when using% - \MessageBreak% - the e-TeX-package.% - } - } + \newcommand{\regstats@regstatB}[3]{% + \@tempcnta=\regstats@max\relax% + \advance\@tempcnta by -#1\relax% + \xdef\regstats@free{\the\@tempcnta}% + \@tempcnta=#1\relax% + \ifnum \the\@tempcnta = 0% + \@tempcnta=2\relax% zero: same as plural + \fi% + \ifnum \the\@tempcnta > 1% + \gdef\regstats@pl{#3}% plural + \else% + \gdef\regstats@pl{#2}% singular + \fi% % \end{macrocode} % -% We define a new command to determine the singular/plural form, -% maximum of available registers, and (if option |left| was chosen) -% the number of remaining registers of that type. +% The number of used registers is given as per cent of the available +% registers of that type: % % \begin{macrocode} - \def\regstats@lft{}% - \newcommand{\regstats@regstat}[5]{% + \@tempcnta=#1\relax% + \multiply\@tempcnta by 100\relax% + \@tempcntb=\regstats@max\relax% + \divide\@tempcnta by\@tempcntb\relax% + \xdef\regstats@used{\space(\the\@tempcnta\@percentchar\space used)}% % \end{macrocode} % -% The five parameters are: number of used registers of that type, -% singular ending, plural ending, number of available registers without -% \eTeX{}, number of available registers with \eTeX{} (in this order). +% If option |left| was chosen, the number of remaining registers of that type is announced: % % \begin{macrocode} - \@tempcnta=#1 \relax - \ifnum \the\@tempcnta = 0 - \@tempcnta=2 \relax - \fi - \ifnum \the\@tempcnta > 1 - \gdef\regstats@pl{#3} - \else - \gdef\regstats@pl{#2} - \fi - \ltx@ifpackageloaded{etex}{\edef\regstats@max{#5}}{% - \edef\regstats@max{#4}} - \ifregstats@left - \@tempcnta=\regstats@max \relax - \advance\@tempcnta by -#1% - \ifnum \the\@tempcnta > 0 - \edef\regstats@lft{, left: \the\@tempcnta} - \else - \ifnum \the\@tempcnta = 0 - \edef\regstats@lft{, left: \the\@tempcnta !!!} - \else% \the\@tempcnta < 0 - \edef\regstats@lft{, left: \the\@tempcnta **********} - \fi - \fi + \ifregstats@left% + \ifnum \regstats@free > 0\relax% + \xdef\regstats@lft{, left: \regstats@free}% + \else% + \ifnum \regstats@free = 0\relax% + \xdef\regstats@lft{, left: \regstats@free !!!}% + \else% \regstats@free < 0 + \xdef\regstats@lft{, left: \regstats@free ??? **********}% + \fi% + \fi% + \fi% + }% % \end{macrocode} % -% | \else| |\regstats@lft| will stay |\empty|. +% We now just take the current numbers of the various |count|s: % % \begin{macrocode} - \fi - } + \xdef\regstats@counter{\the\count10}% + \xdef\regstats@dimen{\the\count11}% + \xdef\regstats@skip{\the\count12}% + \xdef\regstats@muskip{\the\count13}% + \xdef\regstats@box{\the\count14}% + \xdef\regstats@toks{\the\count15}% + \xdef\regstats@read{\the\count16}% + \xdef\regstats@write{\the\count17}% + \xdef\regstats@fam{\the\count18}% + \xdef\regstats@language{\the\count19}% + \xdef\regstats@insert{\the\count20}% % \end{macrocode} % -% When option |proof| was chosen, one new register of each named type -% is used and its number compared with the according |count| number. -% We give a warning about the use of additional registers. +% |\countdef\insc@unt=20| is a synonym for the insertion counter.\par +% |\countdef\allocationnumber=21| is a synonym for the allocation counter +% |\count21|, which contains the most recently allocated number. +% For example, if |\newdimen{\regstatsdimen}| allocated a new dimen, +% and that dimen uses the $48\textsuperscript{th}$~dimen register, then +% |\count21| contains the $48$.\par +% |\count22| contains $-1$. +% \medskip +% +% We build the |\regstats@message|: % % \begin{macrocode} - \ifregstats@proof - \PackageWarning{regstats}{% - Package regstats loaded with option 'proof'.\MessageBreak% - This package itself will now use\MessageBreak% - one of each register for testing!\MessageBreak% - }% - \def\regstats@proof{1} - \newcounter{regstatscount} - \edef\regstats@counter{\the\allocationnumber} - \edef\regstats@test{\the\count10} - \ifx\regstats@counter\regstats@test - \else - \message{Discrepancy when counting count registers.^^J} - \def\regstats@proof{0} - \fi - \newdimen{\regstatsdimen} - \edef\regstats@dimen{\the\allocationnumber} - \edef\regstats@test{\the\count11} - \ifx\regstats@dimen\regstats@test - \else - \message{Discrepancy when counting dimen registers.^^J} - \def\regstats@proof{0} - \fi - \newskip\regstatsskip - \edef\regstats@skip{\the\allocationnumber} - \edef\regstats@test{\the\count12} - \ifx\regstats@skip\regstats@test - \else - \message{Discrepancy when counting skip registers.^^J} - \def\regstats@proof{0} - \fi - \newmuskip\regstatsmuskip - \edef\regstats@muskip{\the\allocationnumber} - \edef\regstats@test{\the\count13} - \ifx\regstats@muskip\regstats@test - \else - \message{Discrepancy when counting muskip registers.^^J} - \def\regstats@proof{0} - \fi - \newbox\regstatsbox - \edef\regstats@box{\the\allocationnumber} - \edef\regstats@test{\the\count14} - \ifx\regstats@box\regstats@test - \else - \message{Discrepancy when counting box registers.^^J} - \def\regstats@proof{0} - \fi - \newtoks\regstatstoks - \edef\regstats@toks{\the\allocationnumber} - \edef\regstats@test{\the\count15} - \ifx\regstats@toks\regstats@test - \else - \message{Discrepancy when counting toks registers.^^J} - \def\regstats@proof{0} - \fi - \newread\regstatsread - \edef\regstats@read{\the\allocationnumber} - \edef\regstats@test{\the\count16} - \ifx\regstats@read\regstats@test - \else - \message{Discrepancy when counting read registers.^^J} - \def\regstats@proof{0} - \fi - \newwrite\regstatswrite - \edef\regstats@write{\the\allocationnumber} - \edef\regstats@test{\the\count17} - \ifx\regstats@write\regstats@test - \else - \message{Discrepancy when counting write registers.^^J} - \def\regstats@proof{0} - \fi - \newfam\regstatsfam - \edef\regstats@fam{\the\allocationnumber} - \edef\regstats@test{\the\count18} - \ifx\regstats@fam\regstats@test - \else - \message{Discrepancy when counting fam registers.^^J} - \def\regstats@proof{0} - \fi - \newlanguage\regstatslanguage - \edef\regstats@language{\the\allocationnumber} - \edef\regstats@test{\the\count19} - \ifx\regstats@language\regstats@test - \else - \message{Discrepancy when counting language registers.^^J} - \def\regstats@proof{0} - \fi - \newinsert\regstatsinsert - \edef\regstats@insert{\the\allocationnumber} - \edef\regstats@test{\the\count20} - \ifx\regstats@insert\regstats@test - \else - \message{Discrepancy when counting insert registers.^^J} - \def\regstats@proof{0} - \fi + \xdef\regstats@message{\regstats@message\message{^^J}}% + \xdef\regstats@message{\regstats@message\message{Here is how much of TeX's registers you used^^J}}% + \xdef\regstats@message{\regstats@message\message{\space (numbers of available registers are estimated!):^^J}}% % \end{macrocode} % -% When there was a discrepancy somewhere, we give the according message. +% While |\xdef\regstats@...{\the\count...}| was used above, +% if \eTeX{} is available we use another register of that type +% and look at the register number it received.\par +% Classic \TeX{} has $2^{8}=256$~registers, +% \eTeX{} and \XeTeX{} have $2^{15}=32\,768$~registers, +% and \hologo{LuaLaTeX} has even $2^{15}=65\,536$~registers +% (for |\count|, |\dimen|, |\skip|, |\muskip|, |\box|, and |\toks|). +% There are only 16~|\read|s available. +% |\write|s and |\fam|s were traditionally also 16, +% see page~\pageref{write} (write) and page~\pageref{families} (families) about using more. +% |\lang|s are only 256 available. +% |\insert|s are complicated (see \hbox{p. \pageref{insertions}). --}\ % +% Each |\newlength| needs a skip register. +% +% \medskip +% +% \textbf{The counter registers:} % % \begin{macrocode} - \edef\regstats@test{0} - \ifx\regstats@proof\regstats@test - \message{Regstats test for register numbers failed.^^J} - \message{Therefore option 'proof' is necessary to get the % - right numbers.^^J} - \fi - \else + \regstats@regstatA{\regstats@counter}{255}{32767}% + \ifetex\newcounter{regstatscount}\xdef\regstats@counter{\the\allocationnumber}\fi% + \regstats@regstatB{\regstats@counter}{}{s}% + \xdef\regstats@message{\regstats@message\message{ \regstats@counter\space counter register\regstats@pl\space% + out of \regstats@max\regstats@used\regstats@lft ^^J}}% + % % \end{macrocode} -% % \pagebreak % -% Without option |proof|, we just take the values of the various |count|s. +% \textbf{The dimen registers:} % % \begin{macrocode} - \edef\regstats@counter{\the\count10} - \edef\regstats@dimen{\the\count11} - \edef\regstats@skip{\the\count12} - \edef\regstats@muskip{\the\count13} - \edef\regstats@box{\the\count14} - \edef\regstats@toks{\the\count15} - \edef\regstats@read{\the\count16} - \edef\regstats@write{\the\count17} - \edef\regstats@fam{\the\count18} - \edef\regstats@language{\the\count19} - \edef\regstats@insert{\the\count20} - \fi + \regstats@regstatA{\regstats@dimen}{255}{32767}% + \ifetex\newdimen{\regstatsdimen}\xdef\regstats@dimen{\the\allocationnumber}\fi% + \regstats@regstatB{\regstats@dimen}{}{s}% + \xdef\regstats@message{\regstats@message\message{ \regstats@dimen\space dimen register\regstats@pl\space% + out of \regstats@max\regstats@used\regstats@lft ^^J}}% + % % \end{macrocode} % -% |insert|s are used starting with a high number and moving downward. +% \textbf{The skip registers:} % % \begin{macrocode} - \@tempcnta = 233 \relax - \advance\@tempcnta by -\regstats@insert% - \advance\@tempcnta by +1% - \edef\regstats@insert{\the\@tempcnta} + \regstats@regstatA{\regstats@skip}{255}{32767}% + \ifetex\newskip\regstatsskip\xdef\regstats@skip{\the\allocationnumber}\fi% + \regstats@regstatB{\regstats@skip}{}{s}% + \xdef\regstats@message{\regstats@message\message{ \regstats@skip\space skip register\regstats@pl\space% + out of \regstats@max\regstats@used\regstats@lft ^^J}}% + % % \end{macrocode} % -% \newpage -% \begin{landscape} +% \textbf{The muskip registers:} +% +% \begin{macrocode} + \regstats@regstatA{\regstats@muskip}{255}{32767}% + \ifetex\newmuskip\regstatsmuskip\xdef\regstats@muskip{\the\allocationnumber}\fi% + \regstats@regstatB{\regstats@muskip}{}{s}% + \xdef\regstats@message{\regstats@message\message{ \regstats@muskip\space muskip register\regstats@pl\space% + out of \regstats@max\regstats@used\regstats@lft ^^J}}% + % +% \end{macrocode} +% +% \textbf{The box registers:} +% +% \begin{macrocode} + \regstats@regstatA{\regstats@box}{255}{32767}% + \ifetex\newbox\regstatsbox\xdef\regstats@box{\the\allocationnumber}\fi% + \regstats@regstatB{\regstats@box}{}{s}% + \xdef\regstats@message{\regstats@message\message{ \regstats@box\space box register\regstats@pl\space% + out of \regstats@max\regstats@used\regstats@lft ^^J}}% + % +% \end{macrocode} +% +% \textbf{The toks registers:} +% +% \begin{macrocode} + \regstats@regstatA{\regstats@toks}{255}{32767}% + \ifetex\newtoks\regstatstoks\xdef\regstats@toks{\the\allocationnumber}\fi% + \regstats@regstatB{\regstats@toks}{}{s}% + \xdef\regstats@message{\regstats@message\message{ \regstats@toks\space toks register\regstats@pl\space% + out of \regstats@max\regstats@used\regstats@lft ^^J}}% + % +% \end{macrocode} +% +% \textbf{The \textquotedblleft read registers\textquotedblright, i.\,e. input streams:} +% +% \begin{macrocode} + \regstats@regstatA{\regstats@read}{15}{15}% + \ifnum \regstats@free > 0\relax\newread\regstatsread\xdef\regstats@read{\the\allocationnumber}\fi% + \regstats@regstatB{\regstats@read}{}{s}% + \xdef\regstats@message{\regstats@message\message{ \regstats@read\space input stream\regstats@pl\space (read) % + out of \regstats@max\regstats@used\regstats@lft ^^J}}% + % +% \end{macrocode} +% +% \phantomsection\label{write} +% \textbf{The \textquotedblleft write registers\textquotedblright, i.\,e. output streams:}\newline +% Traditionally, there are $16$~available output streams. Lua\TeX{} increases +% this to $124$, and the \pkg{morewrites} package even to $65\,250$ for \LaTeX, +% but not for \hologo{LuaLaTeX}. After write $32\,749\textsuperscript{th}$~write +% on |\write32767|, morewrites additionally uses one count register +% for each new write. And after the $65\,250\textsuperscript{th}$~write +% uses |\count32766|, there is no room for another |\count|, +% and therefore opening further writes fails. +% +% \begin{macrocode} + \regstats@regstatA{\regstats@write}{15}{\regs@tsmw}% + \ifnum \regstats@free > 0\relax\newwrite\regstatswrite\xdef\regstats@write{\the\allocationnumber}\fi% + \regstats@regstatB{\regstats@write}{}{s}% + \xdef\regstats@message{\regstats@message\message{ \regstats@write\space output stream\regstats@pl\space (write) % + out of \regstats@max\regstats@used\regstats@lft ^^J}}% + % +% \end{macrocode} +% +% \phantomsection\label{families} +% \textbf{The \textquotedblleft fam registers\textquotedblright, i.\,e. math families:}\newline +% Traditionally, there are $16$~available math families. \hologo{LuaLaTeX} and \XeLaTeX{} +% increase this to $256$ (at least since the 2015 release of \LaTeXe). +% +% \begin{quotation} +% \TeX{}, or more exactly the 8-bit versions of \TeX, such as \pdfTeX{}, +% have a hard limit of~16 on the number of different math font groups +% (\cs{fam} or \cs{mathgroup}) that can be used in a single formula. For each symbol font +% declared (by a package or in the preamble) an extra math group is allocated, +% and the same happens for each math alphabet, (such as \cs{mathbf}) once it +% gets used anywhere in the document. Up to now, these math +% alphabet allocations were permanent, even if they were used only once; +% the result was that in complex documents you +% could easily run out of available math font groups. +% The only remedy for this was to +% define your own math version, which is a complicated and cumbersome process. +% +% This situation has now been improved by the introduction of a new counter +% \texttt{localmathalphabets}: this counter governs how many of +% the math group slots are assigned locally when a new math +% alphabet (and a new math group) is needed. +% +% Once the current formula is finished, every such further (local) +% allocation is undone, giving you a fighting chance of being +% able to use different new math alphabets in the next formula. +% +% The default value of \texttt{localmathalphabets} is 2, +% but if you need more local alphabets because of the complexity of your +% document, you can set this to a higher value such as 4 or~5. +% Setting it even higher is possible, but this would seldom +% be useful because many group slots will be taken up by +% symbol fonts and such slots are always permanently allocated, +% whether used or not.\par +% \hfill{}(Undo math alphabet allocations if necessary, in: +% \LaTeX{} News, Issue 34, 2021-11-15) +% \end{quotation} +% +% So the number of math family groups should have become less relevant.\newline +% |\setcounter{localmathalphabets}{| something larger than 2 |}| +% might help in case of issues. (|\stressFam| in the example file +% still does not find more than 15 (or 255 with \hologo{LuaLaTeX}) +% |\fam|s available, because it (intentionally) does not use anything local. +% +% \begin{macrocode} + \regstats@regstatA{\regstats@fam}{15}{\ifluatex 255 \else 15\fi}% + \ifnum \regstats@free > 0\relax\newfam\regstatsfam\xdef\regstats@fam{\the\allocationnumber}\fi% + \regstats@regstatB{\regstats@fam}{y}{ies}% + \xdef\regstats@message{\regstats@message\message{ \regstats@fam\space math famil\regstats@pl\space (fam) % + out of \regstats@max\regstats@used\regstats@lft ^^J}}% + % +% \end{macrocode} +% \pagebreak % -% The number of used registers of each type and the number of available ones -% (estimated, probably dependent on distribution and its version, here just -% distinguished according to availability of \eTeX{}) is written -% to screen and \xfile{log} file. (Additional spaces are just for increased ease -% of readability of the code and will appear neither at the scree output nor -% in the \xfile{log}~file.) +% \textbf{The \textquotedblleft language registers\textquotedblright, i.\,e. language codes:} % % \begin{macrocode} - \message{^^J} - \message{Here is how much of TeX's registers you used^^J}% - \message{\space (numbers of available registers are estimated!):^^J}% - \regstats@regstat{\regstats@counter}{}{s}{233}{32767} - \message{ \regstats@counter\space counter register\regstats@pl\space out of \regstats@max \regstats@lft ^^J} - \regstats@regstat{\regstats@dimen}{}{s}{233}{32767} - \message{ \regstats@dimen\space dimen register\regstats@pl\space out of \regstats@max \regstats@lft ^^J} - \regstats@regstat{\regstats@skip}{}{s}{233}{32767} - \message{ \regstats@skip\space skip register\regstats@pl\space out of \regstats@max \regstats@lft ^^J} - \regstats@regstat{\regstats@muskip}{}{s}{255}{32767} - \message{ \regstats@muskip\space muskip register\regstats@pl\space out of \regstats@max \regstats@lft ^^J} - \regstats@regstat{\regstats@box}{}{s}{233}{32767} - \message{ \regstats@box\space box register\regstats@pl\space out of \regstats@max \regstats@lft ^^J} - \regstats@regstat{\regstats@toks}{}{s}{255}{32767} - \message{ \regstats@toks\space toks register\regstats@pl\space out of \regstats@max \regstats@lft ^^J} - \regstats@regstat{\regstats@read}{}{s}{15}{15} - \message{ \regstats@read\space input stream\regstats@pl\space (read) out of \regstats@max \regstats@lft ^^J} - \regstats@regstat{\regstats@write}{}{s}{15}{15} - \message{ \regstats@write\space output stream\regstats@pl\space (write) out of \regstats@max \regstats@lft ^^J} - \regstats@regstat{\regstats@fam}{y}{ies}{15}{15} - \message{ \regstats@fam\space math famil\regstats@pl\space (fam) out of \regstats@max \regstats@lft ^^J} - \regstats@regstat{\regstats@language}{}{s}{255}{255} - \message{ \regstats@language\space language code\regstats@pl\space out of \regstats@max \regstats@lft ^^J} - \regstats@regstat{\regstats@insert}{}{s}{101}{124} - \message{ \regstats@insert\space insertion\regstats@pl\space out of \regstats@max \regstats@lft ^^J} + \regstats@regstatA{\regstats@language}{255}{255}% + \ifnum \regstats@free > 0\relax\newlanguage\regstatslanguage\xdef\regstats@language{\the\allocationnumber}\fi% + \regstats@regstatB{\regstats@language}{}{s}% + \xdef\regstats@message{\regstats@message\message{ \regstats@language\space language code\regstats@pl\space% + out of \regstats@max\regstats@used\regstats@lft ^^J}}% + % % \end{macrocode} % +% \phantomsection\label{insertions}% +% \textbf{The \textquotedblleft insert registers\textquotedblright, i.\,e. insertions:}\newline +% \textquotedblleft Inserts are given numbers $254$, $253$, etc., +% since they require a |\count|, |\dimen|, |\skip|, and |\box| +% all with the same number\textquotedblright{} (source2e.pdf, +% File~b: ltplain.dtx Date:~2022-01-25 Version~v2.3h, has bugs, are fixed in dev 2023-04-04 v2.3h (i?)).\newline +% Because counter, dimen, skip, and box registers are also used independently +% from inserts, it can be expected to have no room for a new insert long before +% the 255 inserts are used.\medskip +% +% When testing, the first |\newinsert| registered into |\insert199|, +% followed by |\insert198|, \ldots, |\insert194|, and then apparently some +% |\count|, |\dimen|, |\skip|, or |\box| register was not available for +% |\insert193|. Therefore the |\newinsert| registered into |\insert252|, +% followed by |\insert251|, \ldots, |\insert201|, and then the already +% used insert registers were reached and there was +% |! No room for a new \insert|.\medskip +% +% With \hologo{LuaLaTeX} after |\insert192| the next |\newinsert| registered +% into |\insert252|, followed by |\insert251|, \ldots, |\insert201|, +% and then the next |\newinsert| registered into |\insert65534|, +% followed by |\insert65533|, \ldots, |\insert244|, and then there was +% |! No room for a new \count| -- mark it: |\count|, not |insert|. +% The inserts |\insert252| to |\insert244| seem to have been use twice +% and the inserts |\insert243|ff. not used twice only because no |\count| +% was available for them.\medskip +% +% Historic versions of \LaTeX{} were limited to less registers, +% therefore it was possible to |\usepackage{etex} \reserveinserts{17}|, +% in order to reserve room for up to 17 (or another number given) +% additional insertion classes, that will not be taken away by +% |\newcount|, |\newdimen|, |\newskip|, or |\newbox|. +% For resent \LaTeX-versions this is neither necessary nor recommendable: +% do not use the etex-package.\medskip +% +% When the inserts are needed for floats, the +% \href{https://ctan.org/pkg/morefloats}{morefloats} package can be used +% to \textquotedblleft increased the number of inserts available +% to the float mechanism\textquotedblright{} (\url{https://texfaq.org/FAQ-noroom}% +% \ at 2023-04-02). At the last given url \textquotedblleft No room for a new +% \guillemetright thing\guillemetleft\textquotedblright{} is treated. +% +% \begin{macrocode} + \ifx\regst@tsNoeTeX\relax% + \newinsert\regstatsinsert% + \xdef\regstats@insert{\the\allocationnumber}% + \xdef\regstats@max{200}% + \ifnum \regstats@insert < \regstats@max\relax% + \xdef\regstats@free{\regstats@insert}% + \@tempcnta=200\relax% + \advance\@tempcnta by -\regstats@insert\relax% + \xdef\regstats@insert{\the\@tempcnta}% + \regstats@regstatB{\regstats@insert}{}{s}% + \xdef\regstats@message{\regstats@message\message{ \regstats@insert\space insertion\regstats@pl\space% + out of \regstats@max\regstats@used\regstats@lft ^^J}}% + \else% + \ifnum \regstats@insert = 200\relax% + \xdef\regstats@message{\regstats@message\message{Number of insertions could not be calculated. ^^J}}% + \else% + \ifnum % \regstats@insert > 200 AND % + \regstats@insert < 253\relax% + \@tempcnta=253\relax% + \advance\@tempcnta by -\regstats@insert\relax% + \@tempcntb=-200\relax% + \advance\@tempcntb by \regstats@insert\relax% + \ifluatex% + \@tempcntb=-65534\relax% + \advance\@tempcntb by \regstats@insert\relax% + \xdef\regstats@message{\regstats@message\message{at least \the\@tempcnta\space insertions out of 253 used, % + about 65 000 left ^^J}}% + \else% + \xdef\regstats@message{\regstats@message\message{at least \the\@tempcnta\space insertions out of 253 used, % + maybe \the\@tempcntb\space left ^^J}}% + \fi% + \else% \regstats@insert > 252, LuaTeX + \@tempcntb=65534\relax% + \advance\@tempcntb by -\regstats@insert\relax% + \advance\@tempcntb by -253\relax% + \xdef\regstats@message{\regstats@message\message{a lot of insertions out of 65 534 used, % + about \the\@tempcntb\space left ^^J}}% + \fi% + \fi% + \fi% + \else% + \xdef\regstats@max{101}% + \@tempcnta=\regstats@max\relax% + \advance\@tempcnta by -\regstats@insert\relax% + \xdef\regstats@insert{\the\@tempcnta}% + \@tempcnta=\regstats@max\relax% + \advance\@tempcnta by -\regstats@insert\relax% + \xdef\regstats@free{\the\@tempcnta}% + \regstats@regstatB{\regstats@insert}{}{s}% + \xdef\regstats@message{\regstats@message\message{ \regstats@insert\space insertion\regstats@pl\space out of % + \regstats@max\regstats@used\regstats@lft ^^J}}% + \xdef\regstats@message{\regstats@message\message{* The number of available inserts might be increased by using % + \string\reserveinserts .^^J}}% + \fi% +% \end{macrocode} +% +% The construction of the message is now finished, the message is delivered: +% +% \begin{macrocode} + \regstats@message% +% \end{macrocode} % \pagebreak -% \end{landscape} +% +% A note about morewrites: +% +% \begin{macrocode} + \ifluatex% + \else% + \def\regs@wmst{16}% + \ifx\regs@tsmw\regs@wmst\relax% + \message{The morewrites package was not loaded.^^J}% + \message{\space With recent LaTeX and morewrites about 32 766 output streams would be available.^^J}% + \fi% + \fi% +% \end{macrocode} +% +% If neither \eTeX{} nor the e-\TeX-package was found, +% the respective warning is given: +% +% \begin{macrocode} + \regst@tsNoeTeX% +% \end{macrocode} % % When option |timer| (or |timer=true|) was used, the \xpackage{regstats} package % additionally gives the time, which was needed for the (last) compilation (run). @@ -959,156 +1177,155 @@ option \texttt{timer} is not demonstrated very spectacular. % \xpackage{regstats} package, but this would have no effect for the use of % |\pdfresettimer| before this package is called. Because this package % should be called as late as immediately before |\begin{document}|, this would mean -% that resetting would be possible during the whole loading of all packages.\\ +% that resetting would be possible during the whole loading of all packages. % % |\pdfelapsedtime| is not available when |lua(la)tex| is used instead of % |pdf(la)tex| to compile the document. In that case at the very beginning % of your \xfile{tex} file say\\ % \verb|\directlua{starttime = os.clock()}|\\ % (even before |\documentclass|!), and the \texttt{timer} option can also -% be used with |lualatex|. When neither |lualatex| nor |pdflatex| is used to +% be used with \hologo{LuaLaTeX}. When neither |lualatex| nor |pdflatex| is used to % compile the document, the timer(-option) does not work. % % \begin{macrocode} - \regst@ts@timer - }% - }% - }% - }% + \regst@ts@timer% }% - }% } - % \end{macrocode} -% % \begin{macrocode} %</package> % \end{macrocode} -% -% \newpage +% \pagebreak % % \section{Installation} -% -% \subsection{Downloads\label{ss:Downloads}} -% -% Everything is available at \CTAN{}, \url{http://www.ctan.org/tex-archive/}, +% \subsection{Downloads} +% Everything is available at \url{https://ctan.org}, % but may need additional packages themselves.\\ % % \DescribeMacro{regstats.dtx} -% For unpacking the |regstats.dtx| file and constructing the documentation it is required: +% For unpacking the |regstats.dtx| file and constructing the documentation +% it is required: % \begin{description} -% \item[-] \TeX Format \LaTeXe{}: \url{http://www.CTAN.org/} +% \item[-] \TeX-Format \LaTeXe{}: \url{https://www.CTAN.org/} % -% \item[-] document class \xpackage{ltxdoc}, 2007/11/11, v2.0u,\\ -% \CTAN{macros/latex/base/ltxdoc.dtx} +% \item[-] document class \xpackage{ltxdoc}, 2022/06/22, v2.1i, \url{https://ctan.org/pkg/ltxdoc} % -% \item[-] package \xpackage{pdflscape}, 2008/08/11, v0.10, -% \url{http://ctan.org/pkg/pdflscape} +% \item[-] package \xpackage{geometry}, 2020/01/02, v5.9, \url{https://ctan.org/pkg/geometry} % -% \item[-] package \xpackage{holtxdoc}, 2011/02/04, v0.21, -% \url{http://ctan.org/pkg/holtxdoc} +% \item[-] package \xpackage{holtxdoc}, 2019/12/09, v0.30, \url{https://ctan.org/pkg/holtxdoc} % -% \item[-] package \xpackage{hypdoc}, 2010/03/26, v1.9, -% \url{http://ctan.org/pkg/hypdoc} +% \item[-] package \xpackage{fontenc}, 2021/04/29, v2.0v, \url{https://ctan.org/pkg/fontenc} % \end{description} % % \DescribeMacro{regstats.sty} -% The \texttt{regstats.sty} for \LaTeXe{} (i.\,e.~each document using +% The |regstats.sty| for \LaTeXe{} (i.\,e.~each document using % the \xpackage{regstats} package) requires: % \begin{description} -% \item[-] \TeX Format \LaTeXe{}, \url{http://www.CTAN.org/} +% \item[-] \TeX Format \LaTeXe{}, \url{https://www.CTAN.org/} % -% \item[-] package \xpackage{kvoptions}, 2010/12/23, v3.10, -% \url{http://ctan.org/pkg/kvoptions} +% \item[-] package \xpackage{kvoptions}, 2010/12/23, v3.10, \url{http://ctan.org/pkg/kvoptions} % -% \item[-] package \xpackage{atveryend}, 2011/06/30, v1.8, -% \url{http://ctan.org/pkg/atveryend} +% \item[-] package \xpackage{iftex}, \url{http://ctan.org/pkg/iftex}, or, if that is not available, +% \begin{description} +% \item[+] package \xpackage{ifpdf}, \url{http://ctan.org/pkg/ifpdf} +% \item[+] package \xpackage{ifetex}, \url{http://ctan.org/pkg/ifetex} +% \item[+] package \xpackage{ifluatex}, \url{http://ctan.org/pkg/ifluatex} +% \end{description} +% +% \item[-] only for old \LaTeX-formats the \xpackage{atveryend} package is used, +% \url{https://ctan.org/pkg/atveryend}, otherwise that package is not loaded but +% the new hook management is used. +% +% \item[-] package \xpackage{regstats}, 2023-03-03, v1.1a, \url{https://ctan.org/pkg/regstats}\\ +% (Because you are reading the documentation for the +% \xpackage{pagecolor} package, it can be assumed that you already +% have some version of it~-- is it the current one?) % \end{description} % % When option |timer| is used, additionally % \begin{description} -% \item[-] package \xpackage{intcalc}, 2007/09/27, v1.1, -% \url{http://ctan.org/pkg/intcalc} -% -% \item[-] package \xpackage{ifluatex}, 2010/03/01, v1.3, -% \url{http://ctan.org/pkg/ifluatex} -% -% \item[-] package \xpackage{ifpdf}, 2011/01/30, v2.3, -% \url{http://ctan.org/pkg/ifpdf} +% \item[-] package \xpackage{intcalc}, \url{https://ctan.org/pkg/intcalc} % \end{description} -% are needed.\\ +% is needed.\\ % % \DescribeMacro{regstats-example.tex} -% The \texttt{regstats-example.tex} requires the same files as all -% documents using the \xpackage{regstats} package, i.\,e. the ones -% named above and additionally: +% The |regstats-example.tex| requires the same files as all +% documents using the \xpackage{regstats} package +% (see preceding paragraph |regstats.sty|) and additionally: % \begin{description} -% \item[-] class \xpackage{article}, 2007/10/19, v1.4h, from \xpackage{classes.dtx}:\\ -% \CTAN{macros/latex/base/classes.dtx} -% -% \item[-] package \xpackage{regstats}, 2012/01/07, v1.0h, -% \url{http://ctan.org/pkg/regstats}\\ -% (Well, it is the example file for this package, and because you are reading the -% documentation for the \xpackage{regstats} package, it can be assumed that you already -% have some version of it -- is it the current one?) +% \item[-] class \xpackage{article}, 2022/07/02, v1.4n, from \xpackage{classes}: % +% \url{https://ctan.org/pkg/classes} % \end{description} % % \DescribeMacro{Alternative} -% As possible alternative in section \ref{sec:Alternatives} there is listed +% \DescribeMacro{regcount} +% As possible alternative in section~\ref{sec:Alternatives} there is listed % \begin{description} -% \item[-] \xpackage{regcount}, 1999/08/03, v1.0: -% \url{http://www.ctan.org/pkg/regcount} +% \item[-] package \xpackage{regcount}, 1999/08/03, v1.0, \url{https://ctan.org/pkg/regcount}, +% which gives the wrong number for insertions, because it uses |\the\count20|, +% but insertions are \emph{not} allocated from 0 upwards but starting at a higher number moving downward +% (and having some jumps to other number ranges, see \hbox{p. \pageref{insertions}).} % \end{description} % -% \pagebreak -% % \DescribeMacro{Oberdiek} % \DescribeMacro{holtxdoc} % \DescribeMacro{kvoptions} -% \DescribeMacro{atveryend} -% \DescribeMacro{ifluatex} -% \DescribeMacro{ifpdf} -% \DescribeMacro{intcalc} -% \DescribeMacro{ltxcmds} -% \DescribeMacro{pdflscape} -% All packages of \textsc{Heiko Oberdiek's} bundle `oberdiek' -% (especially \xpackage{holtxdoc}, \xpackage{kvoptions}, \xpackage{atveryend}, -% \xpackage{ifluatex}, \xpackage{ifpdf}, \xpackage{intcalc}, \xpackage{ltxcmds}, -% and \xpackage{pdflscape}) are also available in a TDS compliant ZIP archive:\\ -% \CTAN{install/macros/latex/contrib/oberdiek.tds.zip}.\\ +% All packages of the `oberdiek' bundle +% (especially \xpackage{holtxdoc} and \xpackage{kvoptions}) +% are also available in a TDS compliant ZIP archive:\newline +% \url{https://mirror.ctan.org/install/macros/latex/contrib/oberdiek.tds.zip}. % It is probably best to download and use this, because the packages in there -% are quite probably both recent and compatible among themselves.\\ -% -% \vskip 1.2cm +% are quite probably both recent and compatible among themselves. % % \DescribeMacro{hyperref} % \noindent \xpackage{hyperref} is not included in that bundle and needs to be -% downloaded separately,\\ -% \url{http://mirror.ctan.org/install/macros/latex/contrib/hyperref.tds.zip}.\\ +% downloaded separately,\newline +% \url{https://mirror.ctan.org/install/macros/latex/contrib/hyperref.tds.zip}. +% +% \DescribeMacro{atveryend} +% \noindent \xpackage{atveryend} is only loaded for and used with old \LaTeX-formats, +% otherwise that package is not loaded but the new hook management is used. +% The \xpackage{atveryend} package is available from +% \url{https://mirrors.ctan.org/macros/latex/contrib/atveryend.zip} +% +% \DescribeMacro{intcalc} +% \noindent \xpackage{intcalc} is available from +% \url{https://mirrors.ctan.org/install/macros/latex/contrib/intcalc.tds.zip}. +% +% \DescribeMacro{iftex} +% \DescribeMacro{ifetex} +% \DescribeMacro{ifluatex} +% \DescribeMacro{ifpdf} +% \noindent \xpackage{iftex} is available from +% \url{https://mirrors.ctan.org/install/macros/generic/iftex.tds.zip}, +% its predecessors \xpackage{ifetex}, \xpackage{ifluatex}, and \xpackage{ifpdf} +% are no longer officially available for separate download. % -% \DescribeMacro{M\"{u}nch} +% \vskip 1cm +% +% \DescribeMacro{Münch} % A hyperlinked list of my (other) packages can be found at -% \url{http://www.Uni-Bonn.de/~uzs5pv/LaTeX.html}.\\ +% \url{https://ctan.org/author/muench-hm}.\\ % % \subsection{Package, unpacking TDS} -% -% \paragraph{Package.} This package is available on \CTAN{} +% \paragraph{Package.} This package is available on \url{https://www.CTAN.org}. % \begin{description} -% \item[\CTAN{macros/latex/contrib/regstats/regstats.dtx}]\hspace*{0.1cm} \\ +% \item[\url{https://mirror.ctan.org/macros/latex/contrib/regstats/regstats.dtx}]\ % % The source file. -% \item[\CTAN{macros/latex/contrib/regstats/regstats.pdf}]\hspace*{0.1cm} \\ +% \item[\url{https://mirror.ctan.org/macros/latex/contrib/regstats/regstats.pdf}]\ % % The documentation. -% \item[\CTAN{macros/latex/contrib/regstats/regstats-example.pdf}]\hspace*{0.1cm} \\ -% The compiled example file, as it should look like. -% \item[\CTAN{macros/latex/contrib/regstats/regstats-example.log}]\hspace*{0.1cm} \\ +% \item[\url{https://mirror.ctan.org/macros/latex/contrib/regstats/regstats-example.pdf}]\ % +% The compiled example file. +% \item[\url{https://mirror.ctan.org/macros/latex/contrib/regstats/regstats-example.log}]\ % % A \xfile{log} file for the example. -% \item[\CTAN{macros/latex/contrib/regstats/README}]\hspace*{0.1cm} \\ +% \item[\url{https://mirror.ctan.org/macros/latex/contrib/regstats/README}]\ % % The README file. % \end{description} -% There is also a regstats.tds.zip available: +% +% There is also a |regstats.tds.zip| available: % \begin{description} -% \item[\CTAN{install/macros/latex/contrib/regstats.tds.zip}]\hspace*{0.1cm} \\ -% Everything in \xfile{TDS} compliant, compiled format. +% \item[\url{https://mirror.ctan.org/install/macros/latex/contrib/regstats.tds.zip}]\ % +% Everything in TDS compliant, compiled format. % \end{description} % which additionally contains\\ % \begin{tabular}{ll} @@ -1121,11 +1338,11 @@ option \texttt{timer} is not demonstrated very spectacular. % % \bigskip % -% \noindent For required other packages, see the preceding subsection. +% \noindent For required other packages please see the preceding subsection. % % \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting % \docstrip{} archive. The files are extracted by running the -% \xfile{.dtx} through \plainTeX{}: +% \xext{dtx} through \plainTeX{}: % \begin{quote} % \verb|tex regstats.dtx| % \end{quote} @@ -1205,18 +1422,17 @@ option \texttt{timer} is not demonstrated very spectacular. % \usebox0 % \fi % \end{quote} -% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip{}'s -% \xfile{TDS} installing feature, then some files can already be in the right +% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's +% TDS installing feature, then some files can already be in the right % place, see the documentation of \docstrip{}. % % \subsection{Refresh file name databases} % -% If your \TeX{}~distribution (\teTeX{}, \mikTeX{},\dots{}) relies on file name -% databases, you must refresh these. For example, \teTeX{} users run -% \verb|texhash| or \verb|mktexlsr|. +% If your \TeX~distribution (\TeX\,Live, \mikTeX, \dots) relies on +% file name databases, you must refresh these. For example, \TeX\,Live\ users +% run \verb|texhash| or \verb|mktexlsr|. % % \subsection{Some details for the interested} -% % \paragraph{Unpacking with \LaTeX{}.} % The \xfile{.dtx} chooses its action depending on the format: % \begin{description} @@ -1224,7 +1440,7 @@ option \texttt{timer} is not demonstrated very spectacular. % \item[\LaTeX:] Generate the documentation. % \end{description} % If you insist on using \LaTeX{} for \docstrip{} (really, -% \docstrip{} does not need \LaTeX{}), then inform the autodetect routine +% \docstrip{} does not need \LaTeX ), then inform the auto-detect routine % about your intention: % \begin{quote} % \verb|latex \let\install=y\input{regstats.dtx}| @@ -1242,7 +1458,7 @@ option \texttt{timer} is not demonstrated very spectacular. % \end{quote} % % \noindent An example follows how to generate the -% documentation with \pdfLaTeX{}: +% documentation with \pdfLaTeX : % % \begin{quote} %\begin{verbatim} @@ -1264,53 +1480,41 @@ option \texttt{timer} is not demonstrated very spectacular. % % \section{Acknowledgements} % -% I would like to thank \textsc{Heiko Oberdiek} for providing -% the \xpackage{hyperref}, \xpackage{holtxdoc}, \xpackage{kvoptions}, -% \xpackage{atveryend}, \xpackage{ifluatex}, \xpackage{ifpdf}, -% \xpackage{intcalc}, \xpackage{ltxcmds}, and \xpackage{pdflscape} -% as well as a~lot~(!) of other useful packages (from which I also got everything -% I know about creating a file in \xext{dtx} format, ok, say it: copying), -% \textsc{Jean-Pierre F. Drucbert} for his \xpackage{regcount} package, -% \textsc{Robin Fairbairns} for pointing me to the \xpackage{regcount} package, -% and the \Newsgroup{comp.text.tex} and \Newsgroup{de.comp.text.tex} -% newsgroups as well as \url{http://tex.stackexchange.com} -% for their help in all things \TeX{}. -% -% \bigskip +% I would like to thank \textsc{Heiko Oberdiek} for providing a lot of +% useful packages (from which I also got everything I know about creating +% a file in \xext{dtx} format, OK, say it: copying), +% \textsc{Jean-Pierre F. Drucbert}~(\textdied) for his \xpackage{regcount} package, +% \textsc{Robin Fairbairns} for pointing me to the \xpackage{regcount} package. % % \phantomsection % \begin{History}\label{History} % \begin{Version}{2011/05/14 v1.0a} -% \item Upload to \CTAN{}. +% \item Upload to CTAN. % \end{Version} % \begin{Version}{2011/05/16 v1.0b} -% \item Name clash with \xfile{regcount} package, fixed. +% \item Fixed a name clash with \xfile{regcount} package. % \item \xfile{regcount} package listed as possible alternative. -% \item Bug: skip and muskip mixed up, fixed. +% \item Bug: |skip| and |muskip| mixed up, fixed. % \item Counting of skips, math families, and insertions added. % \item Bug fix: insertions are numbered high to low. -% \item Option |proof| added. -% \item Diverse details. +% \item Option |proof| added [obsolete now]. % \end{Version} % \begin{Version}{2011/06/08 v1.0c} % \item Bug Fix: Number of available |\skip| registers with \eTeX{}. % \item Change in \eTeX{}-detection. % \item New option |left|. -% \item Minor details. % \end{Version} % \begin{Version}{2011/06/18 v1.0d} -% \item Bug Fix: Information about used registers/counter fixed. +% \item Bug Fix: Information about used registers/counters fixed. % \item New option |timer|. -% \item Some details. % \end{Version} % \begin{Version}{2011/08/22 v1.0e} % \item The information about the used registers is now presented even later. % \item Quite some details in the documentation. -% \item Updated to \TeX{}live2011. % \item Hot fix: \TeX{} 2011/06/27 has changed |\enddocument| and % thus broken the |\AtVeryVeryEnd| command/hooking % of \xpackage{atveryend} package as of 2011/04/23, v1.7. -% Until it is fixed, |\AtEndAfterFileList| is used. +% Until it is fixed, |\AtEndAfterFileList| \emph{was} used. % \end{Version} % \begin{Version}{2011/08/23 v1.0f} % \item The \xpackage{atveryend} package was fixed (2011/06/30, v.1.8). @@ -1320,15 +1524,15 @@ option \texttt{timer} is not demonstrated very spectacular. % works with the old version, the information is just presented % a little bit earlier during compilation, thus theoretically % there could be missed some register use after that information, -% which would be obvious in the \xfile{log}-file. -% \item New \xpackage{hyperref} package used for the documentation. +% which would be obvious in the \xfile{log}-file.~-- +% [\xpackage{atveryend} is no longer used after v1.0i of regstats, +% when a recent \LaTeX-format with hook-management is used.] % \end{Version} % \begin{Version}{2012/01/01 v1.0g} -% \item Now supports (but does not require) |lua(la)tex| for -% option \texttt{timer}. +% \item Now supports (but does not require) \hologo{LuaLaTeX} for option \texttt{timer}. % \item Bug fix: wrong path given in the documentation, fixed. % \item Due to the use of temporary counters, no longer a new counter is used -% (except when option \texttt{proof=true} is chosen, of course). +% (except when option \texttt{proof=true} is chosen, of course). [deprecated now] % \item Circumvention of the incompatibility of the \xpackage{atveryend} % package with \xclass{seminar} class and \xpackage{slidesec} package % introduced. @@ -1336,7 +1540,24 @@ option \texttt{timer} is not demonstrated very spectacular. % \end{Version} % \begin{Version}{2012/01/07 v1.0h} % \item Bug fix: |\ifluatex| undefined without \xpackage{ifluatex} leads to wrong -% association of |\else|\ldots|\fi|. Fixed by moving |\ifregstats@timer|. +% association of |\else|\ldots|\fi|. Fixed by moving |\ifregstats@timer|. +% \end{Version} +% \begin{Version}{2012/04/01 v1.0i} +% \item Bug fix: removed |.| before |on line|. +% \item Bug fix: removed a |\pagebreak| after the first line of a page +% from the documentation. +% \item Bug fix: added a lot of |%|-signs at the end of lines in the code. +% \item This version has been archived at +% \url{https://web.archive.org/web/20170107053910/https://mirrors.ctan.org/install/macros/latex/contrib/regstats.tds.zip}. +% \end{Version} +% \begin{Version}{2023-04-04 v1.1a} +% \item No longer uses the \pkg{atveryend} package for new \LaTeX-format but its hook-management. +% \item No longer uses the \pkg{ltxcmds} package (but it is still loaded by the \xpackage{kvoptions} package). +% \item No longer uses the deprecated |\BeforeClearDocument|. +% \item Option proof is now deprecated. +% \item Converted to UTF-8. +% \item Added |\stress...| commands to the example. +% \item Updates to documentation and README. % \end{Version} % \end{History} % @@ -1345,7 +1566,7 @@ option \texttt{timer} is not demonstrated very spectacular. % When you find a mistake or have a suggestion for an improvement of this package, % please send an e-mail to the maintainer, thanks! (Please see BUG REPORTS in the README.) % -% \pagebreak +% \bigskip % % \PrintIndex % diff --git a/Master/texmf-dist/source/latex/regstats/regstats.ins b/Master/texmf-dist/source/latex/regstats/regstats.ins index c8afb86d871..9c09abd3fec 100644 --- a/Master/texmf-dist/source/latex/regstats/regstats.ins +++ b/Master/texmf-dist/source/latex/regstats/regstats.ins @@ -9,25 +9,21 @@ %% This is a generated file. %% %% Project: regstats -%% Version: 2012/01/07 v1.0h +%% Version: 2023-04-04 v1.1a +%% Info: Counting used registers %% -%% Copyright (C) 2011 - 2012 by -%% H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de> -%% -%% 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.) +%% Copyright (C) 2011 - 2023 by +%% H.-Martin Muench <Martin dot Muench at Uni-Bonn dot de> %% %% 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 -%% http://www.latex-project.org/lppl/lppl-1-3c.txt +%% https://www.latex-project.org/lppl/lppl-1-3c.txt %% and the latest version of this license is in -%% http://www.latex-project.org/lppl.txt +%% 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". %% @@ -40,11 +36,16 @@ %% regstats-example.tex, regstats-example.pdf, %% regstats-example.log. %% +%% In memoriam +%% Claudia Simone Barth + 1996-01-30 +%% Tommy Muench + 2014-01-02 +%% Hans-Klaus Muench + 2014-08-24 +%% \input docstrip.tex -\Msg{********************************************************************} -\Msg{* Installation *} -\Msg{* Package: regstats 2012/01/07 v1.0h Counting used registers (HMM) *} -\Msg{********************************************************************} +\Msg{*******************************************************************} +\Msg{* Installation *} +\Msg{* Package: regstats 2023-04-04 v1.1a Counting used registers (HMM)*} +\Msg{*******************************************************************} \keepsilent \askforoverwritefalse @@ -55,25 +56,21 @@ This is a generated file. Project: regstats -Version: 2012/01/07 v1.0h +Version: 2023-04-04 v1.1a +Info: Counting used registers -Copyright (C) 2011 - 2012 by - H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de> - -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.) +Copyright (C) 2011 - 2023 by + H.-Martin Muench <Martin dot Muench at Uni-Bonn dot de> 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 - http://www.latex-project.org/lppl/lppl-1-3c.txt + https://www.latex-project.org/lppl/lppl-1-3c.txt and the latest version of this license is in - http://www.latex-project.org/lppl.txt + 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". @@ -86,6 +83,11 @@ the README, and the derived files regstats-example.tex, regstats-example.pdf, regstats-example.log. +In memoriam + Claudia Simone Barth + 1996-01-30 + Tommy Muench + 2014-01-02 + Hans-Klaus Muench + 2014-08-24 + \endpreamble \let\MetaPrefix\DoubleperCent @@ -105,7 +107,7 @@ the README, and the derived files \Msg{* To finish the installation you have to move the following} \Msg{* file into a directory searched by TeX:} \Msg{*} -\Msg{* regstats.sty} +\Msg{* regstats.sty} \Msg{*} \Msg{* To produce the documentation run the file `regstats.drv'} \Msg{* through (pdf)LaTeX, e.g.} |