texlive[66793] Master/texmf-dist: regstats (7apr23)

commits+karl at tug.org commits+karl at tug.org
Fri Apr 7 22:53:03 CEST 2023


Revision: 66793
          http://tug.org/svn/texlive?view=revision&revision=66793
Author:   karl
Date:     2023-04-07 22:53:03 +0200 (Fri, 07 Apr 2023)
Log Message:
-----------
regstats (7apr23)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/regstats/README
    trunk/Master/texmf-dist/doc/latex/regstats/regstats-example.log
    trunk/Master/texmf-dist/doc/latex/regstats/regstats-example.pdf
    trunk/Master/texmf-dist/doc/latex/regstats/regstats-example.tex
    trunk/Master/texmf-dist/doc/latex/regstats/regstats.pdf
    trunk/Master/texmf-dist/source/latex/regstats/regstats.drv
    trunk/Master/texmf-dist/source/latex/regstats/regstats.dtx
    trunk/Master/texmf-dist/source/latex/regstats/regstats.ins
    trunk/Master/texmf-dist/tex/latex/regstats/regstats.sty

Modified: trunk/Master/texmf-dist/doc/latex/regstats/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/regstats/README	2023-04-07 20:52:12 UTC (rev 66792)
+++ trunk/Master/texmf-dist/doc/latex/regstats/README	2023-04-07 20:53:03 UTC (rev 66793)
@@ -1,4 +1,4 @@
-README for regstats package, 2012/01/07, v1.0h
+README for regstats package, 2023-04-04, v1.1a
 
 
 TABLE OF CONTENTS
@@ -20,60 +20,55 @@
 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).
+be the number 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.
 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
+run (when either LuaLaTeX with
 \directlua{starttime = os.clock()}
-before \documentclass is used).
-This material is subject to the LaTeX Project Public License
-(LPPL). See http://www.ctan.org/tex-archive/help/Catalogue/
-licenses.lppl.html for the details of that license.
+before \documentclass or pdf(la)tex is used).
 
+This material is published under the LPPL 1.3c: This work may be
+distributed and/or modified under the conditions of the LaTeX Project
+Public License, either version 1.3c of this license or (at your option)
+any later version. This version of this license is in
+https://www.latex-project.org/lppl/lppl-1-3c.txt
+and the latest version of this license is in
+https://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of
+LaTeX version 2005-12-01 or later.
 
+
 2 DOWNLOAD
 ==========
 
-`regstats' is available on CTAN:
-  CTAN:macros/latex/contrib/regstats/
+"regstats" is available on CTAN:
+https://ctan.org/pkg/regstats
 
-Running
-tex regstats.dtx
-generates the files
-regstats.ins, regstats.drv, regstats.sty,
-and regstats-example.tex.
-
-Also a ZIP file is provided that contains these files,
-the manual (regstats.pdf), the compiled example
-(regstats-example.pdf), its log-file (regstats-example.log),
+Also a ZIP file is provided that contains the files:
+the manual (regstats.pdf), the example (regstats-example.tex),
+the compiled example (regstats-example.pdf),
+the according log file (regstats-example.log)
+driver (regstats.drv), regstats.dtx,
+installation file (regstats.ins),
+the style file (regstats.sty),
 and this README, already sorted in a TDS tree:
-  CTAN:install/macros/latex/contrib/regstats.tds.zip
+https://mirror.ctan.org/install/macros/latex/contrib/regstats.tds.zip
 
-`CTAN:' means one of the `Comprehensive TeX Archive Network'
-nodes or one of its mirrors. This is explained in
-  http://www.tex.ac.uk/cgi-bin/texfaq2html?label=archives
 
-The CTAN stuff will be mirrored automatically from the
-ftp server, so
-  ftp://ftp.tug.org/pub/tex/regstats/
-corresponds to
-  CTAN:macros/latex/contrib/regstats/
-
-
 3 INSTALLATION
 ==============
 
 Installation with ZIP file in TDS format
 ----------------------------------------
-The ZIP file `regstats.tds.zip' contains the files
+The ZIP file "regstats.tds.zip" contains the files
 sorted in a TDS tree. Thus you can directly unpack the
 ZIP file inside a TDS tree.
-(See CTAN:tds.zip for an explanation of TDS.)
+See https://ctan.org/TDS-guidelines for an explanation
+of TDS.
 Example:
   cd /...somewhere.../texmf
   unzip /...downloadpath.../regstats.tds.zip
@@ -88,19 +83,19 @@
    If necessary, unpack them.
 b) Generate the package and driver files:
      tex regstats.dtx
-c) Install the file `*.sty' in your TDS tree:
-     cp *.sty TDS:tex/latex/regstats/
-   Replace `TDS:' by the prefix of your TDS tree
+c) Install the file "regstats.sty" in your TDS tree:
+     cp regstats.sty TDS:tex/latex/regstats/
+   Replace "TDS:" by the prefix of your TDS tree
    (texmf directory).
-d) Create the documentation (if necessary), e.g.
+d) Create the documentation, if necessary, e.g.
      pdflatex regstats.dtx
      makeindex -s gind.ist regstats.idx
      pdflatex regstats.dtx
      makeindex -s gind.ist regstats.idx
      pdflatex regstats.dtx
-e) Update the databases if necessary, e.g. for teTeX:
-     mktexlsr .../texmf
-f) Create the regstats-example.pdf (if necessary), e.g.
+e) Update the databases if necessary, e.g. for TeXLive:
+     texhash or mktexlsr.
+f) Create the regstats-example.pdf, if necessary, e.g.
      pdflatex regstats-example.tex
      pdflatex regstats-example.tex
    or remove the "%% " before "\directlua{starttime = os.clock()}"
@@ -118,13 +113,10 @@
 =====================
 
 regstats loads other packages:
-* kvoptions, http://ctan.org/pkg/kvoptions
-* atveryend, http://ctan.org/pkg/atveryend
-* ltxcmds,   http://ctan.org/pkg/ltxcmds
+- kvoptions, https://ctan.org/pkg/kvoptions
+- iftex, https://ctan.org/pkg/iftex
 with option timer additionally:
-* intcalc,   http://ctan.org/pkg/intcalc
-* ifluatex,  http://ctan.org/pkg/ifluatex
-* ifpdf,     http://ctan.org/pkg/ifpdf
+- intcalc, https://ctan.org/pkg/intcalc
 which again load other packages
 (see the result of the \listfiles command in the log-file
  of the example).
@@ -138,13 +130,13 @@
 (pdf)(la)tex or (lua)(la)tex. (Otherwise just do not use the option.)
 
 6 AUTHOR/MAINTAINER
-=====================
+===================
 
 * H.-Martin Münch
 
 
 7 BUG REPORTS
-==============
+=============
 
 A bug report should contain:
 * Comprehensive problem description. This includes error or
@@ -151,12 +143,12 @@
   warning messages.
 * \errorcontextlines=\maxdimen can be added in the
   TeX code to get more information in TeX error messages.
-* Minimal test file that shows the problem, but does not
-  contain any unnecessary packages and code.
+* Minimal test file that shows the problem,
+  but does not contain any unnecessary packages and code.
 * Used drivers/programs.
 * Version information about used packages and programs.
-* If you are using LaTeX, then add "\listfiles". Then
-  a list of version information is printed at the end
+* If you are using LaTeX, then add "\listfiles" to the document.
+  Then a list of version information is printed at the end
   of the LaTeX run.
 * Please no other files than the minimal test file.
   The other files .log, .dvi, .ps, .pdf are seldom
@@ -171,6 +163,6 @@
 
 
 8 KNOWN PROBLEMS
-=================
+================
 
-* as yet: none.
\ No newline at end of file
+* Counting the used inserts is an issue.
\ No newline at end of file

Modified: trunk/Master/texmf-dist/doc/latex/regstats/regstats-example.log
===================================================================
--- trunk/Master/texmf-dist/doc/latex/regstats/regstats-example.log	2023-04-07 20:52:12 UTC (rev 66792)
+++ trunk/Master/texmf-dist/doc/latex/regstats/regstats-example.log	2023-04-07 20:53:03 UTC (rev 66793)
@@ -1,327 +1,160 @@
-This is pdfTeX, Version 3.1415926-2.3-1.40.12 (Web2C 2011) (format=pdflatex 2011.11.11)  7 JAN 2012 12:06
+This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex 2023.3.31)  4 APR 2023 16:45
 entering extended mode
  restricted \write18 enabled.
  %&-line parsing enabled.
 **regstats-example.tex
 (./regstats-example.tex
-LaTeX2e <2011/06/27>
-Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ge
-rman-x-2011-07-01, ngerman-x-2011-07-01, afrikaans, ancientgreek, ibycus, arabi
-c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis
-h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis
-h, french, galician, german, ngerman, swissgerman, monogreek, greek, hungarian,
- icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, marathi, or
-iya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, kurmanji,
- lao, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, pol
-ish, portuguese, romanian, russian, sanskrit, serbian, serbianc, slovak, sloven
-ian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, welsh, loaded
-.
-(s:/TeXlive2011/texmf-dist/tex/latex/base/article.cls
-Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
-(s:/TeXlive2011/texmf-dist/tex/latex/base/size10.clo
-File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
+LaTeX2e <2022-11-01> patch level 1
+L3 programming layer <2023-03-30> (m:/2023/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2022/07/02 v1.4n Standard LaTeX document class
+(m:/2023/texmf-dist/tex/latex/base/size10.clo
+File: size10.clo 2022/07/02 v1.4n Standard LaTeX file (size option)
 )
-\c at part=\count79
-\c at section=\count80
-\c at subsection=\count81
-\c at subsubsection=\count82
-\c at paragraph=\count83
-\c at subparagraph=\count84
-\c at figure=\count85
-\c at table=\count86
-\abovecaptionskip=\skip41
-\belowcaptionskip=\skip42
-\bibindent=\dimen102
-)
-(s:/TeXlive2011/texmf-dist/tex/latex/hyperref/hyperref.sty
-Package: hyperref 2011/12/04 v6.82m Hypertext links for LaTeX
+\c at part=\count185
+\c at section=\count186
+\c at subsection=\count187
+\c at subsubsection=\count188
+\c at paragraph=\count189
+\c at subparagraph=\count190
+\c at figure=\count191
+\c at table=\count192
+\abovecaptionskip=\skip48
+\belowcaptionskip=\skip49
+\bibindent=\dimen140
+) (./regstats.sty
+Package: regstats 2023/04/04 v1.1a Counting used registers (HMM)
+ (m:/2023/texmf-dist/tex/latex/kvoptions/kvoptions.sty
+Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO)
 
-(./hobsub-hyperref.sty
-Package: hobsub-hyperref 2011/07/28 v1.8 Bundle oberdiek, subset hyperref (HO)
- (./hobsub-generic.sty
-Package: hobsub-generic 2011/07/28 v1.8 Bundle oberdiek, subset generic (HO)
-Package: hobsub 2011/07/28 v1.8 Construct package bundles (HO)
-Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
-Package: ltxcmds 2011/04/18 v1.20 LaTeX kernel commands for general use (HO)
-Package: ifluatex 2010/03/01 v1.3 Provides the ifluatex switch (HO)
-Package ifluatex Info: LuaTeX not detected.
-Package: ifvtex 2010/03/01 v1.5 Detect VTeX and its facilities (HO)
-Package ifvtex Info: VTeX not detected.
-Package: intcalc 2007/09/27 v1.1 Expandable calculations with integers (HO)
-Package: ifpdf 2011/01/30 v2.3 Provides the ifpdf switch (HO)
-Package ifpdf Info: pdfTeX in PDF mode is detected.
-Package: etexcmds 2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
-Package etexcmds Info: Could not find \expanded.
-(etexcmds)             That can mean that you are not using pdfTeX 1.50 or
-(etexcmds)             that some package has redefined \expanded.
-(etexcmds)             In the latter case, load this package earlier.
-Package: kvsetkeys 2011/06/15 v1.14 Key value parser (HO)
-Package: kvdefinekeys 2011/04/07 v1.3 Define keys (HO)
-Package: pdftexcmds 2011/07/28 v0.19 Utility functions of pdfTeX for LuaTeX (HO
+(m:/2023/texmf-dist/tex/latex/graphics/keyval.sty
+Package: keyval 2022/05/29 v1.15 key=value parser (DPC)
+\KV at toks@=\toks16
+) (m:/2023/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
+Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO)
 )
-Package pdftexcmds Info: LuaTeX not detected.
-Package pdftexcmds Info: \pdf at primitive is available.
-Package pdftexcmds Info: \pdf at ifprimitive is available.
-Package pdftexcmds Info: \pdfdraftmode found.
-Package: pdfescape 2011/04/04 v1.12 Implements pdfTeX's escape features (HO)
-Package: bigintcalc 2011/01/30 v1.2 Expandable calculations on big integers (HO
+(m:/2023/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
+Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO)
+))
+Package regstats Info: Option proof is obsolete.
+(regstats)             If you used proof=false, please remove this.
+ (m:/2023/texmf-dist/tex/generic/iftex/iftex.sty
+Package: iftex 2022/02/03 v1.0f TeX engine tests
 )
-Package: bitset 2011/01/30 v1.1 Handle bit-vector datatype (HO)
-Package: uniquecounter 2011/01/30 v1.2 Provide unlimited unique counter (HO)
+(m:/2023/texmf-dist/tex/generic/intcalc/intcalc.sty
+Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO)
+)) (m:/2023/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
+File: l3backend-pdftex.def 2023-03-30 L3 backend support: PDF output (pdfTeX)
+\l__color_backend_stack_int=\count193
+\l__pdf_internal_box=\box51
 )
-Package hobsub Info: Skipping package `hobsub' (already loaded).
-Package: letltxmacro 2010/09/02 v1.4 Let assignment for LaTeX macros (HO)
-Package: hopatch 2011/06/24 v1.1 Wrapper for package hooks (HO)
-Package: xcolor-patch 2011/01/30 xcolor patch
-Package: atveryend 2011/06/30 v1.8 Hooks at the very end of document (HO)
-Package atveryend Info: \enddocument detected (standard20110627).
-Package: atbegshi 2011/01/30 v1.15 At begin shipout hook (HO)
-Package: refcount 2011/06/22 v3.3 Data extraction from label references (HO)
-Package: hycolor 2011/01/30 v1.7 Color options for hyperref/bookmark (HO)
-)
-(s:/TeXlive2011/texmf-dist/tex/latex/graphics/keyval.sty
-Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
-\KV at toks@=\toks14
-)
-(s:/TeXlive2011/texmf-dist/tex/generic/ifxetex/ifxetex.sty
-Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
-)
-(s:/TeXlive2011/texmf-dist/tex/latex/oberdiek/kvoptions.sty
-Package: kvoptions 2010/12/23 v3.10 Keyval support for LaTeX options (HO)
-)
-\@linkdim=\dimen103
-\Hy at linkcounter=\count87
-\Hy at pagecounter=\count88
 
