summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/regstats/regstats.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-08-24 00:05:47 +0000
committerKarl Berry <karl@freefriends.org>2011-08-24 00:05:47 +0000
commitbe52161d176ec8b83077d89810997f588fa7e62e (patch)
tree770bd5d505dfea2672a27a55633e6c6f508c868e /Master/texmf-dist/source/latex/regstats/regstats.dtx
parent3d1639d263d3315ae55d789b527ff12499ed8549 (diff)
regstats (23aug11)
git-svn-id: svn://tug.org/texlive/trunk@23662 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/regstats/regstats.dtx')
-rw-r--r--Master/texmf-dist/source/latex/regstats/regstats.dtx528
1 files changed, 309 insertions, 219 deletions
diff --git a/Master/texmf-dist/source/latex/regstats/regstats.dtx b/Master/texmf-dist/source/latex/regstats/regstats.dtx
index b05dcda2c73..bef7805d12d 100644
--- a/Master/texmf-dist/source/latex/regstats/regstats.dtx
+++ b/Master/texmf-dist/source/latex/regstats/regstats.dtx
@@ -1,7 +1,7 @@
% \iffalse meta-comment
%
% File: regstats.dtx
-% Version: 2011/06/18 v1.0d
+% Version: 2011/08/23 v1.0f
%
% Copyright (C) 2011 by
% H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de>
@@ -80,7 +80,7 @@
\input docstrip.tex
\Msg{******************************************************************}
\Msg{* Installation}
-\Msg{* Package: regstats 2011/06/18 v1.0d Counting used registers (HMM)}
+\Msg{* Package: regstats 2011/08/23 v1.0f Counting used registers (HMM)}
\Msg{******************************************************************}
\keepsilent
@@ -92,7 +92,7 @@
This is a generated file.
Project: regstats
-Version: 2011/06/18 v1.0d
+Version: 2011/08/23 v1.0f
Copyright (C) 2011 by
H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de>
@@ -174,9 +174,9 @@ and the derived files
%
% \begin{macrocode}
%<*driver>
-\NeedsTeXFormat{LaTeX2e}[2009/09/24]
+\NeedsTeXFormat{LaTeX2e}[2011/06/24]%
\ProvidesFile{regstats.drv}%
- [2011/06/18 v1.0d Counting used registers (HMM)]%
+ [2011/08/23 v1.0f 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
@@ -213,7 +213,7 @@ and the derived files
%
% \fi
%
-% \CheckSum{511}
+% \CheckSum{541}
%
% \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
@@ -263,7 +263,7 @@ and the derived files
% \DoNotIndex{\value,\setcounter,\addtocounter,\arabic,\csname,\endscname}
%
% \title{The \xpackage{regstats} package}
-% \date{2011/06/18 v1.0d}
+% \date{2011/08/23 v1.0f}
% \author{H.-Martin M\"{u}nch\\\xemail{Martin.Muench at Uni-Bonn.de}}
%
% \maketitle
@@ -273,7 +273,7 @@ and the derived files
% (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 anounced.
+% The time needed for a compilation run can be announced.
% \end{abstract}
%
% \bigskip
@@ -384,8 +384,9 @@ and the derived files
\documentclass[british]{article}[2007/10/19]% v1.4h
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% \usepackage{etex}[1998/03/26]% v2.0
-%% Uncomment the preceding line, if you want to use eTeX.
-\usepackage{hyperref}[2011/04/17]% v6.82g
+%% Uncomment the preceding line, if you want to use the eTeX-package
+%% (which requires eTeX, of course).
+\usepackage{hyperref}[2011/08/19]% v6.82h
\hypersetup{extension=pdf,%
plainpages=false,%
pdfpagelabels=true,%
@@ -399,7 +400,7 @@ and the derived files
pdfview=Fit,pdfstartview=Fit,%
pdfpagelayout=SinglePage%
}
-\usepackage[proof=false,left=true,timer=true]{regstats}[2011/06/18]% v1.0d
+\usepackage[proof=false,left=true,timer=true]{regstats}[2011/08/23]% v1.0f
\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}%
\listfiles
\begin{document}
@@ -407,7 +408,7 @@ and the derived files
\section*{Example for regstats}
This example demonstrates the use of package\newline
-\textsf{regstats}, v1.0d as of 2011/06/18 (HMM).\newline
+\textsf{regstats}, v1.0f as of 2011/08/23 (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}
@@ -450,8 +451,8 @@ option \texttt{timer} is not demonstrated very spectacular.
% \end{macrocode}
%
% \begin{macrocode}
-\NeedsTeXFormat{LaTeX2e}[2009/09/24]
-\ProvidesPackage{regstats}[2011/06/18 v1.0d
+\NeedsTeXFormat{LaTeX2e}[2011/06/27]
+\ProvidesPackage{regstats}[2011/08/23 v1.0f
Counting used registers (HMM)]
% \end{macrocode}
@@ -471,7 +472,7 @@ option \texttt{timer} is not demonstrated very spectacular.
%
% \begin{macrocode}
\RequirePackage{kvoptions}[2010/12/23]% v3.10
-\RequirePackage{atveryend}[2011/04/23]% v1.7
+\RequirePackage{atveryend}[2011/06/30]% v1.8
% \end{macrocode}
%
@@ -527,12 +528,58 @@ option \texttt{timer} is not demonstrated very spectacular.
% \end{macrocode}
%
-% We try to determine, whether \eTeX\ is available in the
-% \LaTeX\ distribution used to compile the document
+% \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. Therefore we\\
+% |\let\AtVeryVeryEnd\AtEndAfterFileList| and give an error message.
+% It is no problem at all for the \xpackage{regstats} package,
+% but other packages might really need |\AtVeryVeryEnd|,
+% and the user might lose code and never get to know it
+% (and just run into problems of unknown origin).\\
+% |\@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 2009/09/24.
+%
+% \begin{macrocode}
+\@ifl@t@r\fmtversion{2011/06/27}%
+ {\@ifpackagelater{atveryend}{2011/06/29}%
+ {% 2011/06/30, v1.8, or even more recent
+ }{% older version
+ \PackageError{regstats}{Outdated atveryend package}%
+ {You use \fmtname \space <\fmtversion>, but only \MessageBreak%
+ `\csname ver@atveryend.\@currext\endcsname',\MessageBreak%
+ which is incompatibel with \fmtname \space <\fmtversion>.\MessageBreak%
+ Please update your atveryend package!\MessageBreak%
+ The regstats package now replaces \string\AtVeryVeryEnd \MessageBreak%
+ by \string\AtEndAfterFileList.\MessageBreak%
+ }%
+ \let\AtVeryVeryEnd\AtEndAfterFileList%
+ }%
+ }{%
+% \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}
+ }
+
+% \end{macrocode}
+%
+% We try to determine, whether $\varepsilon$-\TeX{} is available in the
+% \LaTeX{} distribution used to compile the document
% and really loaded by the user. Because it is possible to
% load packages |\AtBeginDocument|, but |\@ifpackageloaded|
% cannot be used after |\AtBeginDocument|, we check for
-% \eTeX\ |\AtBeginDocument| (and herewith ask the user
+% $\varepsilon$-\TeX{} |\AtBeginDocument| (and herewith ask the user
% to please load \xpackage{regstats} as very last package,
% at least after the \xpackage{etex} package):
%
@@ -557,7 +604,6 @@ option \texttt{timer} is not demonstrated very spectacular.
but should give according messages.\MessageBreak%
}
\fi
- }
% \end{macrocode}
%
@@ -568,48 +614,53 @@ option \texttt{timer} is not demonstrated very spectacular.
% the number of remaining registers of that type.
%
% \begin{macrocode}
-\AtVeryEndDocument{%
- \AtVeryVeryEnd{%
- \def\regstats@lft{}%
- \newcommand{\regstats@regstat}[5]{%
+ \AtEndDocument{%
+ \BeforeClearDocument{%
+ \AfterLastShipout{%
+ \AtVeryEndDocument{%
+ \AtEndAfterFileList{%
+ \AtVeryVeryEnd{%
+ \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 availabe registers with \eTeX\ (in this order).
+% singular ending, plural ending, number of available registers without
+% $\varepsilon$-\TeX{}, number of availabe registers with $\varepsilon$-\TeX{}
+% (in this order).
%
% \begin{macrocode}
- \setcounter{regstatscount}{#1}
- \ifnum \value{regstatscount}=0
- \setcounter{regstatscount}{2}
- \fi
- \ifnum \value{regstatscount}>1
- \gdef\regstats@pl{#3}
- \else
- \gdef\regstats@pl{#2}
- \fi
- \ifetex\edef\regstats@max{#5}\else\edef\regstats@max{#4}\fi
- \ifregstats@left
- \setcounter{regstatscount}{\regstats@max}
- \addtocounter{regstatscount}{-#1}
- \ifnum \value{regstatscount}>0
- \edef\regstats@lft{, left: \arabic{regstatscount}}
+ \setcounter{regstatscount}{#1}
+ \ifnum \value{regstatscount}=0
+ \setcounter{regstatscount}{2}
+ \fi
+ \ifnum \value{regstatscount}>1
+ \gdef\regstats@pl{#3}
\else
- \ifnum \value{regstatscount}=0
- \edef\regstats@lft{, left: \arabic{regstatscount} !!!}
- \else% \value{regstatscount}<0
- \edef\regstats@lft{, left: \arabic{regstatscount} **********}
- \fi
+ \gdef\regstats@pl{#2}
\fi
+ \ifetex\edef\regstats@max{#5}\else\edef\regstats@max{#4}\fi
+ \ifregstats@left
+ \setcounter{regstatscount}{\regstats@max}
+ \addtocounter{regstatscount}{-#1}
+ \ifnum \value{regstatscount}>0
+ \edef\regstats@lft{, left: \arabic{regstatscount}}
+ \else
+ \ifnum \value{regstatscount}=0
+ \edef\regstats@lft{, left: \arabic{regstatscount} !!!}
+ \else% \value{regstatscount}<0
+ \edef\regstats@lft{, left: \arabic{regstatscount} **********}
+ \fi
+ \fi
% \end{macrocode}
%
% | \else| |\regstats@lft| will stay |\empty|.
%
% \begin{macrocode}
- \fi
- }
- \newcounter{regstatscount}
- \edef\regstats@counter{\the\allocationnumber}
+ \fi
+ }
+ \newcounter{regstatscount}
+ \edef\regstats@counter{\the\allocationnumber}
% \end{macrocode}
%
% When option |proof| was chosen, a new register of the named types is used
@@ -617,127 +668,136 @@ option \texttt{timer} is not demonstrated very spectacular.
% 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!%
- }%
- \def\regstats@proof{1}
- \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
+ \ifregstats@proof
+ \PackageWarning{regstats}{%
+ Package regstats loaded with option 'proof'.\MessageBreak%
+ This package itself will now use\MessageBreak%
+ one of each register for testing!%
+ }%
+ \def\regstats@proof{1}
+ \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
+ \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@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
+ \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}
- \setcounter{regstatscount}{233}
- \addtocounter{regstatscount}{-\regstats@insert}
- \addtocounter{regstatscount}{+1}
- \edef\regstats@insert{\arabic{regstatscount}}
+ \setcounter{regstatscount}{233}
+ \addtocounter{regstatscount}{-\regstats@insert}
+ \addtocounter{regstatscount}{+1}
+ \edef\regstats@insert{\arabic{regstatscount}}
% \end{macrocode}
%
% \newpage
@@ -745,44 +805,46 @@ option \texttt{timer} is not demonstrated very spectacular.
%
% 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
+% distinguished according to availability of $\varepsilon$-\TeX{}) 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}
+ \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 compilation.
+% additionally gives the time, which was needed for the (last) compilation (run).
+% When more than one compilation run are 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[...]{...}|
@@ -792,32 +854,39 @@ option \texttt{timer} is not demonstrated very spectacular.
% 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 immediately before |\begin{document}|, this would mean
+% 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.
%
% \begin{macrocode}
- \ifregstats@timer
- \message{^^J}
- \setcounter{regstatscount}{\the\pdfelapsedtime}
- \edef\regstatselapsedtime{\arabic{regstatscount}}
- \divide \value{regstatscount} by 65536% scaledseconds -> seconds
- \edef\regstatsseconds{\arabic{regstatscount}}
- \ifnum \value{regstatscount} > 59
- \edef\regstatsseconds{\intcalcMod{\value{regstatscount}}{60}}
- \divide \value{regstatscount} by 60% seconds -> minutes
- \else
- \setcounter{regstatscount}{0}% minutes = 0
- \fi
- \ifnum \regstatsseconds < 10
- \message{Time elapsed: about \arabic{regstatscount}:0\regstatsseconds%
- \space (m:ss; \regstatselapsedtime /65536 s).^^J}
- \else
- \message{Time elapsed: about \arabic{regstatscount}:\regstatsseconds %
- \space (m:ss; \regstatselapsedtime /65536 s).^^J}
+ \ifregstats@timer
+ \message{^^J}
+ \setcounter{regstatscount}{\the\pdfelapsedtime}
+ \edef\regstatselapsedtime{\arabic{regstatscount}}
+ \divide \value{regstatscount} by 65536% scaledseconds -> seconds
+ \edef\regstatsseconds{\arabic{regstatscount}}
+ \ifnum \value{regstatscount} > 59
+ \edef\regstatsseconds{\intcalcMod{\value{regstatscount}}{60}}
+ \divide \value{regstatscount} by 60% seconds -> minutes
+ \else
+ \setcounter{regstatscount}{0}% minutes = 0
+ \fi
+ \ifnum \regstatsseconds < 10
+ \message{Time elapsed for the last compiler run:^^J%
+ about \arabic{regstatscount}:0\regstatsseconds\space%
+ (m:ss; \regstatselapsedtime /65536 s).^^J}
+ \else
+ \message{Time elapsed for the last compiler run:^^J%
+ about \arabic{regstatscount}:\regstatsseconds \space%
+ (m:ss; \regstatselapsedtime /65536 s).^^J}
+ \fi
\fi
- \fi
- }
- }
+ }%
+ }%
+ }%
+ }%
+ }%
+ }%
+}
% \end{macrocode}
%
@@ -833,18 +902,18 @@ option \texttt{timer} is not demonstrated very spectacular.
%
% \subsection{Downloads\label{ss:Downloads}}
%
-% Everything is available at \CTAN{}, \url{http://www.ctan.org/tex-archive/},
+% Everything will become 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[-] \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 \textsf{pdflscape}, 2008/08/11, v0.10,\\
+% \item[-] package \xpackage{pdflscape}, 2008/08/11, v0.10,\\
% \CTAN{macros/latex/contrib/oberdiek/pdflscape.dtx}
%
% \item[-] package \xpackage{holtxdoc}, 2011/02/04, v0.21,\\
@@ -855,14 +924,15 @@ option \texttt{timer} is not demonstrated very spectacular.
% \end{description}
%
% \DescribeMacro{regstats.sty}
-% The \texttt{regstats.sty} for \LaTeXe\ (i.\,e. all documents using
+% 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[-] \TeX Format \LaTeXe{}, \url{http://www.CTAN.org/}
%
% \item[-] package \xpackage{kvoptions}, 2010/12/23, v3.10,\\
% \CTAN{macros/latex/contrib/oberdiek/kvoptions.dtx}
-% \item[-] package \xpackage{atveryend}, 2011/04/23, v1.7,\\
+%
+% \item[-] package \xpackage{atveryend}, 2011/06/30, v1.8,\\
% \CTAN{macros/latex/contrib/oberdiek/atveryend.dtx}
% \end{description}
%
@@ -881,7 +951,7 @@ option \texttt{timer} is not demonstrated very spectacular.
% \item[-] class \xpackage{article}, 2007/10/19, v1.4h, from \xpackage{classes.dtx}:\\
% \CTAN{macros/latex/base/classes.dtx}
%
-% \item[-] package \xpackage{regstats}, 2011/06/18, v1.0d,\\
+% \item[-] package \xpackage{regstats}, 2011/08/23, v1.0f,\\
% \CTAN{macros/latex/contrib/regstats/regstats.dtx}\\
% (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
@@ -1085,9 +1155,9 @@ option \texttt{timer} is not demonstrated very spectacular.
% \section{Acknowledgements}
%
% I would like to thank \textsc{Heiko Oberdiek} for providing
-% the \xpackage{hyperref} 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),
+% the \xpackage{hyperref} and \xpackage{atveryend} 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}
@@ -1110,8 +1180,8 @@ option \texttt{timer} is not demonstrated very spectacular.
% \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 Bug Fix: Number of available |\skip| registers with $\varepsilon$-\TeX{}.
+% \item Change in $\varepsilon$-\TeX{}-detection.
% \item New option |left|.
% \item Minor details.
% \end{Version}
@@ -1120,6 +1190,26 @@ option \texttt{timer} is not demonstrated very spectacular.
% \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
+% will 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 obviouse in the \xfile{log}-file.
+% \item New \xpackage{hyperref} package used for the documentation.
+% \end{Version}
% \end{History}
%
% \bigskip
@@ -1127,7 +1217,7 @@ option \texttt{timer} is not demonstrated very spectacular.
% When you find a mistake or have a suggestion for an improvement of this package,
% please send an e-mail to the maintainer, thanks! (Please see BUG REPORTS in the README.)
%
-% \pagebreak
+% \bigskip
%
% \PrintIndex
%