From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/regstats/README | 176 +++ macros/latex/contrib/regstats/regstats-example.log | 327 +++++ macros/latex/contrib/regstats/regstats-example.pdf | Bin 0 -> 66974 bytes macros/latex/contrib/regstats/regstats.dtx | 1353 ++++++++++++++++++++ macros/latex/contrib/regstats/regstats.pdf | Bin 0 -> 327688 bytes 5 files changed, 1856 insertions(+) create mode 100644 macros/latex/contrib/regstats/README create mode 100644 macros/latex/contrib/regstats/regstats-example.log create mode 100644 macros/latex/contrib/regstats/regstats-example.pdf create mode 100644 macros/latex/contrib/regstats/regstats.dtx create mode 100644 macros/latex/contrib/regstats/regstats.pdf (limited to 'macros/latex/contrib/regstats') 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 + + + +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 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 + +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 Binary files /dev/null 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 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 +% +% 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 +% +%<*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 + +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 +% +%<*ignore> +\fi +% +% +% \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} +% +% \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} +% +% \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} +% +% \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 Binary files /dev/null and b/macros/latex/contrib/regstats/regstats.pdf differ -- cgit v1.2.3