-(s:/TeXlive2011/texmf-dist/tex/latex/hyperref/pd1enc.def
-File: pd1enc.def 2011/12/04 v6.82m Hyperref: PDFDocEncoding definition (HO)
-)
-\Hy at SavedSpaceFactor=\count89
+LaTeX Warning: Unused global option(s):
+    [british].
 
-(s:/TeXlive2011/texmf-dist/tex/latex/latexconfig/hyperref.cfg
-File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
-)
-Package hyperref Info: Option `plainpages' set `false' on input line 3925.
-Package hyperref Info: Option `pdfpagelabels' set `true' on input line 3925.
-Package hyperref Info: Option `hyperindex' set `false' on input line 3925.
-Package hyperref Info: Hyper figures OFF on input line 4046.
-Package hyperref Info: Link nesting OFF on input line 4051.
-Package hyperref Info: Hyper index OFF on input line 4056.
-Package hyperref Info: Plain pages OFF on input line 4061.
-Package hyperref Info: Backreferencing OFF on input line 4066.
-Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
-Package hyperref Info: Bookmarks ON on input line 4284.
-\c at Hy@tempcnt=\count90
-
-(s:/TeXlive2011/texmf-dist/tex/latex/url/url.sty
-\Urlmuskip=\muskip10
-Package: url 2006/04/12 v3.3 Verb mode for urls, etc.
-)
-LaTeX Info: Redefining \url on input line 4637.
-\Fld at menulength=\count91
-\Field at Width=\dimen104
-\Fld at charsize=\dimen105
-Package hyperref Info: Hyper figures OFF on input line 5757.
-Package hyperref Info: Link nesting OFF on input line 5762.
-Package hyperref Info: Hyper index OFF on input line 5767.
-Package hyperref Info: backreferencing OFF on input line 5772.
-Package hyperref Info: Link coloring OFF on input line 5777.
-Package hyperref Info: Link coloring with OCG OFF on input line 5782.
-Package hyperref Info: PDF/A mode OFF on input line 5787.
-LaTeX Info: Redefining \ref on input line 5827.
-LaTeX Info: Redefining \pageref on input line 5831.
-\Hy at abspage=\count92
-\c at Item=\count93
-\c at Hfootnote=\count94
-)
-
-Package hyperref Message: Driver (autodetected): hpdftex.
-
-(s:/TeXlive2011/texmf-dist/tex/latex/hyperref/hpdftex.def
-File: hpdftex.def 2011/12/04 v6.82m Hyperref driver for pdfTeX
-\Fld at listcount=\count95
-\c at bookmark@seq at number=\count96
-
-(s:/TeXlive2011/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
-Package: rerunfilecheck 2011/04/15 v1.7 Rerun checks for auxiliary files (HO)
-Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
-82.
-)
-\Hy at SectionHShift=\skip43
-)
-(./regstats.sty
-Package: regstats 2012/01/07 v1.0h Counting used registers (HMM)
-Package regstats Info: This package will not use registers itself,
-(regstats)             but packages used by this package
-(regstats)             (and packages loaded by those packages)
-(regstats)             use additional resources,
-(regstats)             if those packages are not used anyway.
-(regstats)              on input line 83.
-) (./regstats-example.aux)
+(./regstats-example.aux)
 \openout1 = `regstats-example.aux'.
 
-LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 75.
-LaTeX Font Info:    ... okay on input line 75.
-LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 75.
-LaTeX Font Info:    ... okay on input line 75.
-LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 75.
-LaTeX Font Info:    ... okay on input line 75.
-LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 75.
-LaTeX Font Info:    ... okay on input line 75.
-LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 75.
-LaTeX Font Info:    ... okay on input line 75.
-LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 75.
-LaTeX Font Info:    ... okay on input line 75.
-LaTeX Font Info:    Checking defaults for PD1/pdf/m/n on input line 75.
-LaTeX Font Info:    ... okay on input line 75.
-\AtBeginShipoutBox=\box26
-Package hyperref Info: Link coloring OFF on input line 75.
+LaTeX Font Info:    Checking defaults for OML/cmm/m/it on input line 167.
+LaTeX Font Info:    ... okay on input line 167.
+LaTeX Font Info:    Checking defaults for OMS/cmsy/m/n on input line 167.
+LaTeX Font Info:    ... okay on input line 167.
+LaTeX Font Info:    Checking defaults for OT1/cmr/m/n on input line 167.
+LaTeX Font Info:    ... okay on input line 167.
+LaTeX Font Info:    Checking defaults for T1/cmr/m/n on input line 167.
+LaTeX Font Info:    ... okay on input line 167.
+LaTeX Font Info:    Checking defaults for TS1/cmr/m/n on input line 167.
+LaTeX Font Info:    ... okay on input line 167.
+LaTeX Font Info:    Checking defaults for OMX/cmex/m/n on input line 167.
+LaTeX Font Info:    ... okay on input line 167.
+LaTeX Font Info:    Checking defaults for U/cmr/m/n on input line 167.
+LaTeX Font Info:    ... okay on input line 167.
 
-(s:/TeXlive2011/texmf-dist/tex/latex/hyperref/nameref.sty
-Package: nameref 2010/04/30 v2.40 Cross-referencing by name of section
+Underfull \hbox (badness 10000) in paragraph at lines 174--175
 
-(s:/TeXlive2011/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
-Package: gettitlestring 2010/12/03 v1.4 Cleanup title references (HO)
-)
-\c at section@level=\count97
-)
-LaTeX Info: Redefining \ref on input line 75.
-LaTeX Info: Redefining \pageref on input line 75.
-LaTeX Info: Redefining \nameref on input line 75.
-
-(./regstats-example.out) (./regstats-example.out)
-\@outlinefile=\write3
-\openout3 = `regstats-example.out'.
-
-
-Underfull \hbox (badness 10000) in paragraph at lines 79--85
-
  []
 
 LaTeX Font Info:    External font `cmex10' loaded for size
-(Font)              <7> on input line 86.
+(Font)              <7> on input line 178.
 LaTeX Font Info:    External font `cmex10' loaded for size
