summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/regstats
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/regstats
Initial commit
Diffstat (limited to 'macros/latex/contrib/regstats')
-rw-r--r--macros/latex/contrib/regstats/README176
-rw-r--r--macros/latex/contrib/regstats/regstats-example.log327
-rw-r--r--macros/latex/contrib/regstats/regstats-example.pdfbin0 -> 66974 bytes
-rw-r--r--macros/latex/contrib/regstats/regstats.dtx1353
-rw-r--r--macros/latex/contrib/regstats/regstats.pdfbin0 -> 327688 bytes
5 files changed, 1856 insertions, 0 deletions
diff --git a/macros/latex/contrib/regstats/README b/macros/latex/contrib/regstats/README
new file mode 100644
index 0000000000..f5021dabd3
--- /dev/null
+++ b/macros/latex/contrib/regstats/README
@@ -0,0 +1,176 @@
+README for regstats package, 2012/01/07, v1.0h
+
+
+TABLE OF CONTENTS
+=================
+
+1 Introduction
+2 Download
+3 Installation
+4 Additional Packages
+5 Package Compatibility
+6 Author/Maintainer
+7 Bug Reports
+8 Known Problems
+
+
+1 INTRODUCTION
+==============
+
+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).
+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).
+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.
+
+
+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.
+
+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),
+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/
+
+
+3 INSTALLATION
+==============
+
+Installation with ZIP file in TDS format
+----------------------------------------
+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.)
+Example:
+ cd /...somewhere.../texmf
+ unzip /...downloadpath.../regstats.tds.zip
+Do not forget to refresh the file name database of this
+TDS tree.
+Example:
+ texhash /...somewhere.../texmf
+
+Manual installation
+-------------------
+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
+ (texmf directory).
+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.
+ pdflatex regstats-example.tex
+ pdflatex regstats-example.tex
+ or remove the "%% " before "\directlua{starttime = os.clock()}"
+ in the regstats-example.tex and use
+ lualatex regstats-example.tex
+ lualatex regstats-example.tex
+ lualatex regstats-example.tex
+g) Copy the documentation files to
+ "TDS:doc/latex/regstats/":
+ README, regstats.pdf, regstats-example.tex,
+ regstats-example.log, regstats-example.pdf.
+
+
+4 ADDITIONAL PACKAGES
+=====================
+
+regstats loads other packages:
+* kvoptions, http://ctan.org/pkg/kvoptions
+* atveryend, http://ctan.org/pkg/atveryend
+* ltxcmds, http://ctan.org/pkg/ltxcmds
+with option timer additionally:
+* intcalc, http://ctan.org/pkg/intcalc
+* ifluatex, http://ctan.org/pkg/ifluatex
+* ifpdf, http://ctan.org/pkg/ifpdf
+which again load other packages
+(see the result of the \listfiles command in the log-file
+ of the example).
+
+
+5 PACKAGE COMPATIBILITY
+=======================
+
+regstats should be loaded very last (but can be loaded earlier).
+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.
+* 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
+ of the LaTeX run.
+* Please no other files than the minimal test file.
+ The other files .log, .dvi, .ps, .pdf are seldom
+ necessary, so send them only on request.
+* Please .zip or .tar.gz your file(s) before sending them!
+
+Bug address
+-----------
+Bug reports can be send to the maintainer:
+ H.-Martin Münch
+ <Martin [dot] Muench [at] Uni-Bonn [dot] de>
+
+
+8 KNOWN PROBLEMS
+=================
+
+* as yet: none. \ No newline at end of file
diff --git a/macros/latex/contrib/regstats/regstats-example.log b/macros/latex/contrib/regstats/regstats-example.log
new file mode 100644
index 0000000000..34bc48e7d0
--- /dev/null
+++ b/macros/latex/contrib/regstats/regstats-example.log
@@ -0,0 +1,327 @@
+This is pdfTeX, Version 3.1415926-2.3-1.40.12 (Web2C 2011) (format=pdflatex 2011.11.11) 7 JAN 2012 12:06
+entering extended mode
+ restricted \write18 enabled.
+ %&-line parsing enabled.
+**regstats-example.tex
+(./regstats-example.tex
+LaTeX2e <2011/06/27>
+Babel <v3.8m> and hyphenation patterns for english, dumylang, nohyphenation, ge
+rman-x-2011-07-01, ngerman-x-2011-07-01, afrikaans, ancientgreek, ibycus, arabi
+c, armenian, basque, bulgarian, catalan, pinyin, coptic, croatian, czech, danis
+h, dutch, ukenglish, usenglishmax, esperanto, estonian, ethiopic, farsi, finnis
+h, french, galician, german, ngerman, swissgerman, monogreek, greek, hungarian,
+ icelandic, assamese, bengali, gujarati, hindi, kannada, malayalam, marathi, or
+iya, panjabi, tamil, telugu, indonesian, interlingua, irish, italian, kurmanji,
+ lao, latin, latvian, lithuanian, mongolian, mongolianlmc, bokmal, nynorsk, pol
+ish, portuguese, romanian, russian, sanskrit, serbian, serbianc, slovak, sloven
+ian, spanish, swedish, turkish, turkmen, ukrainian, uppersorbian, welsh, loaded
+.
+(s:/TeXlive2011/texmf-dist/tex/latex/base/article.cls
+Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
+(s:/TeXlive2011/texmf-dist/tex/latex/base/size10.clo
+File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
+)
+\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.
+
+(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)
+\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: External font `cmex10' loaded for size
+(Font) <7> on input line 86.
+LaTeX Font Info: External font `cmex10' loaded for size
+(Font) <5> on input line 86.
+
+Underfull \hbox (badness 10000) in paragraph at lines 86--90
+
+ []
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 91--92
+
+ []
+
+
+Underfull \hbox (badness 10000) in paragraph at lines 93--96
+
+ []
+
+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.
+
+
+ *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
+ ***********
+
+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.
+
+
+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
+
+Time elapsed for the last compiler run:
+about 0:00 (m:ss; 25559/65536 s).
+ )
+Here is how much of TeX's memory you used:
+ 4107 strings out of 493629
+ 61316 string characters out of 3147108
+ 141906 words of memory out of 3000000
+ 7438 multiletter control sequences out of 15000+200000
+ 4718 words of font info for 18 fonts, out of 3000000 for 9000
+ 831 hyphenation exceptions out of 8191
+ 29i,4n,23p,212b,314s stack positions out of 5000i,500n,10000p,200000b,50000s
+<s:/TeXlive2011/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb><s:/TeXl
+ive2011/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb><s:/TeXlive2011/te
+xmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb><s:/TeXlive2011/texmf-dist/fo
+nts/type1/public/amsfonts/cm/cmr7.pfb><s:/TeXlive2011/texmf-dist/fonts/type1/pu
+blic/amsfonts/cm/cmss10.pfb><s:/TeXlive2011/texmf-dist/fonts/type1/public/amsfo
+nts/cm/cmtt10.pfb>
+Output written on regstats-example.pdf (1 page, 66974 bytes).
+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)
+ 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
new file mode 100644
index 0000000000..f7909773da
--- /dev/null
+++ b/macros/latex/contrib/regstats/regstats-example.pdf
Binary files differ
diff --git a/macros/latex/contrib/regstats/regstats.dtx b/macros/latex/contrib/regstats/regstats.dtx
new file mode 100644
index 0000000000..903f08ab3d
--- /dev/null
+++ b/macros/latex/contrib/regstats/regstats.dtx
@@ -0,0 +1,1353 @@
+% \iffalse meta-comment
+%
+% File: regstats.dtx
+% Version: 2012/01/07 v1.0h
+%
+% Copyright (C) 2011 - 2012 by
+% H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either
+% version 1.3c of this license or (at your option) any later
+% version. This version of this license is in
+% http://www.latex-project.org/lppl/lppl-1-3c.txt
+% and the latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of
+% LaTeX version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status "maintained".
+%
+% The Current Maintainer of this work is H.-Martin Muench.
+%
+% This work consists of the main source file regstats.dtx,
+% the README, and the derived files
+% regstats.sty, regstats.pdf,
+% regstats.ins, regstats.drv,
+% 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
+%
+%<*ignore>
+\begingroup
+ \catcode123=1 %
+ \catcode125=2 %
+ \def\x{LaTeX2e}%
+\expandafter\endgroup
+\ifcase 0\ifx\install y1\fi\expandafter
+ \ifx\csname processbatchFile\endcsname\relax\else1\fi
+ \ifx\fmtname\x\else 1\fi\relax
+\else\csname fi\endcsname
+%</ignore>
+%<*install>
+\input docstrip.tex
+\Msg{********************************************************************}
+\Msg{* Installation *}
+\Msg{* Package: regstats 2012/01/07 v1.0h Counting used registers (HMM) *}
+\Msg{********************************************************************}
+
+\keepsilent
+\askforoverwritefalse
+
+\let\MetaPrefix\relax
+\preamble
+
+This is a generated file.
+
+Project: regstats
+Version: 2012/01/07 v1.0h
+
+Copyright (C) 2011 - 2012 by
+ H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de>
+
+The usual disclaimer applies:
+If it doesn't work right that's your problem.
+(Nevertheless, send an e-mail to the maintainer
+ when you find an error in this package.)
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either
+version 1.3c of this license or (at your option) any later
+version. This version of this license is in
+ http://www.latex-project.org/lppl/lppl-1-3c.txt
+and the latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3c or later is part of all distributions of
+LaTeX version 2005/12/01 or later.
+
+This work has the LPPL maintenance status "maintained".
+
+The Current Maintainer of this work is H.-Martin Muench.
+
+This work consists of the main source file regstats.dtx,
+the README, and the derived files
+ regstats.sty, regstats.pdf,
+ regstats.ins, regstats.drv,
+ regstats-example.tex, regstats-example.pdf,
+ regstats-example.log.
+
+\endpreamble
+\let\MetaPrefix\DoubleperCent
+
+\generate{%
+ \file{regstats.ins}{\from{regstats.dtx}{install}}%
+ \file{regstats.drv}{\from{regstats.dtx}{driver}}%
+ \usedir{tex/latex/regstats}%
+ \file{regstats.sty}{\from{regstats.dtx}{package}}%
+ \usedir{doc/latex/regstats}%
+ \file{regstats-example.tex}{\from{regstats.dtx}{example}}%
+}
+
+\catcode32=13\relax% active space
+\let =\space%
+\Msg{************************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the following}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* regstats.sty}
+\Msg{*}
+\Msg{* To produce the documentation run the file `regstats.drv'}
+\Msg{* through (pdf)LaTeX, e.g.}
+\Msg{* pdflatex regstats.drv}
+\Msg{* makeindex -s gind.ist regstats.idx}
+\Msg{* pdflatex regstats.drv}
+\Msg{* makeindex -s gind.ist regstats.idx}
+\Msg{* pdflatex regstats.drv}
+\Msg{*}
+\Msg{* At least three runs are necessary e.g. to get the}
+\Msg{* references right!}
+\Msg{*}
+\Msg{* Happy TeXing!}
+\Msg{*}
+\Msg{************************************************************************}
+
+\endbatchfile
+%</install>
+%<*ignore>
+\fi
+%</ignore>
+%
+% \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
+% 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}
+% asks for options.
+%
+% \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).
+\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},%
+ pdfencoding=auto,%
+ pdflang={en},%
+ breaklinks=true,%
+ linktoc=all,%
+ pdfstartview=FitH,%
+ pdfpagelayout=OneColumn,%
+ bookmarksnumbered=true,%
+ bookmarksopen=true,%
+ bookmarksopenlevel=3,%
+ pdfmenubar=true,%
+ pdftoolbar=true,%
+ pdfwindowui=true,%
+ pdfnewwindow=true%
+}
+\CodelineIndex
+\hyphenation{printing docu-ment}
+\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}%
+\makeatletter
+\@ifundefined{eTeX}{\gdef\eTeX{$\m@th \varepsilon $-\TeX }}{% else \relax
+}
+\makeatother
+\begin{document}
+ \DocInput{regstats.dtx}%
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+% \fi
+%
+% \CheckSum{578}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \GetFileInfo{regstats.drv}
+%
+% \begingroup
+% \def\x{\#,\$,\^,\_,\~,\ ,\&,\{,\},\%}%
+% \makeatletter
+% \@onelevel@sanitize\x
+% \expandafter\endgroup
+% \expandafter\DoNotIndex\expandafter{\x}
+% \expandafter\DoNotIndex\expandafter{\string\ }
+% \begingroup
+% \makeatletter
+% \lccode`9=32\relax
+% \lowercase{%^^A
+% \edef\x{\noexpand\DoNotIndex{\@backslashchar9}}%^^A
+% }%^^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}
+%
+% \title{The \xpackage{regstats} package}
+% \date{2012/01/07 v1.0h}
+% \author{H.-Martin M\"{u}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.
+% \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
+%
+% \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|).
+% 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
+%
+% \section{Usage}
+%
+% \indent Just load the package placing
+% \begin{quote}
+% |\usepackage[<|\textit{options}|>]{regstats}|
+% \end{quote}
+% \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.\\
+%
+% \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}}
+% \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}}
+% \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.
+% 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
+% to compile the document, the \texttt{timer}(-option) does not work.
+%
+% \section{Alternatives\label{sec:Alternatives}}
+%
+% \begin{description}
+% \item[-] \xpackage{regcount}, 1999/08/03, v1.0, by \textsc{Jean-Pierre F. Drucbert},
+% 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}.
+%
+% \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.)
+% \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.)
+%
+% \newpage
+%
+% \section{Example}
+%
+% \begin{macrocode}
+%<*example>
+%% When compiling with lua(la)tex (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
+}
+\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
+
+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
+
+For more details please see the documentation!\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
+
+For the resulting message, please compile regstats-example.tex and
+have a look at the end of the log-file.
+
+Because the compilation time for this example is usually quite short,
+option \texttt{timer} is not demonstrated very spectacular.
+
+\end{document}
+%</example>
+% \end{macrocode}
+%
+% \StopEventually{}
+%
+% \newpage
+%
+% \section{The implementation}
+%
+% We start off by checking that we are loading into \LaTeXe\ and
+% announcing the name and version of this package.
+%
+% \begin{macrocode}
+%<*package>
+% \end{macrocode}
+%
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+\ProvidesPackage{regstats}[2012/01/07 v1.0h
+ Counting used registers (HMM)]
+
+% \end{macrocode}
+%
+% A short description of the \xpackage{regstats} package:
+%
+% \begin{macrocode}
+%% 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.
+
+% \end{macrocode}
+%
+% We need the \xpackage{kvoptions}, \xpackage{atveryend}, and
+% \xpackage{ltxcmds} packages by \textsc{Heiko Oberdiek}:
+%
+% \begin{macrocode}
+\RequirePackage{kvoptions}[2010/12/23]% v3.10
+\RequirePackage{atveryend}[2011/06/30]% v1.8
+\RequirePackage{ltxcmds}[2011/04/18]% v1.20
+
+% \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{timer}
+
+\ProcessKeyvalOptions*
+
+\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%
+ }
+\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%
+ }
+\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.\\
+%
+% \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
+\fi
+
+\newcommand{\regst@ts@timer}{%
+ \message{^^J}
+ \ifluatex
+ \@tempcnta=%
+ \directlua{
+ if starttime then
+ tex.sprint((os.clock()-starttime)*65536)
+ else
+ tex.sprint(0)
+ end
+ }\relax
+ \ifnum \the\@tempcnta = 0
+ \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
+% \end{macrocode}
+%
+% \pagebreak
+%
+% \begin{macrocode}
+ \message{Time elapsed for the last compiler run:^^J%
+ about \the\@tempcnta:\regstatsseconds \space%
+ (m:ss; \regstatselapsedtime /65536 s).^^J}
+ \fi
+ }
+
+\ifregstats@timer
+\else
+\renewcommand{\regst@ts@timer}{\relax}
+\fi
+
+\let\regst@ts@statistics\AtVeryVeryEnd%
+
+% \end{macrocode}
+%
+% \LaTeXe{} 2011/06/27 changed the |\enddocument| command and thus
+% broke the \xpackage{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.
+%
+% \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
+% \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.)
+%
+% \begin{macrocode}
+}
+
+\AtBeginDocument{%
+ \AtEndDocument{%
+ \BeforeClearDocument{%
+ \AfterLastShipout{%
+ \AtVeryEndDocument{%
+ \AtEndAfterFileList{%
+% \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|).
+%
+% \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
+ }%
+ }%
+% \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!)\\
+%
+% \begin{macrocode}
+ \regst@ts@statistics{%
+% \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).
+%
+% \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.%
+ }
+ }
+% \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.
+%
+% \begin{macrocode}
+ \def\regstats@lft{}%
+ \newcommand{\regstats@regstat}[5]{%
+% \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).
+%
+% \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
+% \end{macrocode}
+%
+% | \else| |\regstats@lft| will stay |\empty|.
+%
+% \begin{macrocode}
+ \fi
+ }
+% \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.
+%
+% \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
+% \end{macrocode}
+%
+% When there was a discrepancy somewhere, we give the according message.
+%
+% \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
+% \end{macrocode}
+%
+% \pagebreak
+%
+% Without option |proof|, we just take the values of the various |count|s.
+%
+% \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
+% \end{macrocode}
+%
+% |insert|s are used starting with a high number and moving downward.
+%
+% \begin{macrocode}
+ \@tempcnta = 233 \relax
+ \advance\@tempcnta by -\regstats@insert%
+ \advance\@tempcnta by +1%
+ \edef\regstats@insert{\the\@tempcnta}
+% \end{macrocode}
+%
+% \newpage
+% \begin{landscape}
+%
+% The number of used registers of each type and the number of available ones
+% (estimated, probably dependent on distribution and its version, here just
+% distinguished according to availability of \eTeX{}) is written
+% to screen and \xfile{log} file. (Additional spaces are just for increased ease
+% of readability of the code and will appear neither at the scree output nor
+% in the \xfile{log}~file.)
+%
+% \begin{macrocode}
+ \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}
+% \end{macrocode}
+%
+% \pagebreak
+% \end{landscape}
+%
+% When option |timer| (or |timer=true|) was used, the \xpackage{regstats} package
+% additionally gives the time, which was needed for the (last) compilation (run).
+% When more than one compilation run is necessary to compile the document,
+% the individual times have to be added up manually.
+% If~|\pdfelapsedtime| was reset by another package, the result is not correct,
+% of course, but unfortunately it is not possible to check for this. You could say
+% |\def\pdfresettimer{\relax}| immediately after |\documentclass[...]{...}|
+% to prevent this. Better use\\
+% |\long\def\pdfresettimer{%|\\
+% \ |\PackageError{regstats}{\string\pdfresettimer\space used}}|\\
+% to be notified thereof. This redefinition could be implemented in this
+% \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.\\
+%
+% |\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
+% compile the document, the timer(-option) does not work.
+%
+% \begin{macrocode}
+ \regst@ts@timer
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}
+
+% \end{macrocode}
+%
+% \begin{macrocode}
+%</package>
+% \end{macrocode}
+%
+% \newpage
+%
+% \section{Installation}
+%
+% \subsection{Downloads\label{ss:Downloads}}
+%
+% Everything is available at \CTAN{}, \url{http://www.ctan.org/tex-archive/},
+% but may need additional packages themselves.\\
+%
+% \DescribeMacro{regstats.dtx}
+% 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[-] document class \xpackage{ltxdoc}, 2007/11/11, v2.0u,\\
+% \CTAN{macros/latex/base/ltxdoc.dtx}
+%
+% \item[-] package \xpackage{pdflscape}, 2008/08/11, v0.10,
+% \url{http://ctan.org/pkg/pdflscape}
+%
+% \item[-] package \xpackage{holtxdoc}, 2011/02/04, v0.21,
+% \url{http://ctan.org/pkg/holtxdoc}
+%
+% \item[-] package \xpackage{hypdoc}, 2010/03/26, v1.9,
+% \url{http://ctan.org/pkg/hypdoc}
+% \end{description}
+%
+% \DescribeMacro{regstats.sty}
+% The \texttt{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[-] 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}
+% \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}
+% \end{description}
+% are 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:
+% \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?)
+% \end{description}
+%
+% \DescribeMacro{Alternative}
+% 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}
+% \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}.\\
+% 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
+%
+% \DescribeMacro{hyperref}
+% \noindent \xpackage{hyperref} is not included in that bundle and needs to be
+% downloaded separately,\\
+% \url{http://mirror.ctan.org/install/macros/latex/contrib/hyperref.tds.zip}.\\
+%
+% \DescribeMacro{M\"{u}nch}
+% A hyperlinked list of my (other) packages can be found at
+% \url{http://www.Uni-Bonn.de/~uzs5pv/LaTeX.html}.\\
+%
+% \subsection{Package, unpacking TDS}
+%
+% \paragraph{Package.} This package is available on \CTAN{}
+% \begin{description}
+% \item[\CTAN{macros/latex/contrib/regstats/regstats.dtx}]\hspace*{0.1cm} \\
+% The source file.
+% \item[\CTAN{macros/latex/contrib/regstats/regstats.pdf}]\hspace*{0.1cm} \\
+% 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} \\
+% A \xfile{log} file for the example.
+% \item[\CTAN{macros/latex/contrib/regstats/README}]\hspace*{0.1cm} \\
+% The README file.
+% \end{description}
+% 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.
+% \end{description}
+% which additionally contains\\
+% \begin{tabular}{ll}
+% regstats.ins & The installation file.\\
+% regstats.drv & The driver to generate the documentation.\\
+% regstats.sty & The \xext{sty}le file.\\
+% regstats-example.tex & The example file.\\
+% regstats-example.log & A \xfile{log} file for the example.
+% \end{tabular}
+%
+% \bigskip
+%
+% \noindent For required other packages, 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{}:
+% \begin{quote}
+% \verb|tex regstats.dtx|
+% \end{quote}
+%
+% About generating the documentation see paragraph~\ref{GenDoc} below.\\
+%
+% \paragraph{TDS.} Now the different files must be moved into
+% the different directories in your installation TDS tree
+% (also known as \xfile{texmf} tree):
+% \begin{quote}
+% \def\t{^^A
+% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
+% regstats.sty & tex/latex/regstats/regstats.sty\\
+% regstats.pdf & doc/latex/regstats/regstats.pdf\\
+% regstats-example.tex & doc/latex/regstats/regstats-example.tex\\
+% regstats-example.pdf & doc/latex/regstats/regstats-example.pdf\\
+% regstats-example.log & doc/latex/regstats/regstats-example.log\\
+% regstats.dtx & source/latex/regstats/regstats.dtx\\
+% \end{tabular}^^A
+% }^^A
+% \sbox0{\t}^^A
+% \ifdim\wd0>\linewidth
+% \begingroup
+% \advance\linewidth by\leftmargin
+% \advance\linewidth by\rightmargin
+% \edef\x{\endgroup
+% \def\noexpand\lw{\the\linewidth}^^A
+% }\x
+% \def\lwbox{^^A
+% \leavevmode
+% \hbox to \linewidth{^^A
+% \kern-\leftmargin\relax
+% \hss
+% \usebox0
+% \hss
+% \kern-\rightmargin\relax
+% }^^A
+% }^^A
+% \ifdim\wd0>\lw
+% \sbox0{\small\t}^^A
+% \ifdim\wd0>\linewidth
+% \ifdim\wd0>\lw
+% \sbox0{\footnotesize\t}^^A
+% \ifdim\wd0>\linewidth
+% \ifdim\wd0>\lw
+% \sbox0{\scriptsize\t}^^A
+% \ifdim\wd0>\linewidth
+% \ifdim\wd0>\lw
+% \sbox0{\tiny\t}^^A
+% \ifdim\wd0>\linewidth
+% \lwbox
+% \else
+% \usebox0
+% \fi
+% \else
+% \lwbox
+% \fi
+% \else
+% \usebox0
+% \fi
+% \else
+% \lwbox
+% \fi
+% \else
+% \usebox0
+% \fi
+% \else
+% \lwbox
+% \fi
+% \else
+% \usebox0
+% \fi
+% \else
+% \lwbox
+% \fi
+% \else
+% \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
+% 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|.
+%
+% \subsection{Some details for the interested}
+%
+% \paragraph{Unpacking with \LaTeX{}.}
+% The \xfile{.dtx} chooses its action depending on the format:
+% \begin{description}
+% \item[\plainTeX:] Run \docstrip{} and extract the files.
+% \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
+% about your intention:
+% \begin{quote}
+% \verb|latex \let\install=y\input{regstats.dtx}|
+% \end{quote}
+% Do not forget to quote the argument according to the demands
+% of your shell.
+%
+% \paragraph{Generating the documentation.\label{GenDoc}}
+% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
+% the documentation. The process can be configured by a
+% configuration file \xfile{ltxdoc.cfg}. For instance, put the following
+% line into this file, if you want to have A4 as paper format:
+% \begin{quote}
+% \verb|\PassOptionsToClass{a4paper}{article}|
+% \end{quote}
+%
+% \noindent An example follows how to generate the
+% documentation with \pdfLaTeX{}:
+%
+% \begin{quote}
+%\begin{verbatim}
+%pdflatex regstats.dtx
+%makeindex -s gind.ist regstats.idx
+%pdflatex regstats.dtx
+%makeindex -s gind.ist regstats.idx
+%pdflatex regstats.dtx
+%\end{verbatim}
+% \end{quote}
+%
+% \subsection{Compiling the example}
+%
+% The example file, \textsf{regstats-example.tex}, can be compiled via\\
+% |(pdf)(la)tex regstats-example.tex|\\
+% or (after removing the |%% | before |\directlua{starttime = os.clock()}|
+% in the line before |\documentclass|\ldots) via\\
+% |lua(la)tex regstats-example.tex|.\\
+%
+% \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
+%
+% \phantomsection
+% \begin{History}\label{History}
+% \begin{Version}{2011/05/14 v1.0a}
+% \item Upload to \CTAN{}.
+% \end{Version}
+% \begin{Version}{2011/05/16 v1.0b}
+% \item Name clash with \xfile{regcount} package, fixed.
+% \item \xfile{regcount} package listed as possible alternative.
+% \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.
+% \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 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.
+% \end{Version}
+% \begin{Version}{2011/08/23 v1.0f}
+% \item The \xpackage{atveryend} package was fixed (2011/06/30, v.1.8).
+% Now \xpackage{regstats} differentiates according to \TeX{} format
+% and \xpackage{atveryend} package version. 2011/06/30, v.1.8
+% should become available at CTAN soon. \xpackage{regstats} also
+% 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.
+% \end{Version}
+% \begin{Version}{2012/01/01 v1.0g}
+% \item Now supports (but does not require) |lua(la)tex| 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).
+% \item Circumvention of the incompatibility of the \xpackage{atveryend}
+% package with \xclass{seminar} class and \xpackage{slidesec} package
+% introduced.
+% \item Quite some additional changes in the \xfile{dtx} and README files.
+% \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|.
+% \end{Version}
+% \end{History}
+%
+% \bigskip
+%
+% 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
+%
+% \PrintIndex
+%
+% \Finale
+\endinput \ No newline at end of file
diff --git a/macros/latex/contrib/regstats/regstats.pdf b/macros/latex/contrib/regstats/regstats.pdf
new file mode 100644
index 0000000000..2cfc3203f1
--- /dev/null
+++ b/macros/latex/contrib/regstats/regstats.pdf
Binary files differ