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