-(Font)              <5> on input line 86.
+(Font)              <5> on input line 178.
 
-Underfull \hbox (badness 10000) in paragraph at lines 86--90
+Underfull \hbox (badness 10000) in paragraph at lines 176--182
 
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 91--92
+Underfull \hbox (badness 10000) in paragraph at lines 183--185
 
  []
 
 
-Underfull \hbox (badness 10000) in paragraph at lines 93--96
+Underfull \hbox (badness 10000) in paragraph at lines 186--188
 
  []
 
-Package atveryend Info: Executing hook `BeforeClearDocument' on input line 103.
-
 [1
 
-{s:/TeXlive2011/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
-Package atveryend Info: Executing hook `AfterLastShipout' on input line 103.
+{m:/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./regstats-example.aux)
 
-(./regstats-example.aux)
-Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 103.
-
-
  *File List*
- article.cls    2007/10/19 v1.4h Standard LaTeX document class
-  size10.clo    2007/10/19 v1.4h Standard LaTeX file (size option)
-hyperref.sty    2011/12/04 v6.82m Hypertext links for LaTeX
-hobsub-hyperref.sty    2011/07/28 v1.8 Bundle oberdiek, subset hyperref (HO)
-hobsub-generic.sty    2011/07/28 v1.8 Bundle oberdiek, subset generic (HO)
-  hobsub.sty    2011/07/28 v1.8 Construct package bundles (HO)
-infwarerr.sty    2010/04/08 v1.3 Providing info/warning/error messages (HO)
- ltxcmds.sty    2011/04/18 v1.20 LaTeX kernel commands for general use (HO)
-ifluatex.sty    2010/03/01 v1.3 Provides the ifluatex switch (HO)
-  ifvtex.sty    2010/03/01 v1.5 Detect VTeX and its facilities (HO)
- intcalc.sty    2007/09/27 v1.1 Expandable calculations with integers (HO)
-   ifpdf.sty    2011/01/30 v2.3 Provides the ifpdf switch (HO)
-etexcmds.sty    2011/02/16 v1.5 Avoid name clashes with e-TeX commands (HO)
-kvsetkeys.sty    2011/06/15 v1.14 Key value parser (HO)
-kvdefinekeys.sty    2011/04/07 v1.3 Define keys (HO)
-pdftexcmds.sty    2011/07/28 v0.19 Utility functions of pdfTeX for LuaTeX (HO)
-pdfescape.sty    2011/04/04 v1.12 Implements pdfTeX's escape features (HO)
-bigintcalc.sty    2011/01/30 v1.2 Expandable calculations on big integers (HO)
-  bitset.sty    2011/01/30 v1.1 Handle bit-vector datatype (HO)
-uniquecounter.sty    2011/01/30 v1.2 Provide unlimited unique counter (HO)
-letltxmacro.sty    2010/09/02 v1.4 Let assignment for LaTeX macros (HO)
- hopatch.sty    2011/06/24 v1.1 Wrapper for package hooks (HO)
-xcolor-patch.sty    2011/01/30 xcolor patch
-atveryend.sty    2011/06/30 v1.8 Hooks at the very end of document (HO)
-atbegshi.sty    2011/01/30 v1.15 At begin shipout hook (HO)
-refcount.sty    2011/06/22 v3.3 Data extraction from label references (HO)
- hycolor.sty    2011/01/30 v1.7 Color options for hyperref/bookmark (HO)
-  keyval.sty    1999/03/16 v1.13 key=value parser (DPC)
- ifxetex.sty    2010/09/12 v0.6 Provides ifxetex conditional
-kvoptions.sty    2010/12/23 v3.10 Keyval support for LaTeX options (HO)
-  pd1enc.def    2011/12/04 v6.82m Hyperref: PDFDocEncoding definition (HO)
-hyperref.cfg    2002/06/06 v1.2 hyperref configuration of TeXLive
-     url.sty    2006/04/12 v3.3 Verb mode for urls, etc.
- hpdftex.def    2011/12/04 v6.82m Hyperref driver for pdfTeX
-rerunfilecheck.sty    2011/04/15 v1.7 Rerun checks for auxiliary files (HO)
-regstats.sty    2012/01/07 v1.0h Counting used registers (HMM)
- nameref.sty    2010/04/30 v2.40 Cross-referencing by name of section
-gettitlestring.sty    2010/12/03 v1.4 Cleanup title references (HO)
-regstats-example.out
-regstats-example.out
+ article.cls    2022/07/02 v1.4n Standard LaTeX document class
+  size10.clo    2022/07/02 v1.4n Standard LaTeX file (size option)
+regstats.sty    2023/04/04 v1.1a Counting used registers (HMM)
+kvoptions.sty    2022-06-15 v3.15 Key value format for package options (HO)
+  keyval.sty    2022/05/29 v1.15 key=value parser (DPC)
+ ltxcmds.sty    2020-05-10 v1.25 LaTeX kernel commands for general use (HO)
+kvsetkeys.sty    2022-10-05 v1.19 Key value parser (HO)
+   iftex.sty    2022/02/03 v1.0f TeX engine tests
+ intcalc.sty    2019/12/15 v1.3 Expandable calculations with integers (HO)
+l3backend-pdftex.def    2023-03-30 L3 backend support: PDF output (pdfTeX)
  ***********
 
-Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 103.
-Package rerunfilecheck Info: File `regstats-example.out' has not changed.
-(rerunfilecheck)             Checksum: D41D8CD98F00B204E9800998ECF8427E;0.
-Package atveryend Info: Executing hook `AtVeryVeryEnd' on input line 103.
+\c at regstatscount=\count194
+\regstatsdimen=\dimen141
+\regstatsskip=\skip50
+\regstatsmuskip=\muskip16
+\regstatsbox=\box52
+\regstatstoks=\toks17
+\regstatsread=\read2
+\regstatswrite=\write3
+\regstatsfam=\mathgroup4
+\regstatslanguage=\language87
+\regstatsinsert=\insert199
 
-Package regstats Warning: Could not find the e-TeX-package.
-(regstats)                That can mean that e-TeX was disabled or
-(regstats)                that your distribution of TeX does not contain e-TeX
-(regstats)                or that you simply forgot to say \usepackage{etex}
-(regstats)                in the preamble of regstats-example.tex.
-(regstats)                The number of available counter, dimen, skip,
-(regstats)                muskip, box, and toks registers as well as the
-(regstats)                number of insertions would be larger when using
-(regstats)                the e-TeX-package. on input line 103.
-
-
 Here is how much of TeX's registers you used
  (numbers of available registers are estimated!):
- 97 counter registers out of 233, left: 136
- 105 dimen registers out of 233, left: 128
- 43 skip registers out of 233, left: 190
- 10 muskip registers out of 255, left: 245
- 26 box registers out of 233, left: 207
- 14 toks registers out of 255, left: 241
- 0 input streams (read) out of 15, left: 15
- 3 output streams (write) out of 15, left: 12
- 3 math families (fam) out of 15, left: 12
- 74 language codes out of 255, left: 181
- 0 insertions out of 101, left: 101
+ 194 counter registers out of 32767 (0% used), left: 32573
+ 141 dimen registers out of 32767 (0% used), left: 32626
+ 50 skip registers out of 32767 (0% used), left: 32717
+ 16 muskip registers out of 32767 (0% used), left: 32751
+ 52 box registers out of 32767 (0% used), left: 32715
+ 17 toks registers out of 32767 (0% used), left: 32750
+ 2 input streams (read) out of 15 (13% used), left: 13
+ 3 output streams (write) out of 16 (18% used), left: 13
+ 4 math families (fam) out of 15 (26% used), left: 11
+ 87 language codes out of 255 (34% used), left: 168
+ 1 insertion out of 200 (0% used), left: 199
+The morewrites package was not loaded.
+ With recent LaTeX and morewrites about 32 766 output streams would be available.
 
 Time elapsed for the last compiler run:
-about 0:00 (m:ss; 25559/65536 s).
+about 0:00 (m:ss; 17367/65536 s).
  ) 
 Here is how much of TeX's memory you used:
- 4107 strings out of 493629
- 61316 string characters out of 3147108
- 141906 words of memory out of 3000000
- 7438 multiletter control sequences out of 15000+200000
- 4718 words of font info for 18 fonts, out of 3000000 for 9000
- 831 hyphenation exceptions out of 8191
- 29i,4n,23p,212b,314s stack positions out of 5000i,500n,10000p,200000b,50000s
-<s:/TeXlive2011/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb><s:/TeXl
-ive2011/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb><s:/TeXlive2011/te
-xmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb><s:/TeXlive2011/texmf-dist/fo
-nts/type1/public/amsfonts/cm/cmr7.pfb><s:/TeXlive2011/texmf-dist/fonts/type1/pu
-blic/amsfonts/cm/cmss10.pfb><s:/TeXlive2011/texmf-dist/fonts/type1/public/amsfo
-nts/cm/cmtt10.pfb>
-Output written on regstats-example.pdf (1 page, 66974 bytes).
+ 1067 strings out of 476017
+ 19149 string characters out of 5797758
+ 1852660 words of memory out of 5000000
+ 21578 multiletter control sequences out of 15000+600000
+ 513365 words of font info for 36 fonts, out of 8000000 for 9000
+ 1141 hyphenation exceptions out of 32749
+ 56i,5n,62p,283b,107s stack positions out of 10000i,1000n,20000p,200000b,200000s
+<m:/2023/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb><m:/2023/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb
+><m:/2023/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb><m:/2023/texmf-dist/fonts/type1/public/amsfonts/cm/cmss10.pfb><
+m:/2023/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt10.pfb>
+Output written on regstats-example.pdf (1 page, 59861 bytes).
 PDF statistics:
- 38 PDF objects out of 1000 (max. 8388607)
- 28 compressed objects within 1 object stream
- 3 named destinations out of 1000 (max. 500000)
+ 33 PDF objects out of 1000 (max. 8388607)
+ 19 compressed objects within 1 object stream
+ 0 named destinations out of 1000 (max. 500000)
  1 words of extra memory for PDF output out of 10000 (max. 10000000)
 

Modified: trunk/Master/texmf-dist/doc/latex/regstats/regstats-example.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/regstats/regstats-example.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/regstats/regstats-example.tex	2023-04-07 20:52:12 UTC (rev 66792)
+++ trunk/Master/texmf-dist/doc/latex/regstats/regstats-example.tex	2023-04-07 20:53:03 UTC (rev 66793)
@@ -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>
+%% Copyright (C) 2011 - 2023 by
+%%     H.-Martin Muench <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.)
-%% 
 %% 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,37 +36,133 @@
 %%    regstats-example.tex, regstats-example.pdf,
 %%    regstats-example.log.
 %% 
-%% When compiling with lua(la)tex (and wanting to use option timer=true,
+%% In memoriam
+%%  Claudia Simone Barth + 1996-01-30
+%%  Tommy Muench         + 2014-01-02
+%%  Hans-Klaus Muench    + 2014-08-24
+%% 
+%% 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}}}%
+\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
-\@ifundefined{eTeX}{\gdef\eTeX{$\m at th \varepsilon $-\TeX }}{%
-%% else \relax
-}
+\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}
@@ -77,28 +169,39 @@
 \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 at 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}
 \endinput

Modified: trunk/Master/texmf-dist/doc/latex/regstats/regstats.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/source/latex/regstats/regstats.drv
===================================================================
--- trunk/Master/texmf-dist/source/latex/regstats/regstats.drv	2023-04-07 20:52:12 UTC (rev 66792)
+++ trunk/Master/texmf-dist/source/latex/regstats/regstats.drv	2023-04-07 20:53:03 UTC (rev 66793)
@@ -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>
+%% Copyright (C) 2011 - 2023 by
+%%     H.-Martin Muench <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.)
-%% 
 %% 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 at th \varepsilon $-\TeX }}{% else \relax
-}
+\@ifundefined{eTeX}{\gdef\eTeX{\hbox{$\m at th \varepsilon $-\TeX}}}{}
 \makeatother
 \begin{document}
-  \DocInput{regstats.dtx}%
+ \DocInput{regstats.dtx}%
 \end{document}
 \endinput
 %%

Modified: trunk/Master/texmf-dist/source/latex/regstats/regstats.dtx
===================================================================
--- trunk/Master/texmf-dist/source/latex/regstats/regstats.dtx	2023-04-07 20:52:12 UTC (rev 66792)
+++ trunk/Master/texmf-dist/source/latex/regstats/regstats.dtx	2023-04-07 20:53:03 UTC (rev 66793)
@@ -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,50 +28,13 @@
 %    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
+% "regstats" is available on CTAN:
+% https://ctan.org/pkg/regstats
 %
-% Cf. http://ctan.org/pkg/regstats and
-% http://www.tex.ac.uk/tex-archive/help/Catalogue/entries/regstats.html
+% 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
 %
-% 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
-%
 %<*ignore>
 \begingroup
   \catcode123=1 %
@@ -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
+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 (C) 2011 - 2023 by
+    H.-Martin Muench <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.)
-
 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 @@
    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 @@
 \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 @@
 % \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 @@
 %
 %    \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 @@
  pdfnewwindow=true%
 }
 \CodelineIndex
-\hyphenation{printing docu-ment}
-\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}%
+\hyphenation{docu-ment}
 \makeatletter
-\@ifundefined{eTeX}{\gdef\eTeX{$\m at th \varepsilon $-\TeX }}{% else \relax
-}
+\@ifundefined{eTeX}{\gdef\eTeX{\hbox{$\m at 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 @@
 %     }%^^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 at test}
+% \DoNotIndex{\\,\@gobble,\@ifclassloaded,\@ifl at 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 at left,\ifregstats at proof,\ifregstats at timer}
+% \DoNotIndex{\iftex,\ifx,\intcalc,\intcalcMod,\jobname,\kvoptions,\left,\listfiles,\luatexfalse,\m at 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 at tsNoeTeX,\regs at tsmw,\regs at wmst,\regst at ts@st at tistics,\regst at ts@statistics,\regst at ts@timer}
+% \DoNotIndex{\regstats at box,\regstats at counter,\regstats at dimen,\regstats at fam,\regstats at firstofone,\regstats at free}
+% \DoNotIndex{\regstats at insert,\regstats at language,\regstats at left,\regstats at lft,\regstats at max,\regstats at message}
+% \DoNotIndex{\regstats at muskip,\regstats at pl,\regstats at read,\regstats at regstatA,\regstats at regstatB,\regstats at skip}
+% \DoNotIndex{\regstats at timerfalse,\regstats at toks,\regstats at used,\regstats at 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.
+% 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.
 %
-% \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
-%
 % \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).
+% either \hologo{LuaLaTeX} with |\directlua{starttime = os.clock()}| before
+% |\documentclass| or |pdf(la)tex| is used).
 %
-% \bigskip
-%
 % \section{Usage}
-%
 % \indent Just load the package placing
 % \begin{quote}
 %   |\usepackage[<|\textit{options}|>]{regstats}|
@@ -337,102 +263,194 @@
 % \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.
 %
+% \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}}}%
+\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
-\@ifundefined{eTeX}{\gdef\eTeX{$\m at th \varepsilon $-\TeX }}{%
-%% else \relax
-}
+\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}
@@ -439,40 +457,50 @@
 \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 at 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 @@
 %    \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 @@
 
 %    \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 at proof
-\DeclareBoolOption{left}
+\DeclareBoolOption{left}% \regstats at left
 \DeclareBoolOption{timer}
+\DeclareBoolOption{proof}% OBSOLETE
 
 \ProcessKeyvalOptions*
 
+%    \end{macrocode}
+%
+% Option |proof| is \textbf{obsolete}:
+%
+%    \begin{macrocode}
 \ifregstats at 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 at 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 at timerfalse
+  \fi
 \fi
 
-\newcommand{\regst at ts@timer}{%
-  \message{^^J}
-  \ifluatex
+%    \end{macrocode}
+%
+% The timer:
+%
+%    \begin{macrocode}
+\newcommand{\regst at ts@timer}{\message{^^J}%
+  \@tempcnta=0%
+%    \end{macrocode}
+%
+% For \hologo{LuaLaTeX}:
+%
+%    \begin{macrocode}
+  \ifluatex%
     \@tempcnta=%
       \directlua{
         if starttime then
@@ -570,381 +613,556 @@
         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 at timer
-\else
-\renewcommand{\regst at ts@timer}{\relax}
-\fi
+%    \end{macrocode}
+%
+% If the |timer|-option was not used, we do not use the timer:
+%
+%    \begin{macrocode}
+\ifregstats at timer\else\renewcommand{\regst at ts@timer}{\relax}\fi
 
-\let\regst at ts@statistics\AtVeryVeryEnd%
+%    \end{macrocode}
+%
+% Initialisation of some commands:
+%
+%    \begin{macrocode}
+\long\def\regstats at firstofone#1{#1}
 
+\providecommand\IfFormatAtLeastTF{\@ifl at t@r\fmtversion}
+
+\let\regst at tsNoeTeX\relax
+
+\xdef\regstats at 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 at t@r\fmtversion| is from |\@needsf at 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 at 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 at ts@statistics\ltx at firstofone%
- }
-}{% else: older fmtversion: OK
+\IfFormatAtLeastTF{2022/11/01}{
+   \let\regst at ts@statistics\regstats at firstofone% We do not use \AtVeryVeryEnd.
+   \newcommand{\regst at ts@st at 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 at tsmw{65250}}{%
+                                                                  \ifluatex\def\regs at tsmw{124}\else\def\regs at tsmw{16}\fi}%
+     \AddToHook{enddocument}{\AddToHook{enddocument/afterlastpage}{\AddToHook{enddocument/afteraux}{%
+                                                       \AddToHook{enddocument/info}{\AddToHook{enddocument/end}{#1}}}}}}}}
+ }{\RequirePackage{atveryend}
+   \let\regst at 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 at ts@statistics\regstats at firstofone
+        }
+    }{% else: older fmtversion: also OK
+     }
+   \newcommand{\regst at ts@st at tistics}[1]{\AtBeginDocument{\AtEndDocument{\AfterLastShipout{\AtVeryEndDocument{%
+                                                                                           \AtEndAfterFileList{#1}}}}}}
 %    \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 at ifclassloaded| and |\ltx at ifpackageloaded| from the \xpackage{ltxcmds}
-% package can be used after |\AtBeginDocument| (in contrast to
-% |\@ifclassloaded| and |\@ifpackageloaded|).
+% With the |seminar| class or the \pkg{slidesec} package |\AtVeryVeryEnd| must not be used:
 %
 %    \begin{macrocode}
-      \ltx at ifclassloaded{seminar}{% no \AtVeryVeryEnd
-        \let\regst at ts@statistics\ltx at firstofone%
-       }{% else
-         \ltx at ifpackageloaded{slidesec}{% no \AtVeryVeryEnd
-           \let\regst at ts@statistics\ltx at firstofone%
-          }{% else: OK
+   \AtBeginDocument{%
+     \@ifclassloaded{seminar}{% no \AtVeryVeryEnd
+       \let\regst at ts@statistics\regstats at firstofone}{\relax}
+     \@ifpackageloaded{slidesec}{% no \AtVeryVeryEnd
+       \let\regst at ts@statistics\regstats at firstofone}{\relax}
+%    \end{macrocode}
+%
+% The \pkg{morewrites} package allows for more writes (see \hbox{p. \pageref{write}):}
+%
+%    \begin{macrocode}
+     \@ifpackageloaded{morewrites}{\def\regs at tsmw{32767}}{\ifluatex\def\regs at tsmw{124}\else\def\regs at 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 at 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 at ts@st at tistics{%
+\regst at ts@statistics{%
+  \xdef\regstats at message{\relax}%
+%    \end{macrocode}
 %
-% |\AtEndAfterFileList| we write to |\AtVeryVeryEnd| (if available) via\linebreak
-% |\regst at ts@statistics|, thus the code will be executed quite late during
-% the compilation. (Please load \xpackage{regstats} as very last package!)\\
+% |\regstats at 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 at ts@statistics{%
+  \newcommand{\regstats at regstatA}[3]{%
+    \ifx\regst at tsNoeTeX\relax \xdef\regstats at max{#3}\else\xdef\regstats at max{#2}\fi%
+    \@tempcnta=\regstats at max \relax%
+    \advance\@tempcnta by -#1\relax%
+    \xdef\regstats at 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 at regstatB| gives the singular (2nd~argument) or plural (3rd~argument)
+% of the name of that register type (1st~argument):
 %
 %    \begin{macrocode}
-        \ltx at 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 at regstatB}[3]{%
+    \@tempcnta=\regstats at max\relax%
+    \advance\@tempcnta by -#1\relax%
+    \xdef\regstats at free{\the\@tempcnta}%
+    \@tempcnta=#1\relax%
+    \ifnum \the\@tempcnta = 0%
+      \@tempcnta=2\relax% zero: same as plural
+    \fi%
+    \ifnum \the\@tempcnta > 1%
+      \gdef\regstats at pl{#3}% plural
+    \else%
+      \gdef\regstats at 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 at lft{}%
-        \newcommand{\regstats at regstat}[5]{%
+    \@tempcnta=#1\relax%
+    \multiply\@tempcnta by 100\relax%
+    \@tempcntb=\regstats at max\relax%
+    \divide\@tempcnta by\@tempcntb\relax%
+    \xdef\regstats at 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 at pl{#3}
-          \else
-            \gdef\regstats at pl{#2}
-          \fi
-          \ltx at ifpackageloaded{etex}{\edef\regstats at max{#5}}{%
-            \edef\regstats at max{#4}}
-          \ifregstats at left
-            \@tempcnta=\regstats at max \relax
-            \advance\@tempcnta by -#1%
-            \ifnum \the\@tempcnta > 0
-              \edef\regstats at lft{, left: \the\@tempcnta}
-            \else
-              \ifnum \the\@tempcnta = 0
-                \edef\regstats at lft{, left: \the\@tempcnta !!!}
-              \else% \the\@tempcnta < 0
-                \edef\regstats at lft{, left: \the\@tempcnta **********}
-              \fi
-            \fi
+    \ifregstats at left%
+      \ifnum \regstats at free > 0\relax%
+        \xdef\regstats at lft{, left: \regstats at free}%
+      \else%
+        \ifnum \regstats at free = 0\relax%
+          \xdef\regstats at lft{, left: \regstats at free !!!}%
+        \else% \regstats at free < 0
+          \xdef\regstats at lft{, left: \regstats at free ??? **********}%
+        \fi%
+      \fi%
+    \fi%
+  }%
 %    \end{macrocode}
 %
-% |         \else| |\regstats at lft| will stay |\empty|.
+% We now just take the current numbers of the various |count|s:
 %
 %    \begin{macrocode}
-          \fi
-         }
+  \xdef\regstats at counter{\the\count10}%
+  \xdef\regstats at dimen{\the\count11}%
+  \xdef\regstats at skip{\the\count12}%
+  \xdef\regstats at muskip{\the\count13}%
+  \xdef\regstats at box{\the\count14}%
+  \xdef\regstats at toks{\the\count15}%
+  \xdef\regstats at read{\the\count16}%
+  \xdef\regstats at write{\the\count17}%
+  \xdef\regstats at fam{\the\count18}%
+  \xdef\regstats at language{\the\count19}%
+  \xdef\regstats at 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 at 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 at message|:
+%
 %    \begin{macrocode}
-        \ifregstats at 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 at proof{1}
-          \newcounter{regstatscount}
-          \edef\regstats at counter{\the\allocationnumber}
-          \edef\regstats at test{\the\count10}
-          \ifx\regstats at counter\regstats at test
-          \else
-            \message{Discrepancy when counting count registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newdimen{\regstatsdimen}
-          \edef\regstats at dimen{\the\allocationnumber}
-          \edef\regstats at test{\the\count11}
-          \ifx\regstats at dimen\regstats at test
-          \else
-            \message{Discrepancy when counting dimen registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newskip\regstatsskip
-          \edef\regstats at skip{\the\allocationnumber}
-          \edef\regstats at test{\the\count12}
-          \ifx\regstats at skip\regstats at test
-          \else
-            \message{Discrepancy when counting skip registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newmuskip\regstatsmuskip
-          \edef\regstats at muskip{\the\allocationnumber}
-          \edef\regstats at test{\the\count13}
-          \ifx\regstats at muskip\regstats at test
-          \else
-            \message{Discrepancy when counting muskip registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newbox\regstatsbox
-          \edef\regstats at box{\the\allocationnumber}
-          \edef\regstats at test{\the\count14}
-          \ifx\regstats at box\regstats at test
-          \else
-            \message{Discrepancy when counting box registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newtoks\regstatstoks
-          \edef\regstats at toks{\the\allocationnumber}
-          \edef\regstats at test{\the\count15}
-          \ifx\regstats at toks\regstats at test
-          \else
-            \message{Discrepancy when counting toks registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newread\regstatsread
-          \edef\regstats at read{\the\allocationnumber}
-          \edef\regstats at test{\the\count16}
-          \ifx\regstats at read\regstats at test
-          \else
-            \message{Discrepancy when counting read registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newwrite\regstatswrite
-          \edef\regstats at write{\the\allocationnumber}
-          \edef\regstats at test{\the\count17}
-          \ifx\regstats at write\regstats at test
-          \else
-            \message{Discrepancy when counting write registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newfam\regstatsfam
-          \edef\regstats at fam{\the\allocationnumber}
-          \edef\regstats at test{\the\count18}
-          \ifx\regstats at fam\regstats at test
-          \else
-            \message{Discrepancy when counting fam registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newlanguage\regstatslanguage
-          \edef\regstats at language{\the\allocationnumber}
-          \edef\regstats at test{\the\count19}
-          \ifx\regstats at language\regstats at test
-          \else
-            \message{Discrepancy when counting language registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newinsert\regstatsinsert
-          \edef\regstats at insert{\the\allocationnumber}
-          \edef\regstats at test{\the\count20}
-          \ifx\regstats at insert\regstats at test
-          \else
-            \message{Discrepancy when counting insert registers.^^J}
-            \def\regstats at proof{0}
-          \fi
+  \xdef\regstats at message{\regstats at message\message{^^J}}%
+  \xdef\regstats at message{\regstats at message\message{Here is how much of TeX's registers you used^^J}}%
+  \xdef\regstats at message{\regstats at 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 at ...{\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 at test{0}
-        \ifx\regstats at proof\regstats at test
-          \message{Regstats test for register numbers failed.^^J}
-          \message{Therefore option 'proof' is necessary to get the %
-                   right numbers.^^J}
-        \fi
-      \else
+  \regstats at regstatA{\regstats at counter}{255}{32767}%
+  \ifetex\newcounter{regstatscount}\xdef\regstats at counter{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at counter}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at counter\space  counter register\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at 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 at counter{\the\count10}
-        \edef\regstats at dimen{\the\count11}
-        \edef\regstats at skip{\the\count12}
-        \edef\regstats at muskip{\the\count13}
-        \edef\regstats at box{\the\count14}
-        \edef\regstats at toks{\the\count15}
-        \edef\regstats at read{\the\count16}
-        \edef\regstats at write{\the\count17}
-        \edef\regstats at fam{\the\count18}
-        \edef\regstats at language{\the\count19}
-        \edef\regstats at insert{\the\count20}
-      \fi
+  \regstats at regstatA{\regstats at dimen}{255}{32767}%
+  \ifetex\newdimen{\regstatsdimen}\xdef\regstats at dimen{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at dimen}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at dimen\space    dimen   register\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at 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 at insert%
-      \advance\@tempcnta by +1%
-      \edef\regstats at insert{\the\@tempcnta}
+  \regstats at regstatA{\regstats at skip}{255}{32767}%
+  \ifetex\newskip\regstatsskip\xdef\regstats at skip{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at skip}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at skip\space     skip    register\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
 %    \end{macrocode}
 %
-% \newpage
-% \begin{landscape}
+% \textbf{The muskip registers:}
 %
-% 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.)
+%    \begin{macrocode}
+  \regstats at regstatA{\regstats at muskip}{255}{32767}%
+  \ifetex\newmuskip\regstatsmuskip\xdef\regstats at muskip{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at muskip}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at muskip\space   muskip  register\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+%    \end{macrocode}
 %
+% \textbf{The box registers:}
+%
 %    \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 at regstat{\regstats at counter}{}{s}{233}{32767}
-      \message{ \regstats at counter\space  counter register\regstats at pl\space      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at dimen}{}{s}{233}{32767}
-      \message{ \regstats at dimen\space    dimen   register\regstats at pl\space      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at skip}{}{s}{233}{32767}
-      \message{ \regstats at skip\space     skip    register\regstats at pl\space      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at muskip}{}{s}{255}{32767}
-      \message{ \regstats at muskip\space   muskip  register\regstats at pl\space      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at box}{}{s}{233}{32767}
-      \message{ \regstats at box\space      box     register\regstats at pl\space      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at toks}{}{s}{255}{32767}
-      \message{ \regstats at toks\space     toks    register\regstats at pl\space      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at read}{}{s}{15}{15}
-      \message{ \regstats at read\space     input stream\regstats at pl\space (read)   out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at write}{}{s}{15}{15}
-      \message{ \regstats at write\space    output stream\regstats at pl\space (write) out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at fam}{y}{ies}{15}{15}
-      \message{ \regstats at fam\space      math famil\regstats at pl\space (fam)      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at language}{}{s}{255}{255}
-      \message{ \regstats at language\space language code\regstats at pl\space         out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at insert}{}{s}{101}{124}
-      \message{ \regstats at insert\space   insertion\regstats at pl\space             out of \regstats at max \regstats at lft ^^J}
+  \regstats at regstatA{\regstats at box}{255}{32767}%
+  \ifetex\newbox\regstatsbox\xdef\regstats at box{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at box}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at box\space      box     register\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
 %    \end{macrocode}
 %
+% \textbf{The toks registers:}
+%
+%    \begin{macrocode}
+  \regstats at regstatA{\regstats at toks}{255}{32767}%
+  \ifetex\newtoks\regstatstoks\xdef\regstats at toks{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at toks}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at toks\space     toks    register\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+%    \end{macrocode}
+%
+% \textbf{The \textquotedblleft read registers\textquotedblright, i.\,e. input streams:}
+%
+%    \begin{macrocode}
+  \regstats at regstatA{\regstats at read}{15}{15}%
+  \ifnum \regstats at free > 0\relax\newread\regstatsread\xdef\regstats at read{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at read}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at read\space     input stream\regstats at pl\space (read) %
+        out of \regstats at max\regstats at used\regstats at 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 at regstatA{\regstats at write}{15}{\regs at tsmw}%
+  \ifnum \regstats at free > 0\relax\newwrite\regstatswrite\xdef\regstats at write{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at write}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at write\space    output stream\regstats at pl\space (write) %
+        out of \regstats at max\regstats at used\regstats at 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 at regstatA{\regstats at fam}{15}{\ifluatex 255 \else 15\fi}%
+  \ifnum \regstats at free > 0\relax\newfam\regstatsfam\xdef\regstats at fam{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at fam}{y}{ies}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at fam\space      math famil\regstats at pl\space (fam) %
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+%    \end{macrocode}
 % \pagebreak
-% \end{landscape}
 %
+% \textbf{The \textquotedblleft language registers\textquotedblright, i.\,e. language codes:}
+%
+%    \begin{macrocode}
+  \regstats at regstatA{\regstats at language}{255}{255}%
+  \ifnum \regstats at free > 0\relax\newlanguage\regstatslanguage\xdef\regstats at language{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at language}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at language\space language code\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at 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 at tsNoeTeX\relax%
+    \newinsert\regstatsinsert%
+    \xdef\regstats at insert{\the\allocationnumber}%
+    \xdef\regstats at max{200}%
+    \ifnum \regstats at insert < \regstats at max\relax%
+      \xdef\regstats at free{\regstats at insert}%
+      \@tempcnta=200\relax%
+      \advance\@tempcnta by -\regstats at insert\relax%
+      \xdef\regstats at insert{\the\@tempcnta}%
+      \regstats at regstatB{\regstats at insert}{}{s}%
+      \xdef\regstats at message{\regstats at message\message{ \regstats at insert\space insertion\regstats at pl\space%
+            out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+    \else%
+      \ifnum \regstats at insert = 200\relax%
+        \xdef\regstats at message{\regstats at message\message{Number of insertions could not be calculated. ^^J}}%
+      \else%
+        \ifnum % \regstats at insert > 200 AND %
+          \regstats at insert < 253\relax%
+          \@tempcnta=253\relax%
+          \advance\@tempcnta by -\regstats at insert\relax%
+          \@tempcntb=-200\relax%
+          \advance\@tempcntb by \regstats at insert\relax%
+          \ifluatex%
+            \@tempcntb=-65534\relax%
+            \advance\@tempcntb by \regstats at insert\relax%
+            \xdef\regstats at message{\regstats at message\message{at least \the\@tempcnta\space insertions out of 253 used, %
+                                                                                                about 65 000 left ^^J}}%
+          \else%
+            \xdef\regstats at message{\regstats at message\message{at least \the\@tempcnta\space insertions out of 253 used, %
+                                                                                  maybe \the\@tempcntb\space left ^^J}}%
+          \fi%
+        \else% \regstats at insert > 252, LuaTeX
+          \@tempcntb=65534\relax%
+          \advance\@tempcntb by -\regstats at insert\relax%
+          \advance\@tempcntb by -253\relax%
+          \xdef\regstats at message{\regstats at message\message{a lot of insertions out of 65 534 used, %
+                                                                                  about \the\@tempcntb\space left ^^J}}%
+        \fi%
+      \fi%
+    \fi%
+  \else%
+    \xdef\regstats at max{101}%
+    \@tempcnta=\regstats at max\relax%
+    \advance\@tempcnta by -\regstats at insert\relax%
+    \xdef\regstats at insert{\the\@tempcnta}%
+    \@tempcnta=\regstats at max\relax%
+    \advance\@tempcnta by -\regstats at insert\relax%
+    \xdef\regstats at free{\the\@tempcnta}%
+    \regstats at regstatB{\regstats at insert}{}{s}%
+    \xdef\regstats at message{\regstats at message\message{ \regstats at insert\space insertion\regstats at pl\space out of %
+                                                                         \regstats at max\regstats at used\regstats at lft ^^J}}%
+    \xdef\regstats at message{\regstats at 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 at message%
+%    \end{macrocode}
+% \pagebreak
+%
+% A note about morewrites:
+%
+%    \begin{macrocode}
+  \ifluatex%
+  \else%
+    \def\regs at wmst{16}%
+    \ifx\regs at tsmw\regs at 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 at 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).
 % When more than one compilation run is necessary to compile the document,
@@ -959,7 +1177,7 @@
 % \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
@@ -966,149 +1184,148 @@
 % 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 at ts@timer
-      }%
-     }%
-    }%
-   }%
+  \regst at ts@timer%
   }%
- }%
 }
-
 %    \end{macrocode}
-%
 %    \begin{macrocode}
 %</package>
 %    \end{macrocode}
+% \pagebreak
 %
-% \newpage
-%
 % \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}
+% 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.
+%
+% \DescribeMacro{hyperref}
+% \noindent \xpackage{hyperref} is not included in that bundle and needs to be
+% 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}
-% \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}.\\
-% It is probably best to download and use this, because the packages in there
-% are quite probably both recent and compatible among themselves.\\
+% \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.
 %
-% \vskip 1.2cm
+% \vskip 1cm
 %
-% \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}.\\
-%
-% \DescribeMacro{M\"{u}nch}
+% \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 @@
 %
 % \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 @@
 %   \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 @@
 % \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 @@
 % \end{quote}
 %
 % \noindent An example follows how to generate the
-% documentation with \pdfLaTeX{}:
+% documentation with \pdfLaTeX :
 %
 % \begin{quote}
 %\begin{verbatim}
@@ -1264,53 +1480,41 @@
 %
 % \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{}.
+% 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.
 %
-% \bigskip
-%
 % \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 @@
 %             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,8 +1540,25 @@
 %   \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 at timer|.
+%             association of |\else|\ldots|\fi|. Fixed by moving |\ifregstats at 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}
 %
 % \bigskip
@@ -1345,7 +1566,7 @@
 % 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
 %

Modified: trunk/Master/texmf-dist/source/latex/regstats/regstats.ins
===================================================================
--- trunk/Master/texmf-dist/source/latex/regstats/regstats.ins	2023-04-07 20:52:12 UTC (rev 66792)
+++ trunk/Master/texmf-dist/source/latex/regstats/regstats.ins	2023-04-07 20:53:03 UTC (rev 66793)
@@ -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>
+%% Copyright (C) 2011 - 2023 by
+%%     H.-Martin Muench <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.)
-%% 
 %% 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>
+Copyright (C) 2011 - 2023 by
+    H.-Martin Muench <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.)
-
 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 @@
    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 @@
 \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.}

Modified: trunk/Master/texmf-dist/tex/latex/regstats/regstats.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/regstats/regstats.sty	2023-04-07 20:52:12 UTC (rev 66792)
+++ trunk/Master/texmf-dist/tex/latex/regstats/regstats.sty	2023-04-07 20:53:03 UTC (rev 66793)
@@ -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>
+%% Copyright (C) 2011 - 2023 by
+%%     H.-Martin Muench <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.)
-%% 
 %% 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,9 +36,13 @@
 %%    regstats-example.tex, regstats-example.pdf,
 %%    regstats-example.log.
 %% 
-\NeedsTeXFormat{LaTeX2e}[2011/06/27]
-\ProvidesPackage{regstats}[2012/01/07 v1.0h
-              Counting used registers (HMM)]
+%% In memoriam
+%%  Claudia Simone Barth + 1996-01-30
+%%  Tommy Muench         + 2014-01-02
+%%  Hans-Klaus Muench    + 2014-08-24
+%% 
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{regstats}[2023/04/04 v1.1a Counting used registers (HMM)]
 
 %% Allows to count the number of used registers
 %% (counter, dimen, skip, muskip, box, token, input, output,
@@ -49,49 +49,43 @@
 %%  math families, languages, insertions)
 %% and compare these to the maximum available number of such registers.
 
-\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)
 
-%% 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).
-
 \SetupKeyvalOptions{family=regstats,prefix=regstats@}
-\DeclareBoolOption{proof}% \regstats at proof
-\DeclareBoolOption{left}
+\DeclareBoolOption{left}% \regstats at left
 \DeclareBoolOption{timer}
+\DeclareBoolOption{proof}% OBSOLETE
 
 \ProcessKeyvalOptions*
 
 \ifregstats at 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
 
+\IfFileExists{iftex.sty}{\RequirePackage{iftex}}{
+  \RequirePackage{ifpdf}
+  \RequirePackage{ifetex}
+  \RequirePackage{ifluatex}
+  }
+
+\@ifundefined{ifluatex}{\newif\ifluatex \luatexfalse}{\relax}
+\@ifundefined{ifetex}{\newif\ifetex \etexfalse}{\relax}
+
 \ifregstats at 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 at timerfalse
+  \fi
 \fi
 
-\newcommand{\regst at ts@timer}{%
-  \message{^^J}
-  \ifluatex
+\newcommand{\regst at ts@timer}{\message{^^J}%
+  \@tempcnta=0%
+  \ifluatex%
     \@tempcnta=%
       \directlua{
         if starttime then
@@ -99,275 +93,271 @@
         else
           tex.sprint(0)
         end
-       }\relax
-    \ifnum \the\@tempcnta = 0
+       }\relax%
+  \else \ifpdf \@tempcnta=\the\pdfelapsedtime\relax\fi%
+  \fi%
+  \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
-    \message{Time elapsed for the last compiler run:^^J%
-      about \the\@tempcnta:\regstatsseconds \space%
-      (m:ss; \regstatselapsedtime /65536 s).^^J}
-  \fi
+        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%
+    \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 at timer
-\else
-\renewcommand{\regst at ts@timer}{\relax}
-\fi
+\ifregstats at timer\else\renewcommand{\regst at ts@timer}{\relax}\fi
 
-\let\regst at ts@statistics\AtVeryVeryEnd%
+\long\def\regstats at firstofone#1{#1}
 
-\@ifl at 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 at ts@statistics\ltx at firstofone%
- }
-}{% else: older fmtversion: OK
-}
+\providecommand\IfFormatAtLeastTF{\@ifl at t@r\fmtversion}
 
-\AtBeginDocument{%
- \AtEndDocument{%
-  \BeforeClearDocument{%
-   \AfterLastShipout{%
-    \AtVeryEndDocument{%
-     \AtEndAfterFileList{%
-      \ltx at ifclassloaded{seminar}{% no \AtVeryVeryEnd
-        \let\regst at ts@statistics\ltx at firstofone%
-       }{% else
-         \ltx at ifpackageloaded{slidesec}{% no \AtVeryVeryEnd
-           \let\regst at ts@statistics\ltx at firstofone%
-          }{% else: OK
+\let\regst at tsNoeTeX\relax
+
+\xdef\regstats at lft{}
+
+\IfFormatAtLeastTF{2022/11/01}{
+   \let\regst at ts@statistics\regstats at firstofone% We do not use \AtVeryVeryEnd.
+   \newcommand{\regst at ts@st at tistics}[1]{\AddToHook{begindocument}{%
+     \AddToHook{begindocument/end}{\IfPackageLoadedTF{morewrites}{\def\regs at tsmw{65250}}{%
+                                                                  \ifluatex\def\regs at tsmw{124}\else\def\regs at tsmw{16}\fi}%
+     \AddToHook{enddocument}{\AddToHook{enddocument/afterlastpage}{\AddToHook{enddocument/afteraux}{%
+                                                       \AddToHook{enddocument/info}{\AddToHook{enddocument/end}{#1}}}}}}}}
+ }{\RequirePackage{atveryend}
+   \let\regst at 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 at ts@statistics\regstats at firstofone
+        }
+    }{% else: older fmtversion: also OK
+     }
+   \newcommand{\regst at ts@st at tistics}[1]{\AtBeginDocument{\AtEndDocument{\AfterLastShipout{\AtVeryEndDocument{%
+                                                                                           \AtEndAfterFileList{#1}}}}}}
+   \AtBeginDocument{%
+     \@ifclassloaded{seminar}{% no \AtVeryVeryEnd
+       \let\regst at ts@statistics\regstats at firstofone}{\relax}
+     \@ifpackageloaded{slidesec}{% no \AtVeryVeryEnd
+       \let\regst at ts@statistics\regstats at firstofone}{\relax}
+     \@ifpackageloaded{morewrites}{\def\regs at tsmw{32767}}{\ifluatex\def\regs at tsmw{124}\else\def\regs at tsmw{15}\fi}%
+     \ifetex\else%
+       \@ifpackageloaded{etex}{\relax}{% else
+        \gdef\regst at 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;%
           }%
+        }%
        }%
-      \regst at ts@statistics{%
-        \ltx at 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.%
-           }
-        }
-        \def\regstats at lft{}%
-        \newcommand{\regstats at regstat}[5]{%
-          \@tempcnta=#1 \relax
-          \ifnum \the\@tempcnta = 0
-            \@tempcnta=2 \relax
-          \fi
-          \ifnum \the\@tempcnta > 1
-            \gdef\regstats at pl{#3}
-          \else
-            \gdef\regstats at pl{#2}
-          \fi
-          \ltx at ifpackageloaded{etex}{\edef\regstats at max{#5}}{%
-            \edef\regstats at max{#4}}
-          \ifregstats at left
-            \@tempcnta=\regstats at max \relax
-            \advance\@tempcnta by -#1%
-            \ifnum \the\@tempcnta > 0
-              \edef\regstats at lft{, left: \the\@tempcnta}
-            \else
-              \ifnum \the\@tempcnta = 0
-                \edef\regstats at lft{, left: \the\@tempcnta !!!}
-              \else% \the\@tempcnta < 0
-                \edef\regstats at lft{, left: \the\@tempcnta **********}
-              \fi
-            \fi
-          \fi
-         }
-        \ifregstats at 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 at proof{1}
-          \newcounter{regstatscount}
-          \edef\regstats at counter{\the\allocationnumber}
-          \edef\regstats at test{\the\count10}
-          \ifx\regstats at counter\regstats at test
-          \else
-            \message{Discrepancy when counting count registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newdimen{\regstatsdimen}
-          \edef\regstats at dimen{\the\allocationnumber}
-          \edef\regstats at test{\the\count11}
-          \ifx\regstats at dimen\regstats at test
-          \else
-            \message{Discrepancy when counting dimen registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newskip\regstatsskip
-          \edef\regstats at skip{\the\allocationnumber}
-          \edef\regstats at test{\the\count12}
-          \ifx\regstats at skip\regstats at test
-          \else
-            \message{Discrepancy when counting skip registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newmuskip\regstatsmuskip
-          \edef\regstats at muskip{\the\allocationnumber}
-          \edef\regstats at test{\the\count13}
-          \ifx\regstats at muskip\regstats at test
-          \else
-            \message{Discrepancy when counting muskip registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newbox\regstatsbox
-          \edef\regstats at box{\the\allocationnumber}
-          \edef\regstats at test{\the\count14}
-          \ifx\regstats at box\regstats at test
-          \else
-            \message{Discrepancy when counting box registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newtoks\regstatstoks
-          \edef\regstats at toks{\the\allocationnumber}
-          \edef\regstats at test{\the\count15}
-          \ifx\regstats at toks\regstats at test
-          \else
-            \message{Discrepancy when counting toks registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newread\regstatsread
-          \edef\regstats at read{\the\allocationnumber}
-          \edef\regstats at test{\the\count16}
-          \ifx\regstats at read\regstats at test
-          \else
-            \message{Discrepancy when counting read registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newwrite\regstatswrite
-          \edef\regstats at write{\the\allocationnumber}
-          \edef\regstats at test{\the\count17}
-          \ifx\regstats at write\regstats at test
-          \else
-            \message{Discrepancy when counting write registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newfam\regstatsfam
-          \edef\regstats at fam{\the\allocationnumber}
-          \edef\regstats at test{\the\count18}
-          \ifx\regstats at fam\regstats at test
-          \else
-            \message{Discrepancy when counting fam registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newlanguage\regstatslanguage
-          \edef\regstats at language{\the\allocationnumber}
-          \edef\regstats at test{\the\count19}
-          \ifx\regstats at language\regstats at test
-          \else
-            \message{Discrepancy when counting language registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-          \newinsert\regstatsinsert
-          \edef\regstats at insert{\the\allocationnumber}
-          \edef\regstats at test{\the\count20}
-          \ifx\regstats at insert\regstats at test
-          \else
-            \message{Discrepancy when counting insert registers.^^J}
-            \def\regstats at proof{0}
-          \fi
-        \edef\regstats at test{0}
-        \ifx\regstats at proof\regstats at test
-          \message{Regstats test for register numbers failed.^^J}
-          \message{Therefore option 'proof' is necessary to get the %
-                   right numbers.^^J}
-        \fi
-      \else
-        \edef\regstats at counter{\the\count10}
-        \edef\regstats at dimen{\the\count11}
-        \edef\regstats at skip{\the\count12}
-        \edef\regstats at muskip{\the\count13}
-        \edef\regstats at box{\the\count14}
-        \edef\regstats at toks{\the\count15}
-        \edef\regstats at read{\the\count16}
-        \edef\regstats at write{\the\count17}
-        \edef\regstats at fam{\the\count18}
-        \edef\regstats at language{\the\count19}
-        \edef\regstats at insert{\the\count20}
-      \fi
-      \@tempcnta = 233 \relax
-      \advance\@tempcnta by -\regstats at insert%
-      \advance\@tempcnta by +1%
-      \edef\regstats at insert{\the\@tempcnta}
-      \message{^^J}
-      \message{Here is how much of TeX's registers you used^^J}%
-      \message{\space (numbers of available registers are estimated!):^^J}%
-      \regstats at regstat{\regstats at counter}{}{s}{233}{32767}
-      \message{ \regstats at counter\space  counter register\regstats at pl\space      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at dimen}{}{s}{233}{32767}
-      \message{ \regstats at dimen\space    dimen   register\regstats at pl\space      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at skip}{}{s}{233}{32767}
-      \message{ \regstats at skip\space     skip    register\regstats at pl\space      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at muskip}{}{s}{255}{32767}
-      \message{ \regstats at muskip\space   muskip  register\regstats at pl\space      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at box}{}{s}{233}{32767}
-      \message{ \regstats at box\space      box     register\regstats at pl\space      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at toks}{}{s}{255}{32767}
-      \message{ \regstats at toks\space     toks    register\regstats at pl\space      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at read}{}{s}{15}{15}
-      \message{ \regstats at read\space     input stream\regstats at pl\space (read)   out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at write}{}{s}{15}{15}
-      \message{ \regstats at write\space    output stream\regstats at pl\space (write) out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at fam}{y}{ies}{15}{15}
-      \message{ \regstats at fam\space      math famil\regstats at pl\space (fam)      out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at language}{}{s}{255}{255}
-      \message{ \regstats at language\space language code\regstats at pl\space         out of \regstats at max \regstats at lft ^^J}
-      \regstats at regstat{\regstats at insert}{}{s}{101}{124}
-      \message{ \regstats at insert\space   insertion\regstats at pl\space             out of \regstats at max \regstats at lft ^^J}
-      \regst at ts@timer
-      }%
-     }%
+     \fi%
+     }
+  }
+
+\regst at ts@st at tistics{%
+\regst at ts@statistics{%
+  \xdef\regstats at message{\relax}%
+  \newcommand{\regstats at regstatA}[3]{%
+    \ifx\regst at tsNoeTeX\relax \xdef\regstats at max{#3}\else\xdef\regstats at max{#2}\fi%
+    \@tempcnta=\regstats at max \relax%
+    \advance\@tempcnta by -#1\relax%
+    \xdef\regstats at free{\the\@tempcnta}%
     }%
-   }%
+  \newcommand{\regstats at regstatB}[3]{%
+    \@tempcnta=\regstats at max\relax%
+    \advance\@tempcnta by -#1\relax%
+    \xdef\regstats at free{\the\@tempcnta}%
+    \@tempcnta=#1\relax%
+    \ifnum \the\@tempcnta = 0%
+      \@tempcnta=2\relax% zero: same as plural
+    \fi%
+    \ifnum \the\@tempcnta > 1%
+      \gdef\regstats at pl{#3}% plural
+    \else%
+      \gdef\regstats at pl{#2}% singular
+    \fi%
+    \@tempcnta=#1\relax%
+    \multiply\@tempcnta by 100\relax%
+    \@tempcntb=\regstats at max\relax%
+    \divide\@tempcnta by\@tempcntb\relax%
+    \xdef\regstats at used{\space(\the\@tempcnta\@percentchar\space used)}%
+    \ifregstats at left%
+      \ifnum \regstats at free > 0\relax%
+        \xdef\regstats at lft{, left: \regstats at free}%
+      \else%
+        \ifnum \regstats at free = 0\relax%
+          \xdef\regstats at lft{, left: \regstats at free !!!}%
+        \else% \regstats at free < 0
+          \xdef\regstats at lft{, left: \regstats at free ??? **********}%
+        \fi%
+      \fi%
+    \fi%
   }%
- }%
+  \xdef\regstats at counter{\the\count10}%
+  \xdef\regstats at dimen{\the\count11}%
+  \xdef\regstats at skip{\the\count12}%
+  \xdef\regstats at muskip{\the\count13}%
+  \xdef\regstats at box{\the\count14}%
+  \xdef\regstats at toks{\the\count15}%
+  \xdef\regstats at read{\the\count16}%
+  \xdef\regstats at write{\the\count17}%
+  \xdef\regstats at fam{\the\count18}%
+  \xdef\regstats at language{\the\count19}%
+  \xdef\regstats at insert{\the\count20}%
+  \xdef\regstats at message{\regstats at message\message{^^J}}%
+  \xdef\regstats at message{\regstats at message\message{Here is how much of TeX's registers you used^^J}}%
+  \xdef\regstats at message{\regstats at message\message{\space (numbers of available registers are estimated!):^^J}}%
+  \regstats at regstatA{\regstats at counter}{255}{32767}%
+  \ifetex\newcounter{regstatscount}\xdef\regstats at counter{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at counter}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at counter\space  counter register\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+  \regstats at regstatA{\regstats at dimen}{255}{32767}%
+  \ifetex\newdimen{\regstatsdimen}\xdef\regstats at dimen{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at dimen}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at dimen\space    dimen   register\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+  \regstats at regstatA{\regstats at skip}{255}{32767}%
+  \ifetex\newskip\regstatsskip\xdef\regstats at skip{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at skip}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at skip\space     skip    register\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+  \regstats at regstatA{\regstats at muskip}{255}{32767}%
+  \ifetex\newmuskip\regstatsmuskip\xdef\regstats at muskip{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at muskip}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at muskip\space   muskip  register\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+  \regstats at regstatA{\regstats at box}{255}{32767}%
+  \ifetex\newbox\regstatsbox\xdef\regstats at box{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at box}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at box\space      box     register\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+  \regstats at regstatA{\regstats at toks}{255}{32767}%
+  \ifetex\newtoks\regstatstoks\xdef\regstats at toks{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at toks}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at toks\space     toks    register\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+  \regstats at regstatA{\regstats at read}{15}{15}%
+  \ifnum \regstats at free > 0\relax\newread\regstatsread\xdef\regstats at read{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at read}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at read\space     input stream\regstats at pl\space (read) %
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+  \regstats at regstatA{\regstats at write}{15}{\regs at tsmw}%
+  \ifnum \regstats at free > 0\relax\newwrite\regstatswrite\xdef\regstats at write{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at write}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at write\space    output stream\regstats at pl\space (write) %
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+  \regstats at regstatA{\regstats at fam}{15}{\ifluatex 255 \else 15\fi}%
+  \ifnum \regstats at free > 0\relax\newfam\regstatsfam\xdef\regstats at fam{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at fam}{y}{ies}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at fam\space      math famil\regstats at pl\space (fam) %
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+  \regstats at regstatA{\regstats at language}{255}{255}%
+  \ifnum \regstats at free > 0\relax\newlanguage\regstatslanguage\xdef\regstats at language{\the\allocationnumber}\fi%
+  \regstats at regstatB{\regstats at language}{}{s}%
+  \xdef\regstats at message{\regstats at message\message{ \regstats at language\space language code\regstats at pl\space%
+        out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+  %
+  \ifx\regst at tsNoeTeX\relax%
+    \newinsert\regstatsinsert%
+    \xdef\regstats at insert{\the\allocationnumber}%
+    \xdef\regstats at max{200}%
+    \ifnum \regstats at insert < \regstats at max\relax%
+      \xdef\regstats at free{\regstats at insert}%
+      \@tempcnta=200\relax%
+      \advance\@tempcnta by -\regstats at insert\relax%
+      \xdef\regstats at insert{\the\@tempcnta}%
+      \regstats at regstatB{\regstats at insert}{}{s}%
+      \xdef\regstats at message{\regstats at message\message{ \regstats at insert\space insertion\regstats at pl\space%
+            out of \regstats at max\regstats at used\regstats at lft ^^J}}%
+    \else%
+      \ifnum \regstats at insert = 200\relax%
+        \xdef\regstats at message{\regstats at message\message{Number of insertions could not be calculated. ^^J}}%
+      \else%
+        \ifnum % \regstats at insert > 200 AND %
+          \regstats at insert < 253\relax%
+          \@tempcnta=253\relax%
+          \advance\@tempcnta by -\regstats at insert\relax%
+          \@tempcntb=-200\relax%
+          \advance\@tempcntb by \regstats at insert\relax%
+          \ifluatex%
+            \@tempcntb=-65534\relax%
+            \advance\@tempcntb by \regstats at insert\relax%
+            \xdef\regstats at message{\regstats at message\message{at least \the\@tempcnta\space insertions out of 253 used, %
+                                                                                                about 65 000 left ^^J}}%
+          \else%
+            \xdef\regstats at message{\regstats at message\message{at least \the\@tempcnta\space insertions out of 253 used, %
+                                                                                  maybe \the\@tempcntb\space left ^^J}}%
+          \fi%
+        \else% \regstats at insert > 252, LuaTeX
+          \@tempcntb=65534\relax%
+          \advance\@tempcntb by -\regstats at insert\relax%
+          \advance\@tempcntb by -253\relax%
+          \xdef\regstats at message{\regstats at message\message{a lot of insertions out of 65 534 used, %
+                                                                                  about \the\@tempcntb\space left ^^J}}%
+        \fi%
+      \fi%
+    \fi%
+  \else%
+    \xdef\regstats at max{101}%
+    \@tempcnta=\regstats at max\relax%
+    \advance\@tempcnta by -\regstats at insert\relax%
+    \xdef\regstats at insert{\the\@tempcnta}%
+    \@tempcnta=\regstats at max\relax%
+    \advance\@tempcnta by -\regstats at insert\relax%
+    \xdef\regstats at free{\the\@tempcnta}%
+    \regstats at regstatB{\regstats at insert}{}{s}%
+    \xdef\regstats at message{\regstats at message\message{ \regstats at insert\space insertion\regstats at pl\space out of %
+                                                                         \regstats at max\regstats at used\regstats at lft ^^J}}%
+    \xdef\regstats at message{\regstats at message\message{* The number of available inserts might be increased by using %
+                                                                                          \string\reserveinserts .^^J}}%
+  \fi%
+  \regstats at message%
+  \ifluatex%
+  \else%
+    \def\regs at wmst{16}%
+    \ifx\regs at tsmw\regs at 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%
+  \regst at tsNoeTeX%
+  \regst at ts@timer%
+  }%
 }
-
 \endinput
 %%
 %% End of file `regstats.sty'.



More information about the tex-live-commits mailing list.