summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2013-05-11 22:52:26 +0000
committerKarl Berry <karl@freefriends.org>2013-05-11 22:52:26 +0000
commitb99aff7fb5a21795eb841a12a8fc470e804fa9a6 (patch)
tree84e5fcbeefe5a62ce5a01b6da1b72c593735d861 /Master/texmf-dist/source/latex
parent24c628b30e23e7037f962faaac95678b62764b1f (diff)
caption (11may13)
git-svn-id: svn://tug.org/texlive/trunk@30407 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r--Master/texmf-dist/source/latex/caption/bicaption.dtx41
-rw-r--r--Master/texmf-dist/source/latex/caption/caption.dtx220
-rw-r--r--Master/texmf-dist/source/latex/caption/caption3.dtx193
-rw-r--r--Master/texmf-dist/source/latex/caption/newfloat.dtx246
-rw-r--r--Master/texmf-dist/source/latex/caption/subcaption.dtx13
-rw-r--r--Master/texmf-dist/source/latex/caption/totalcount.dtx190
6 files changed, 621 insertions, 282 deletions
diff --git a/Master/texmf-dist/source/latex/caption/bicaption.dtx b/Master/texmf-dist/source/latex/caption/bicaption.dtx
index b68cec1aa87..90b7184f13a 100644
--- a/Master/texmf-dist/source/latex/caption/bicaption.dtx
+++ b/Master/texmf-dist/source/latex/caption/bicaption.dtx
@@ -2,7 +2,7 @@
%
% This is file `bicaption.dtx'.
%
-% $Id: bicaption.dtx 68 2013-03-10 09:31:58Z sommerfeldt $
+% $Id: bicaption.dtx 89 2013-05-02 07:05:20Z sommerfeldt $
% $HeadURL: svn+ssh://sommerfeldt@svn.code.sf.net/p/latex-caption/code/trunk/source/bicaption.dtx $
%
% Copyright (C) 2010-2013 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
@@ -28,7 +28,7 @@
% and the user manuals caption-deu.tex, caption-eng.tex, and caption-rus.tex.
%
% \fi
-% \CheckSum{398}
+% \CheckSum{387}
%
% \iffalse
%<*driver>
@@ -127,7 +127,7 @@
% This package has version number \fileversion, last revised \filedate.}}%^^A
% {The bicaption package}}
% \author{Axel Sommerfeldt\\
-% \url{http://sourceforge.net/projects/latex-caption/}}
+% \url{http://sourceforge.net/p/latex-caption/}}
% \date{\docdate}
% \maketitle
%
@@ -139,9 +139,7 @@
% \tableofcontents
%
% \clearpage
-% \section{The user interface}
-%
-% \subsection{Loading the package}
+% \section{Loading the package}
% \label{sec:loading}
%
% \DescribeMacro{\usepackage}
@@ -166,7 +164,7 @@
% \package{bicaption} package should be loaded \emph{after} it, so the main
% language will be set automatically. See \autoref{sec:babel} for details.
%
-% \subsection{Setting options}
+% \section{Setting options}
% \label{sec:options}
%
% \DescribeMacro{\captionsetup}
@@ -236,7 +234,7 @@
% Please note that the environment name has to be specified as first optional argument
% while the bilingual selection as second one.
%
-% \subsection{Additional options}
+% \section{Additional options}
% \label{sec:additional-options}
%
% These options are available additional to the ones offered by the
@@ -277,7 +275,7 @@
% making the first language the second one and vice versa. (The default is |false|.)
% \end{Options}
%
-% \subsection{The \cs{bicaption} commands}
+% \section{The \cs{bicaption} commands}
% \label{sec:bicaption}
%
% \DescribeMacro\bicaption
@@ -340,7 +338,7 @@
% \endgroup
%
% \PageBreak
-% \subsection{A sample document}
+% \section{A sample document}
% \label{sec:example}
%
% \begin{quote}
@@ -538,7 +536,7 @@
% \end{figure}
%
% \PageBreak
-% \subsection{Customising lists}
+% \section{Customising lists}
% \label{sec:lists}
%
% \DescribeMacro{list=}
@@ -654,7 +652,7 @@
% |\end{document}|
% \end{quote}
%
-% \subsection{Language Selection}
+% \section{Language Selection}
% \label{sec:babel}
%
% For language selection \thispackage\ uses two macros internally:
@@ -799,7 +797,7 @@
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\def\caption@tempa$Id: #1 #2 #3-#4-#5 #6${%
\def\caption@tempa{#3/#4/#5 }\def\caption@tempb{#2 }}
-\caption@tempa $Id: bicaption.dtx 68 2013-03-10 09:31:58Z sommerfeldt $
+\caption@tempa $Id: bicaption.dtx 89 2013-05-02 07:05:20Z sommerfeldt $
\ProvidesPackage{bicaption}[\caption@tempa v1.1-\caption@tempb Bilingual Captions (AR)]
% \end{macrocode}
% \begin{macrocode}
@@ -1238,22 +1236,7 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\bicaption@listof}
-% \changes{v1.0a}{2011/10/30}{Adapted to the newfloat package}
-% Make commands like |\listoffigure2s| work.
-% (Is this a good idea or not!?)
-% \begin{macrocode}
-\newcommand*\bicaption@declarelist[1]{%
- \@namedef{listof#1}{\bicaption@listof#1}}
-\@onlypreamble\bicaption@declarelist
-% \end{macrocode}
-% \begin{macrocode}
-\def\bicaption@listof#1 {\@nameuse{listof#1}}
-% \end{macrocode}
-% \begin{macrocode}
-\caption@ForEachType{\bicaption@declarelist{#1}}
-% \end{macrocode}
-% \end{macro}
+% \changes{v1.1}{2013/05/02}{Definition of \cs{bicaption@listof} removed}
%
% \begin{thebibliography}{9}
% \bibitem{TLC2}
diff --git a/Master/texmf-dist/source/latex/caption/caption.dtx b/Master/texmf-dist/source/latex/caption/caption.dtx
index 64991dcd6fa..36d35e39f2e 100644
--- a/Master/texmf-dist/source/latex/caption/caption.dtx
+++ b/Master/texmf-dist/source/latex/caption/caption.dtx
@@ -2,7 +2,7 @@
%
% This is file `caption.dtx'.
%
-% $Id: caption.dtx 73 2013-04-14 19:40:46Z sommerfeldt $
+% $Id: caption.dtx 89 2013-05-02 07:05:20Z sommerfeldt $
% $HeadURL: svn+ssh://sommerfeldt@svn.code.sf.net/p/latex-caption/code/trunk/source/caption.dtx $
%
% Copyright (C) 1994-2013 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
@@ -28,7 +28,7 @@
% and the user manuals caption-deu.tex, caption-eng.tex, and caption-rus.tex.
%
% \fi
-% \CheckSum{3491}
+% \CheckSum{3507}
%
% \iffalse
%<*driver>
@@ -99,7 +99,7 @@
% This package has version number \fileversion, last revised \filedate.}}%^^A
% {the caption package}}
% \author{Axel Sommerfeldt\\
-% \url{http://sourceforge.net/projects/latex-caption/}}
+% \url{http://sourceforge.net/p/latex-caption/}}
% \date{\docdate}
% \maketitle
%
@@ -223,14 +223,14 @@
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\def\caption@tempa$Id: #1 #2 #3-#4-#5 #6${%
\def\caption@tempa{#3/#4/#5 }\def\caption@tempb{#2 }}
-\caption@tempa $Id: caption.dtx 73 2013-04-14 19:40:46Z sommerfeldt $
+\caption@tempa $Id: caption.dtx 89 2013-05-02 07:05:20Z sommerfeldt $
\ProvidesPackage{caption}[\caption@tempa v3.3-\caption@tempb Customizing captions (AR)]
% \end{macrocode}
%
% \subsection{Loading the kernel}
%
% \begin{macrocode}
-\RequirePackage{caption3}[2012/12/26] % needs v1.5 or newer
+\RequirePackage{caption3}[2013/05/01] % needs v1.6 or newer
% \end{macrocode}
%
% \subsection{Check against incompatible document classes}
@@ -1512,7 +1512,19 @@
% \end{macrocode}
% \end{macro}
%
-% \subsection{\cs{captionof} and \cs{captionlistentry}}
+% \begin{macro}{\phantomcaption}
+% \changes{v3.2}{2010/10/31}{Bugfix 10-09-01b: This macro added}
+% |\phantomcaption|\par
+% Use this one for figures with subcaptions but without main caption.
+% \begin{macrocode}
+\newcommand\phantomcaption{%
+ \caption@iftype
+ {\caption@refstepcounter\@captype}%
+ {\caption@Error{\noexpand\phantomcaption outside float}}}%
+% \end{macrocode}
+% \end{macro}
+%
+% \subsection{\cs{captionof}}
%
% \changes{v3.0d}{2004/08/03}{Option \opt{type=} added}
% \changes{v3.1}{2007/06/25}{Option \opt{type*=} added}
@@ -1643,7 +1655,8 @@
% \end{macro}
%
% \begin{macro}{\caption@typehook}
-% Hook, will be extended later on, e.g.~by our \package{float} package
+% Hook which will be used inside |\caption@set|\-|type|.
+% It will be extended later on, e.g.~by our \package{float} package
% support.
% \begin{macrocode}
\newcommand*\caption@typehook{}
@@ -1663,16 +1676,12 @@
% \begin{macro}{\caption@checkgrouplevel}
% \changes{v3.1}{2007/07/15}{This macro and its usage added}
% \changes{v3.1f}{2007/11/28}{Error changed to warning (compatibility)}
+% \changes{v3.3}{2013/04/21}{Uses \cs{caption@ifeTeX} now}
% Checks if |\captionsetup{type=|\ldots|}| or |\caption| is done
% inside a group or not -- in the latter case a warning message will
% be issued. (needs \eTeX)
% \begin{macrocode}
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname currentgrouplevel\endcsname\relax
- \caption@Debug{TeX engine: TeX}
- \let\caption@checkgrouplevel\@gobbletwo
-\else
- \caption@Debug{TeX engine: e-TeX}
+\caption@ifeTeX{%
\newcommand*\caption@checkgrouplevel[2]{%
\@ifundefined{#1caption@grouplevel}{%
\caption@ifundefined\caption@grouplevel{\let\caption@grouplevel\z@}{}%
@@ -1682,8 +1691,10 @@
\else
\caption@Warning{\string#2\MessageBreak outside box or environment}%
\fi
- }{}}
-\fi
+ }{}}%
+}{%
+ \let\caption@checkgrouplevel\@gobbletwo
+}
% \end{macrocode}
% \end{macro}
%
@@ -1758,6 +1769,8 @@
% \end{macrocode}
% \end{macro}
%
+% \subsection{\cs{captionlistentry}}
+%
% \begin{macro}{\captionlistentry}
% \changes{v3.1}{2007/07/28}{This macro added}
% \changes{v3.1f}{2007/11/16}{Bugfix 07-11-09: `space hack' added}
@@ -1854,6 +1867,7 @@
% \changes{v3.1g}{2008/01/29}{Starred variant added}
% \changes{v3.2f}{2011/12/17}{Undocumented optional argument removed}
% \changes{v3.3}{2011/12/28}{Uses \cs{ifcaption@ContinuedFloat} now}
+% \changes{v3.3}{2013/05/01}{Usage of \cs{caption@restorecounters} added}
% |\ContinuedFloat|\\
% |\ContinuedFloat*|\par
% This mainly sets the appropriate flag, increments the
@@ -1889,6 +1903,7 @@
\newcommand*\caption@Continued@Float[1]{%
\edef\caption@tempa{#1}%
\ifx\caption@tempa\caption@CFtype
+ \caption@restorecounters
\caption@@ContinuedFloat{#1}%
\else
\caption@Error{Continued `#1' after `\caption@CFtype'}%
@@ -1936,15 +1951,15 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\phantomcaption}
-% \changes{v3.2}{2010/10/31}{Bugfix 10-09-01b: This macro added}
-% |\phantomcaption|\par
-% Use this one for figures with subcaptions but without main caption.
+% \begin{macro}{\donemaincaptionfalse}
+% Since the \class{memoir} document class resets the sub-caption
+% counter at |\@float|, right after |\done|\-|main|\-|caption|\-|false|,
+% we save all sub-caption counters at |\done|\-|main|\-|caption|\-|false|
+% so we can restore them using |\caption@restore|\-|counters|
+% inside |\Continued|\-|Float|.
% \begin{macrocode}
-\newcommand\phantomcaption{%
- \caption@iftype
- {\caption@refstepcounter\@captype}%
- {\caption@Error{\noexpand\phantomcaption outside float}}}%
+\caption@ifundefined\donemaincaptionfalse{}{%
+ \g@addto@macro\donemaincaptionfalse\caption@savesubcounters}
% \end{macrocode}
% \end{macro}
%
@@ -2283,6 +2298,7 @@
% \changes{v3.2c}{2011/09/30}{Bugfix 11-09-26: Usage of \cs{if@subfloatrow} added}
% \changes{v3.3}{2011/12/28}{Bugfix 11-12-16: \cs{caption@l@stepcounter} replaced by \cs{stepcounter}}
% \changes{v3.3}{2012/03/15}{Usage of \cs{caption@setbox} added}
+% \changes{v3.3}{2013/05/01}{Redefinition of \cs{caption@settype} added}
% Hook, will be used inside \cs{caption@setsubtype}.\par
% (Note: If we are inside an |sub|\-|float|\-|row| environment we have to keep
% the |\@make|\-|caption| code of the \package{floatrow} package intact.)
@@ -2312,15 +2328,30 @@
\let\caption@setfloatcapt\@firstofone
% \end{macrocode}
% \begin{macrocode}
- \caption@setbox{parbox}%
+ \caption@setbox{none}%
\caption@clearmargin
\caption@iflist{}{\let\caption@setlist\@gobble}%
\caption@setoptions{sub}%
\caption@setoptions{subfloat}% for subfig-package compatibility
% \end{macrocode}
% \begin{macrocode}
+% redefine \setcaptiontype
+ \def\caption@settype{\caption@withoptargs\caption@sub@settype}%
+ \def\caption@sub@settype##1##2{%
+ \def\caption@tempa{##2}%
+ \ifx\caption@tempa\@captype
+%%% \caption@setsubtype##1\relax
+ \else
+ \caption@Error{##2 inside \@subcaptype}%
+ \fi}%
+% \end{macrocode}
+% \begin{macrocode}
+% redefine \caption
\let\caption\caption@subcaption
\let\phantomcaption\caption@subphantom
+% \end{macrocode}
+% \begin{macrocode}
+% restore \@makecaption
\if@subfloatrow
\caption@Debug{Keeping \string\@makecaption}%
\else
@@ -2669,6 +2700,18 @@
\caption@ifneedfreeze{%
% \end{macrocode}
%
+% \begin{macro}{\caption@freezetype}
+% \changes{v3.3}{2013/05/01}{This macro added}
+% |\caption@freezetype|\marg{type}\par
+% Used by the \package{fltpage} \& \package{sidecap} package support.
+% \begin{macrocode}
+ \newcommand*\caption@freezetype[1]{%
+ \caption@settype*{#1}%
+ \captionsetup*[sub]{hypcap=true}% Note: This is just a (q&d) workaround!
+ \caption@freeze}%
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\caption@freeze}
% \changes{v3.1}{2007/07/22}{This macro added}
% \changes{v3.1c}{2007/10/06}{\cs{caption} \& \cs{@caption} revised for enhanced compatibility}
@@ -2681,67 +2724,63 @@
% \changes{v3.2b}{2011/08/18}{Redefinition of \cs{label} revised}
% \changes{v3.2c}{2011/08/21}{Revised}
% \changes{v3.3}{2013/01/06}{Adapted to new switch \cs{caption@caption} etc.}
-% |\caption@freeze|\par
-% Used by the \package{fltpage} \& \package{sidecap} package support.
-% \begin{macrocode}
- \newcommand*\caption@freeze[1]{%
- \caption@settype*{#1}%
- \captionsetup*[sub]{hypcap=true}% Note: This is just a (q&d) workaround!
-% \end{macrocode}
+% |\caption@freeze|\par
+% Used by the \package{bicaption} package.
% \begin{macrocode}
- \let\caption@frozen@ContinuedFloat\ContinuedFloat
- \def\ContinuedFloat{%
- \caption@@freeze{\caption@@@ContinuedFloat\@captype}%
- \caption@frozen@ContinuedFloat}%
+ \newcommand*\caption@freeze{%
+ \let\caption@frozen@ContinuedFloat\ContinuedFloat
+ \def\ContinuedFloat{%
+ \caption@@freeze{\caption@@@ContinuedFloat\@captype}%
+ \caption@frozen@ContinuedFloat}%
% \end{macrocode}
% \begin{macrocode}
- \let\caption@frozen@setup\caption@setup
- \def\caption@setup##1{%
- \caption@@freeze{\caption@setup{##1}}%
- \caption@frozen@setup{##1}}%
+ \let\caption@frozen@setup\caption@setup
+ \def\caption@setup##1{%
+ \caption@@freeze{\caption@setup{##1}}%
+ \caption@frozen@setup{##1}}%
% \end{macrocode}
% \begin{macrocode}
- \let\caption@frozen@caption\caption
- \def\caption{%
+ \let\caption@frozen@caption\caption
\def\caption{%
- \caption@Error{%
- Only one \noexpand\caption can be placed in this environment}%
- \caption@gobble}%
- \@ifstar
- {\caption@SC@caption*}%
- {\let\@currentlabel\caption@SClabel
- \caption@withoptargs\caption@SC@caption}}%
- \long\def\caption@SC@caption##1##2{%
- \caption@@freeze{\caption##1{##2}}%
- \ignorespaces}%
-% \end{macrocode}
-% \begin{macrocode}
- \let\caption@frozen@label\label
- \def\label{%
- \caption@withoptargs\caption@SC@label}%
- \def\caption@SC@label##1##2{%
- \ifx\@currentlabel\caption@SClabel
- \@bsphack
- \caption@freeze@label{##1}{##2}%
- \@esphack
- \else
- \caption@frozen@label##1{##2}%
- \fi}%
- \def\caption@SClabel{\caption@undefinedlabel}%
- \def\caption@freeze@label##1##2{%
- \caption@@freeze{\label##1{##2}}}%
+ \def\caption{%
+ \caption@Error{%
+ Only one \noexpand\caption can be placed in this environment}%
+ \caption@gobble}%
+ \@ifstar
+ {\caption@SC@caption*}%
+ {\let\@currentlabel\caption@SClabel
+ \caption@withoptargs\caption@SC@caption}}%
+ \long\def\caption@SC@caption##1##2{%
+ \caption@@freeze{\caption##1{##2}}%
+ \ignorespaces}%
+% \end{macrocode}
+% \begin{macrocode}
+ \let\caption@frozen@label\label
+ \def\label{%
+ \caption@withoptargs\caption@SC@label}%
+ \def\caption@SC@label##1##2{%
+ \ifx\@currentlabel\caption@SClabel
+ \@bsphack
+ \caption@freeze@label{##1}{##2}%
+ \@esphack
+ \else
+ \caption@frozen@label##1{##2}%
+ \fi}%
+ \def\caption@SClabel{\caption@undefinedlabel}%
+ \def\caption@freeze@label##1##2{%
+ \caption@@freeze{\label##1{##2}}}%
% \end{macrocode}
% \begin{macrocode}
- \global\let\caption@frozen@content\@empty
- \long\def\caption@@freeze{%
- \g@addto@macro\caption@frozen@content}%
+ \global\let\caption@frozen@content\@empty
+ \long\def\caption@@freeze{%
+ \g@addto@macro\caption@frozen@content}%
% \end{macrocode}
% \begin{macrocode}
- \def\caption@warmup{%
- \let\ContinuedFloat\caption@frozen@ContinuedFloat
- \let\caption@setup\caption@frozen@setup
- \let\caption\caption@frozen@caption
- \let\label\caption@frozen@label}}%
+ \def\caption@warmup{%
+ \let\ContinuedFloat\caption@frozen@ContinuedFloat
+ \let\caption@setup\caption@frozen@setup
+ \let\caption\caption@frozen@caption
+ \let\label\caption@frozen@label}}%
% \end{macrocode}
% \end{macro}
%
@@ -2761,13 +2800,13 @@
% \changes{v3.2c}{2011/08/21}{\cs{caption@defrost@setup} removed}
% |\caption@defrost|
% \begin{macrocode}
- \newcommand*\caption@defrost{%
- \ifx\caption@frozen@caption\@undefined
- \caption@frozen@content
- \else
- \caption@Error{Internal Error:\MessageBreak
- \noexpand\caption@defrost in same group as \string\caption@freeze}%
- \fi}%
+ \newcommand*\caption@defrost{%
+ \ifx\caption@frozen@caption\@undefined
+ \caption@frozen@content
+ \else
+ \caption@Error{Internal Error:\MessageBreak
+ \noexpand\caption@defrost in same group as \string\caption@freeze}%
+ \fi}%
% \end{macrocode}
% \end{macro}
%
@@ -3107,6 +3146,7 @@
% \changes{v3.1k}{2009/10/09}{Bugfix 09-09-11: Missing \cs{ignorespaces} added}
% \changes{v3.2c}{2011/08/28}{Adapted to current version of \cs{caption@freeze}}
% \changes{v3.2f}{2012/02/19}{Bugfix 12-02-16: \texttt{minipage} environment added}
+% \changes{v3.3}{2013/05/01}{Usage of \cs{caption@freeze} replaced by \cs{caption@freezetype}}
% Original code:
% \begin{verbatim}
% \newcommand{\FP@floatBegin}[1]{%
@@ -3130,7 +3170,7 @@
\def\FP@captype{#1}%
\begin{lrbox}{\FP@floatCorpusBOX}%
\minipage\hsize % changes from LR mode to vertical mode
- \caption@freeze{#1}%
+ \caption@freezetype{#1}%
\ignorespaces}%
% \end{macrocode}
% \end{macro}
@@ -4108,7 +4148,8 @@
\rotatebox{90}{%
\ifdim\captionwidth=\z@
\setcaptionwidth{.8\vsize}%
- \l@addto@macro\caption@singleline{\caption@setbox{none}}%
+ \l@addto@macro\caption@singleline{%
+ \caption@setup{parbox=none}}%
\fi
\let\caption@calcmargin\relax
\caption@@make{#1}{#2}}%
@@ -4132,6 +4173,7 @@
% \changes{v3.0c}{2004/07/16}{Bugfix 04-07-15: Check for \cs{caption@star} removed}
% \changes{v3.1c}{2007/10/06}{\cs{caption} will be saved \& restored now}
% \changes{v3.2a}{2011/08/17}{Bugfix: Uses \cs{caption@freeze} instead of \cs{caption@freeze*} now}
+% \changes{v3.3}{2013/05/01}{Usage of \cs{caption@freeze} replaced by \cs{caption@freezetype}}
% This macro will be called at the start of the environment, here is a good
% opportunity to do some adaptations to |\caption| and |\captionsetup|.
% \begin{macrocode}
@@ -4150,7 +4192,7 @@
% which will be executed later on.
% Furthermore we need to make |\caption*| work.
% \begin{macrocode}
- \caption@freeze{#2}%
+ \caption@freezetype{#2}%
% \end{macrocode}
% The sidecap package uses |\ifx\label\SC@label| to test if it is just inside a
% |SC|\-|figure| or not. So we redefine |\SC@label| here so this test will still work.
@@ -4411,8 +4453,8 @@
\let\caption@ORI@threeparttable\threeparttable
\renewcommand*\threeparttable{%
\caption@settype{table}%
- \caption@setposition a% ?
- \caption@clearmargin
+ \caption@setposition a% ?
+ \caption@clearmargin
\caption@setoptions{threeparttable}%
\caption@ORI@threeparttable}%
% \end{macrocode}
@@ -4423,8 +4465,8 @@
\let\caption@ORI@measuredfigure\measuredfigure
\renewcommand*\measuredfigure{%
\caption@settype{figure}%
- \caption@setposition a% ?
- \caption@clearmargin
+ \caption@setposition a% ?
+ \caption@clearmargin
\caption@setoptions{measuredfigure}%
\caption@ORI@measuredfigure}%
% \end{macrocode}
diff --git a/Master/texmf-dist/source/latex/caption/caption3.dtx b/Master/texmf-dist/source/latex/caption/caption3.dtx
index 75d79b1a2ca..d1b72258426 100644
--- a/Master/texmf-dist/source/latex/caption/caption3.dtx
+++ b/Master/texmf-dist/source/latex/caption/caption3.dtx
@@ -2,7 +2,7 @@
%
% This is file `caption3.dtx'.
%
-% $Id: caption3.dtx 71 2013-04-14 15:14:26Z sommerfeldt $
+% $Id: caption3.dtx 88 2013-05-02 05:15:09Z sommerfeldt $
% $HeadURL: svn+ssh://sommerfeldt@svn.code.sf.net/p/latex-caption/code/trunk/source/caption3.dtx $
%
% Copyright (C) 1994-2013 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
@@ -28,12 +28,12 @@
% and the user manuals caption-deu.tex, caption-eng.tex, and caption-rus.tex.
%
% \fi
-% \CheckSum{3477}
+% \CheckSum{3543}
%
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{caption3.drv}[2011/10/09 v1.5 Implementation of the caption kernel]
+\ProvidesFile{caption3.drv}[2013/05/01 v1.6 Implementation of the caption kernel]
\hbadness=9999 \newcount\hbadness \hfuzz=100pt % Make TeX shut up.
%\errorcontextlines=3
%
@@ -102,7 +102,7 @@
% This package has version number \fileversion, last revised \filedate.}}%^^A
% {the caption kernel}}
% \author{Axel Sommerfeldt\\
-% \url{http://sourceforge.net/projects/latex-caption/}}
+% \url{http://sourceforge.net/p/latex-caption/}}
% \date{\docdate}
% \maketitle
%
@@ -203,8 +203,8 @@
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\def\caption@tempa$Id: #1 #2 #3-#4-#5 #6${%
\def\caption@tempa{#3/#4/#5 }\def\caption@tempb{#2 }}
-\caption@tempa $Id: caption3.dtx 71 2013-04-14 15:14:26Z sommerfeldt $
-\ProvidesPackage{caption3}[\caption@tempa v1.5-\caption@tempb caption3 kernel (AR)]
+\caption@tempa $Id: caption3.dtx 88 2013-05-02 05:15:09Z sommerfeldt $
+\ProvidesPackage{caption3}[\caption@tempa v1.6-\caption@tempb caption3 kernel (AR)]
% \end{macrocode}
%
% \subsection{Generic helpers}
@@ -221,16 +221,27 @@
% \end{macro}
%
% \begin{macro}{\l@addto@macro}
+% \changes{v3.3}{2013/04/26}{Revised}
% The \LaTeXe\ kernel offers the internal helper macro |\g@addto@macro| which
% globally adds tokens to existing macros, like in |\AtBeginDocument|.
-% This is the same but it works local, not global
-% (using \cs{edef} instead of \cs{xdef}).
+% This is the same but it works local, not global.
% \begin{macrocode}
-\providecommand\l@addto@macro[2]{%
- \begingroup
- \toks@\expandafter{#1#2}%
- \edef\@tempa{\endgroup\def\noexpand#1{\the\toks@}}%
- \@tempa}
+\begingroup\expandafter\expandafter\expandafter\endgroup
+\expandafter\ifx\csname currentgrouplevel\endcsname\relax
+ \PackageInfo{caption3}{TeX engine: TeX}
+ \let\caption@ifeTeX\@secondoftwo
+ \providecommand\l@addto@macro[2]{%
+ \begingroup
+ \toks@\expandafter{#1#2}%
+ \xdef\caption@addto@temp{\the\toks@}%
+ \endgroup
+ \let#1\caption@addto@temp}
+\else
+ \PackageInfo{caption3}{TeX engine: e-TeX}
+ \let\caption@ifeTeX\@firstoftwo
+ \providecommand\l@addto@macro[2]{%
+ \edef#1{\unexpanded\expandafter{#1#2}}}
+\fi
% \end{macrocode}
% \end{macro}
%
@@ -1498,12 +1509,13 @@
% \changes{v1.2}{2007/11/17}{Usage of \opt{size=} added}
% \changes{v1.2b}{2008/05/06}{Usage of \opt{rule} added}
% \changes{v1.5}{2012/03/15}{\opt{box=parbox} added}
+% \changes{v1.6}{2013/05/01}{\opt{box=none} added, \opt{box=parbox} changed to \opt{parbox=parbox}}
% This resets (nearly) all caption options to the base ones.
% \emph{Note that this does not touch the skips and the positioning!}
% \begin{macrocode}
\newcommand*\caption@resetstyle{%
\caption@setup{%
- box=parbox,boxcolor=white,%
+ box=none,boxcolor=white,parbox=parbox,%
format=plain,labelformat=default,labelsep=colon,textformat=simple,%
justification=justified,font=,size=,labelfont=,textfont=,%
margin=0pt,minmargin=0,maxmargin=0,%
@@ -1548,23 +1560,37 @@
% \end{macrocode}
% \end{macro}
%
+% \changes{v1.5}{2012/03/15}{Option \opt{box=} added}
+% \changes{v1.6}{2013/05/01}{Option \opt{parbox=} added}
% \begin{macrocode}
\DeclareCaptionOption{box}{\caption@setbox{#1}}
+\DeclareCaptionOption{parbox}{\caption@set@box\caption@parbox{#1}}
% \end{macrocode}
%
% \begin{macro}{\caption@setbox}
% |\caption@setbox|\marg{name}\par
% Selecting a caption box simply means saving the code (in |\caption@box|).
% \begin{macrocode}
-\newcommand*\caption@setbox[1]{%
- \@ifundefined{caption@box@#1}%
- {\caption@Error{Undefined box `#1'}}%
- {\expandafter\let\expandafter\caption@box\csname caption@box@#1\endcsname}}
+\newcommand*\caption@setbox{%
+ \caption@set@box\caption@box}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\caption@set@box[2]{%
+ \@ifundefined{caption@box@#2}%
+ {\caption@Error{Undefined box `#2'}}%
+ {\expandafter\let\expandafter#1\csname caption@box@#2\endcsname}}
% \end{macrocode}
% \end{macro}
%
-% There are four pre-defined label formats, called `empty', `simple',
-% `parens', and `brace'.
+% There are four pre-defined boxes, called `empty', `none',
+% `parbox', and `colorbox'.
+% \changes{v1.0i}{2006/05/13}{We define \cs{captionbox} instead of
+% \cs{caption@start/endbox}}
+% \changes{v1.0l}{2006/03/09}{Bugfix 07-03-09: \cs{captionbox} changed from
+% \cs{parbox-t} to \cs{parbox-b}}
+% \changes{v1.2}{2007/11/11}{\cs{captionbox} renamed to \cs{caption@parbox}}
+% \changes{v1.5}{2012/03/15}{\cs{caption@parbox} adapted to \cs{DeclareCaptionBox}}
+% \changes{v1.6}{2013/05/02}{Option \opt{boxsep=} added}
% \begin{macrocode}
\DeclareCaptionBox{empty}{}
\DeclareCaptionBox{none}{#2}
@@ -1572,15 +1598,17 @@
%\DeclareCaptionBox{colorbox}{%
% \colorbox{\caption@boxcolor}{\caption@box@parbox{\dimexpr #1-2\fboxsep}{#2}}}
\DeclareCaptionBox{colorbox}{\colorbox{\caption@boxcolor}{%
-% \setlength\caption@tempdima{#1}%
+ \setlength\caption@tempdima{#1}%
\addtolength\caption@tempdima{-2\fboxsep}%
- \caption@box@parbox\caption@tempdima{#2}}}
+ \linewidth=\caption@tempdima\hsize=\caption@tempdima
+ #2}}
\DeclareCaptionOption{boxcolor}{\def\caption@boxcolor{#1}}
+\DeclareCaptionOption{boxsep}{\setlength\fboxsep{#1}}
% \end{macrocode}
%
-% `default' usually maps to `parbox'.
+% `default' usually maps to `none`.
% \begin{macrocode}
-\def\caption@box@default{\caption@box@parbox}
+\def\caption@box@default{\caption@box@none}
% \end{macrocode}
%
% \subsection{Formats}
@@ -2643,6 +2671,7 @@
% \subsubsection{The beamer class (Part one)}
% \changes{v1.1}{2007/03/10}{beamer class support added}
% \changes{v1.3}{2011/08/06}{beamer class support revised}
+% \changes{v3.3}{2013/04/27}{The beamer template \texttt{caption label separator} will be used now}
%
% \begin{macro}{\caption@ifbeamerclass}
% \begin{macrocode}
@@ -2673,6 +2702,8 @@
\nobreak\vskip\belowcaptionskip\nobreak}}
% \end{macrocode}
% \begin{macro}{\caption@ifbeamertemplate}
+% |\caption@ifbeamertemplate|\marg{caption template name}\marg{yes-code}\marg{no-code}\\
+% tests if the given beamer caption template was selected by the user (or not).
% \begin{macrocode}
\newcommand*\caption@ifbeamertemplate[1]{%
\begingroup
@@ -2691,7 +2722,8 @@
\caption@declarelabelseparator
{\caption@ifbeamertemplate{caption name own line}\@gobble\@firstofone}
{default}
- {\caption@ifbeamertemplate{caption name own line}{\\}{: }}
+ {\caption@ifbeamertemplate{caption name own line}{\\}%
+ {\usebeamertemplate{caption label separator}}}
\DeclareCaptionDefaultFont{font}{%
\usebeamerfont*{caption}%
\usebeamercolor[fg]{caption}}
@@ -3128,6 +3160,7 @@
% \changes{v1.1e}{2007/10/28}{\cs{caption@stepcounter} added}
% \changes{v1.5}{2012/03/15}{Uses \cs{caption@tempdima} instead of \cs{@tempdima}}
% \changes{v1.5}{2012/12/26}{max-margin stuff moved to \cs{caption@calcmargin}}
+% \changes{v1.6}{2013/05/01}{Usage of \cs{caption@box} added}
% |\caption@@make|\marg{caption label}\marg{caption text}
% \begin{macrocode}
\newcommand\caption@@make[2]{%
@@ -3136,20 +3169,25 @@
\caption@beginhook
% \end{macrocode}
%
+% Typeset the outer box |\caption@box|
+% \begin{macrocode}
+ \caption@box\linewidth{%
+% \end{macrocode}
+%
% Special single-line treatment (option |singlelinecheck=|)
% \begin{macrocode}
- \caption@ifslc{\caption@slc{#1}{#2}\caption@singleline\relax}{}%
+ \caption@ifslc{\caption@slc{#1}{#2}\caption@singleline\relax}{}%
% \end{macrocode}
%
% Typeset the left margin (option |margin=|)
% \begin{macrocode}
- \caption@calcmargin
- \@tempdima\captionmargin
- \ifdim\captionmargin@=\z@ \else
- \caption@ifoddpage{}{\advance\@tempdima\captionmargin@}%
- \fi
- \caption@ifh{\advance\@tempdima\caption@indent}%
- \hspace\@tempdima
+ \caption@calcmargin
+ \caption@tempdima\captionmargin
+ \ifdim\captionmargin@=\z@ \else
+ \caption@ifoddpage{}{\advance\caption@tempdima\captionmargin@}%
+ \fi
+ \caption@ifh{\advance\caption@tempdima\caption@indent}%
+ \hspace\caption@tempdima
% \end{macrocode}
%
% We actually use a |\vbox| of width |\captionwidth - \caption@indent|
@@ -3157,35 +3195,40 @@
% \Note{\cs{captionindent} is \emph{not} supported if the caption format
% was defined with \cs{DeclareCaptionFormat*}.}
% \begin{macrocode}
- \caption@tempdima\captionwidth
- \caption@ifh{\advance\caption@tempdima-\caption@indent}%
- \caption@parbox\caption@tempdima{%
+ \caption@tempdima\captionwidth
+ \caption@ifh{\advance\caption@tempdima-\caption@indent}%
+ \caption@parbox\caption@tempdima{%
% \end{macrocode}
%
% Typeset the indention (option |indention=|)\\
% {\small Bugfix 04-05-05:
% |\hskip-\caption@indent| replaced by |\ifdim\caption@indent=\z@|\ldots}
% \begin{macrocode}
- \caption@ifh{%
- \ifdim\caption@indent=\z@
- \leavevmode
- \else
- \hskip-\caption@indent
- \fi}%
+ \caption@ifh{%
+ \ifdim\caption@indent=\z@
+ \leavevmode
+ \else
+ \hskip-\caption@indent
+ \fi}%
% \end{macrocode}
%
% Typeset the caption itself and close the |\caption@parbox|
% \begin{macrocode}
- \caption@@@make{#1}{#2}}%
+ \caption@@@make{#1}{#2}}%
% \end{macrocode}
%
% Typeset the right margin (option |margin=|)
% \begin{macrocode}
- \@tempdima\captionmargin
- \ifdim\captionmargin@=\z@ \else
- \caption@ifoddpage{\advance\@tempdima\captionmargin@}{}%
- \fi
- \hspace\@tempdima
+ \caption@tempdima\captionmargin
+ \ifdim\captionmargin@=\z@ \else
+ \caption@ifoddpage{\advance\caption@tempdima\captionmargin@}{}%
+ \fi
+ \hspace\caption@tempdima
+% \end{macrocode}
+%
+% Close the outer box |\caption@box|
+% \begin{macrocode}
+ }%
% \end{macrocode}
%
% \begin{macrocode}
@@ -3352,21 +3395,6 @@
% \end{macrocode}
% \end{macro}
%
-% \begin{macro}{\caption@parbox}
-% \changes{v1.0i}{2006/05/13}{We define \cs{caption@parbox} instead of
-% \cs{caption@start/endbox}}
-% \changes{v1.0l}{2006/03/09}{Bugfix 07-03-09: \cs{caption@parbox} changed from
-% \cs{parbox-t} to \cs{parbox-b}}
-% \changes{v1.2}{2007/11/11}{Renamed from \cs{captionbox} to \cs{caption@parbox}}
-% \changes{v1.5}{2012/03/15}{Adapted to \cs{DeclareCaptionBox}}
-% |\caption@parbox|\marg{width}\marg{contents}\par
-% This macro defines the box which surrounds the caption paragraph.
-% (For compatibility reasons we still use |\caption@par|\-|box| instead of |\caption@box|.)
-% \begin{macrocode}
-\newcommand*\caption@parbox{\caption@box}
-% \end{macrocode}
-% \end{macro}
-%
% \begin{macro}{\caption@applyfont}
% \changes{v1.3}{2010/09/04}{This macro added}
% |\caption@applyfont|\par
@@ -3675,6 +3703,45 @@
% \end{macrocode}
% \end{macro}
%
+% Unfortunately the \class{memoir} document class resets the
+% \texttt{subfigure} resp.~\texttt{subtable} counter at the begin
+% of floating environments, i.e.~at |\@float|.
+% As a side-effect |\Continued|\-|Float| does not work correctly.
+% For that reason we need to introduce macros to save and restore
+% all sub-caption counters here.
+%
+% \begin{macro}{\caption@restorecounters}
+% \changes{v1.5}{2013/05/01}{This macro added}
+% |\caption@restore|\-|counters| restores all counters saved with
+% |\caption@save|\-|counter|.
+% \begin{macrocode}
+\newcommand*\caption@restorecounters{%
+ \caption@restore@counters
+ \global\let\caption@restore@counters\@empty}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\caption@restore@counters{}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\caption@savesubcounters}
+% \changes{v1.5}{2013/05/01}{This macro added}
+% |\caption@save|\-|sub|\-|counters| saves all sub-caption counters,
+% so they can be restored with |\caption@restore|\-|counters| later on.
+% \begin{macrocode}
+\newcommand*\caption@savesubcounters{%
+ \def\@elt##1{\caption@savecounter{sub##1}}%
+ \caption@subtypelist
+ \let\@elt\relax}%
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\caption@savecounter[1]{%
+ \edef\caption@tempa{%
+ \noexpand\l@addto@macro\noexpand\caption@restore@counters
+ {\noexpand\setcounter{#1}{\number\value{#1}}}}%
+ \caption@tempa}
+% \end{macrocode}
+% \end{macro}
+%
% \begin{macro}{\caption@For}
% \changes{v1.1a}{2007/09/07}{This macro added}
% \changes{v1.2}{2007/11/16}{Renamed from \cs{ForFloatingEnvironments} to \cs{caption@For}}
diff --git a/Master/texmf-dist/source/latex/caption/newfloat.dtx b/Master/texmf-dist/source/latex/caption/newfloat.dtx
index 3522c9bfea1..a3228bc1d69 100644
--- a/Master/texmf-dist/source/latex/caption/newfloat.dtx
+++ b/Master/texmf-dist/source/latex/caption/newfloat.dtx
@@ -2,10 +2,10 @@
%
% This is file `newfloat.dtx'.
%
-% $Id: newfloat.dtx 63 2013-02-03 13:27:05Z sommerfeldt $
+% $Id: newfloat.dtx 91 2013-05-11 12:25:57Z sommerfeldt $
% $HeadURL: svn+ssh://sommerfeldt@svn.code.sf.net/p/latex-caption/code/trunk/source/newfloat.dtx $
%
-% Copyright (C) 2011-2012 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
+% Copyright (C) 2011-2013 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
%
% --------------------------------------------------------------------------
%
@@ -28,13 +28,13 @@
% and the user manuals caption-deu.tex, caption-eng.tex, and caption-rus.tex.
%
% \fi
-% \CheckSum{1300}
+% \CheckSum{1318}
%
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesFile{newfloat.drv}%
- [2012/05/18 v1.0 This package offers a command for defining new floating environments]
+ [2013/04/27 v1.1 This package offers a command for defining new floating environments]
\hbadness=9999 \newcount\hbadness \hfuzz=48pt % Make TeX shut up.
%
\documentclass{ltxdoc}
@@ -77,7 +77,7 @@
% \newcommand*\purerm[1]{{\upshape\mdseries\rmfamily #1}}
% \newcommand*\puresf[1]{{\upshape\mdseries\sffamily #1}}
% \newcommand*\purett[1]{{\upshape\mdseries\ttfamily #1}}
-% \let\package\puresf
+% \let\class\puresf \let\package\puresf
% \let\env\purett \let\opt\purett
%
% \def\thispackage{the \package{newfloat} package}
@@ -94,10 +94,10 @@
% \GetFileInfo{newfloat.sty}
%
% \title{\texorpdfstring{\Thispackage\thanks{%^^A
-% This package has version number \fileversion, last revised \filedate.}}%^^A
+% This package has version number \fileversion.}}%^^A
% {The newfloat package}}
% \author{Axel Sommerfeldt\\
-% \url{http://sourceforge.net/projects/latex-caption/}}
+% \url{http://sourceforge.net/p/latex-caption/}}
% \date{\docdate}
% \maketitle
%
@@ -266,7 +266,7 @@
% \section{\cs{ForEachFloatingEnvironment}}
%
% \begin{quote}
-% |\ForEachFloatingEnvironment|\meta{code with \#1}
+% |\ForEachFloatingEnvironment|\marg{code with \#1}
% \end{quote}
% will execute the given \meta{code} for all known floating environments,
% and for ones defined with |\Declare|\-|Floating|\-|Environment| later on.
@@ -293,6 +293,77 @@
% will typeout the names of all already known floating environments to the terminal
% and log file.
%
+% \pagebreak[3]
+% \section{\cs{PrepareListOf}}
+%
+% Unfortunately there is no standardized way of typesetting and customizing
+% lists of floating environments, i.e.~every document class offers it's own stuff here,
+% and there are plenty of \LaTeXe\ packages for this purpose.
+%
+% \pagebreak[3]
+% For that reason the \thispackage\ simply typesets the lists of newly
+% defined floating environments as ``List of Figure'' internally (using |\list|\-|of|\-|figure|)
+% but using a different list (the right one, of course) and using a different list name,
+% the one you have specified with either |\Declare|\-|Floating|\-|Environment| or
+% |\Setup|\-|Floating|\-|Environment|.\footnote{Please note that this is not the
+% fact when using a \KOMAScript\ document class, not \cs{listoffigure} but \cs{listoftoc}
+% will be used here, and therefore no problems should occur.}
+%
+% \pagebreak[3]
+% While this usually results in the same layout as the ``List of Figure'' and
+% is sufficient for most cases, there are some cases where this might
+% lead to an unwanted side effect.
+%
+% \pagebreak[3]
+% Therefore the \thispackage\ offers
+% \begin{quote}
+% |\PrepareListOf|\marg{floating environment}\marg{code}
+% \end{quote}
+% which will execute the given \meta{code} right before actually typesetting the list
+% with |\list|\-|of|\-|figures| internally.
+%
+% \pagebreak[3]
+% One example:
+% \begin{quote}
+% |\PrepareListOf{diagram}{%|\\
+% | \renewcommand{\cftfigpresnum}{Diagram~}}|
+% \end{quote}
+% will change the part typeset in front of the diagram number within the
+% ``List of Diagrams'' when using the \package{tocloft} package~\cite{tocloft}.
+% Without the code above you will get the part defined for figures instead.
+%
+% \pagebreak[3]
+% However, when dealing with the \package{tocloft} package it's a better
+% idea not to use |\Prepare|\-|List|\-|Of| but the customization facilities of that package
+% instead, e.g.:
+% \begin{quote}
+% |\documentclass{book}|\\
+% \ldots\\
+% |\usepackage{newfloat,tocloft}|\\
+% |\newlistof{diagram}{lod}{List of Diagrams}|\\
+% |\DeclareFloatingEnvironment[name=Diagram,fileext=lod]{diagram}|\\
+% | % Note: Due of a bug in tocloft the file extension|\\
+% | % must be repeated at \DeclareFloatingEnvironment,|\\
+% | % otherwise you will get an empty list.|\\
+% ||\\
+% |% Customize `List of Figures'|\\
+% |\renewcommand{\cftfigpresnum}{Figure~}|\\
+% |\setlength{\cftfignumwidth}{2cm}|\\
+% ||\\
+% |% Customize `List of Diagrams'|\\
+% |\renewcommand{\cftdiagrampresnum}{Diagram~}|\\
+% |\setlength{\cftdiagramnumwidth}{2cm}|\\
+% ||\\
+% \ldots\\
+% ||\\
+% |\begin{document}|\\
+% \ldots\\
+% |\listoffigures|\\
+% |\listofdiagrams|\\
+% \ldots\\
+% |\end{document}|
+% \end{quote}
+%
% \iffalse
% \pagebreak[3]
% \section{For \LaTeX{} package authors}
@@ -332,7 +403,7 @@
% \fi
%
% \StopEventually{%^^A
-% \pagebreak[3]
+% \pagebreak[4]
% \begin{thebibliography}{9}
%
% \bibitem{memoir}
@@ -351,7 +422,7 @@
% Markus Kohm \& Jens-Uwe-Morawski:\\
% \href{http://www.ctan.org/pkg/koma-script}%
% {\emph{KOMA-Script -- a versatile \LaTeXe\ bundle}},\\
-% 2007-01-09
+% 2012-07-22
%
% \bibitem{float}
% Anselm Lingnau:\\
@@ -377,6 +448,12 @@
% {\emph{The sidecap package}},\\
% 2003/06/06
%
+% \bibitem{tocloft}
+% Peter Wilson, Herries Press, Will Robertson:\\
+% \href{http://www.ctan.org/pkg/tocloft}%
+% {\emph{The tocloft package}},\\
+% 2010/10/13
+%
% \bibitem{wrapfig}
% Donald Arseneau:\\
% \href{http://www.ctan.org/pkg/wrapfig}%
@@ -439,6 +516,8 @@
% \setlength{\parskip}{0pt plus 1pt}
% \changes{v1.0}{2011/10/30}{First release as \package{newfloat} package,
% outsourced from the \package{caption3} package and revised}
+% \changes{v1.1}{2013/04/27}{Adapted to the \package{tocloft} package}
+% \changes{v1.1}{2013/04/27}{New command \cs{PrepareListOf} added}
%
% \iffalse
% --------------------------------------------------------------------------- %
@@ -457,8 +536,8 @@
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\def\caption@tempa$Id: #1 #2 #3-#4-#5 #6${%
\def\caption@tempa{#3/#4/#5 }\def\caption@tempb{#2 }}
-\caption@tempa $Id: newfloat.dtx 63 2013-02-03 13:27:05Z sommerfeldt $
-\ProvidesPackage{newfloat}[\caption@tempa v1.0-\caption@tempb Defining new floating environments (AR)]
+\caption@tempa $Id: newfloat.dtx 91 2013-05-11 12:25:57Z sommerfeldt $
+\ProvidesPackage{newfloat}[\caption@tempa v1.1-\caption@tempb Defining new floating environments (AR)]
% \end{macrocode}
%
% \begin{macro}{\newfloat@Info}
@@ -495,10 +574,45 @@
% \end{macrocode}
%
% \pagebreak[3]
+% \subsection{Helper macros}
+%
+% \begin{macro}{\newfloat@def}
+% \changes{v1.1}{2013/04/27}{This macro added}
+% |\newfloat@def|\marg{macro name}\marg{definition}
+% \begin{macrocode}
+\newcommand*\newfloat@def[2]{%
+ \newfloat@ifundefined{#1}{%
+ \@namedef{#1}{#2}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newfloat@let}
+% \changes{v1.1}{2013/04/27}{This macro added}
+% |\newfloat@let|\marg{macro name}\marg{macro}
+% \begin{macrocode}
+\newcommand*\newfloat@let[2]{%
+ \newfloat@ifundefined{#1}{%
+ \expandafter\let\csname #1\endcsname#2}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\newfloat@ifundefined}
+% \changes{v1.1}{2013/04/27}{This macro added}
+% |\newfloat@ifundefined|\marg{macro name}\marg{code}
+% \begin{macrocode}
+\newcommand*\newfloat@ifundefined[2]{%
+ \@ifundefined{#1}{#2}{%
+ \newfloat@Info{%
+ \expandafter\string\csname#1\endcsname\space is already defined}}}
+% \end{macrocode}
+% \end{macro}
+%
+% \pagebreak[3]
% \subsection{\cs{DeclareFloatingEnvironment}}
%
% \begin{macro}{\DeclareFloatingEnvironment}
% \changes{v1.0a}{2011/11/16}{Bugfix: Undefines \cs{fst@}\meta{environment} now}
+% \changes{v1.1}{2013/04/27}{Revised, only defines stuff yet undefined now}
% |\DeclareFloatingEnvironment|\oarg{options}\marg{environment}\oarg{name}\oarg{list name}
% \begin{macrocode}
\newcommand*\DeclareFloatingEnvironment{%
@@ -519,7 +633,7 @@
% \end{macrocode}
% Define a counter with the same name as the floating environment
% \begin{macrocode}
- \newcounter{#2}%
+ \newfloat@ifundefined{c@#2}{\newcounter{#2}}%
% \end{macrocode}
% Set |\ftype@|\meta{type} which contains the type number for floats of type \meta{type}\par
% (See also \url{http://tex.stackexchange.com/q/32359/2574})
@@ -542,35 +656,50 @@
% \end{macrocode}
% Define |\fnum@|\meta{type}, a macro to generate the figure number for a caption
% \begin{macrocode}
- \@namedef{fnum@#2}{\@nameuse{#2name}\nobreakspace\@nameuse{the#2}}%
+ \newfloat@def{fnum@#2}%
+ {\@nameuse{#2name}\nobreakspace\@nameuse{the#2}}%
% \end{macrocode}
% Define |\|\meta{type}|name| used by |\fnum@|\meta{type} as \meta{type},
% but with first letter capitalized
% \begin{macrocode}
- \expandafter\newcommand\csname #2name\endcsname{}%
- \expandafter\let\csname #2name\endcsname\newfloat@Type
- \@namedef{fleg#2}{\@nameuse{#2name}}% legend naming (memoir)
+ \newfloat@let{#2name}{\newfloat@Type}%
+ \newfloat@def{fleg#2}{\@nameuse{#2name}}% legend naming (memoir)
% \end{macrocode}
% Legend name in ToC (memoir document class)
% \begin{macrocode}
- \@namedef{flegtoc#2}##1{}%
+ \newfloat@ifundefined{flegtoc#2}{\@namedef{flegtoc#2}##1{}}%
% \end{macrocode}
-% Define the floating environment
+% Define the floating environment\par
+% (If the \class{tufte} document class is loaded,
+% |\@tufte@float| and |\end@tufte@float| will be used instead of
+% |\@float|, |\end@float|, |\@dblfloat|, and |\end@dblfloat|.)
% \begin{macrocode}
- \newenvironment{#2}{\@float{#2}}{\end@float}%
- \newenvironment{#2*}{\@dblfloat{#2}}{\end@dblfloat}%
+ \ifcsname @tufte@float\endcsname
+ \newenvironment{#2}[1][htbp]%
+ {\begin{@tufte@float}[##1]{#2}{}}%
+ {\end{@tufte@float}}%
+ \newenvironment{#2*}[1][htbp]%
+ {\begin{@tufte@float}[##1]{#2}{star}}%
+ {\end{@tufte@float}}%
+ \else
+ \newenvironment{#2}{\@float{#2}}{\end@float}%
+ \newenvironment{#2*}{\@dblfloat{#2}}{\end@dblfloat}%
+ \fi
% \end{macrocode}
% Define the listing command |\listof|\meta{type}(|e|)|s|
+% \changes{v1.1}{2013/04/27}{Definition of list hook added}
% \begin{macrocode}
- \expandafter\newcommand\csname listof#2s\endcsname{\newfloat@listof{#2}}%
- \expandafter\newcommand\csname listof#2es\endcsname{\newfloat@listof{#2}}%
+ \newfloat@def{listof#2}{\newfloat@listof{#2}}%
+ \newfloat@def{listof#2s}{\@nameuse{listof#2}}%
+ \newfloat@def{listof#2es}{\@nameuse{listof#2s}}%
+ \newfloat@def{newfloat@listof#2@hook}{}%
\ifdefined\l@figure
- \expandafter\let\csname l@#2\endcsname\l@figure
+ \newfloat@let{l@#2}{\l@figure}%
\else
- \@namedef{l@#2}{\@dottedtocline{1}{1.5em}{2.3em}}%
+ \newfloat@def{l@#2}{\@dottedtocline{1}{1.5em}{2.3em}}%
\fi
- \expandafter\newcommand\csname list#2name\endcsname{}%
- \expandafter\xdef\csname list#2name\endcsname{List of \newfloat@Type s}%
+ \edef\newfloat@tempa{List of \newfloat@Type s}%
+ \newfloat@let{list#2name}{\newfloat@tempa}%
% \end{macrocode}
% We undefine |\fst@|\meta{environment} so the new environment
% will not be recognized as defined by the \package{float} package.
@@ -581,8 +710,8 @@
% \end{macrocode}
% Set default parameters
% \begin{macrocode}
- \newfloat@setplacement{#2}{tbp}%
- \newfloat@setfileext{#2}{lo#2}%
+ \newfloat@ifundefined{fps@#2}{\newfloat@setplacement{#2}{tbp}}%
+ \newfloat@ifundefined{ext@#2}{\newfloat@setfileext{#2}{lo#2}}%
% \end{macrocode}
% Apply given options
% \begin{macrocode}
@@ -611,21 +740,25 @@
% \end{macro}
%
% \begin{macro}{\newfloat@listof}
-% |\newfloat@listof|\marg{float type} typesets the list
+% \changes{v1.1}{2013/04/27}{Revised}
+% |\newfloat@listof|\marg{float type}\\
+% typesets the list, using |\listoffigure| with patched list name and file extension.
% \begin{macrocode}
\newcommand*\newfloat@listof[1]{%
- \ifcsname listoftoc\endcsname
- \expandafter\listoftoc\expandafter{\@nameuse{ext@#1}}%
- \else
- \begingroup
- \expandafter\let\expandafter\listfigurename\csname list#1name\endcsname
- \expandafter\let\expandafter\ext@figure\csname ext@#1\endcsname
- \let\newfloat@ORI@starttoc\@starttoc
- \renewcommand*\@starttoc[1]{%
- \expandafter\newfloat@ORI@starttoc\expandafter{\ext@figure}}%
- \listoffigures
- \endgroup
- \fi}
+ \@expandtwoargs\newfloat@list@of{#1}{\@nameuse{ext@#1}}}
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand*\newfloat@list@of[2]{%
+ \begingroup
+ \expandafter\let\expandafter\listfigurename\csname list#1name\endcsname
+ \def\ext@figure{#2}%
+ \let\newfloat@starttoc\@starttoc
+ \def\@starttoc##1{\newfloat@starttoc{#2}}%
+ \let\newfloat@listoftoc\listoftoc
+ \def\listoftoc##1{\newfloat@listoftoc{#2}}%
+ \@nameuse{newfloat@listof#1@hook}%
+ \listoffigures
+ \endgroup}
% \end{macrocode}
% \end{macro}
%
@@ -864,27 +997,26 @@
\@cons\newfloat@@list{{#1}}%
% \end{macrocode}
% \begin{macrocode}
- \@ifundefined{newfloat@ext@#2}{%
+ \newfloat@ifundefined{newfloat@ext@#2}{%
\@namedef{newfloat@ext@#2}{#1}%
% \end{macrocode}
% Support of \package{memoir} document class
% \begin{macrocode}
\ifcsname c@lofdepth\endcsname
- \@ifundefined{c@#2depth}{%
+ \newfloat@ifundefined{c@#2depth}{%
\newcounter{#2depth}%
- \setcounter{#2depth}{1}%
- }{}%
+ \setcounter{#2depth}{1}}%
\fi
% \end{macrocode}
% Support of \package{tocbasic} package
% \begin{macrocode}
\ifcsname addtotoclist\endcsname
\addtotoclist[float]{#2}%
- \@namedef{listof#2name}{\@nameuse{list#1name}}%
+ \newfloat@def{listof#2name}{\@nameuse{list#1name}}%
\fi
% \end{macrocode}
% \begin{macrocode}
- }{}%
+ }%
% \end{macrocode}
% Support of \package{titletoc} package
% \begin{macrocode}
@@ -951,6 +1083,21 @@
% \end{macro}
%
% \pagebreak[3]
+% \subsection{\cs{PrepareListOf}}
+%
+% \begin{macro}{\PrepareListOf}
+% \changes{v1.1}{2013/04/27}{This macro added}
+% |\PrepareListOf|\marg{float type}\marg{code}\\
+% adds \meta{code} to the one which prepares typesetting the list,
+% just before |\listoffigures|.
+% \begin{macrocode}
+\newcommand\PrepareListOf[1]{%
+ \expandafter\g@addto@macro\csname newfloat@listof#1@hook\endcsname}
+\@onlypreamble\PrepareListOf
+% \end{macrocode}
+% \end{macro}
+%
+% \pagebreak[3]
% \subsection{The list of floating environments}
%
% \begin{macro}{\newfloat@list}
@@ -971,8 +1118,7 @@
\ifcsname ext@#1\endcsname
\@cons\newfloat@list{{#1}}%
\@namedef{newfloat@ext@\@nameuse{ext@#1}}{#1}%
- \@ifundefined{@ifchapterlistsgap@#1}{%
- \expandafter\let\csname @ifchapterlistsgap@#1\endcsname\@iden}{}%
+ \newfloat@let{@ifchapterlistsgap@#1}{\@iden}%
\else
\newfloat@Error{`#1' does not seem to be a floating environment}%
\fi}}
diff --git a/Master/texmf-dist/source/latex/caption/subcaption.dtx b/Master/texmf-dist/source/latex/caption/subcaption.dtx
index 9723413040f..2c37dfc6c89 100644
--- a/Master/texmf-dist/source/latex/caption/subcaption.dtx
+++ b/Master/texmf-dist/source/latex/caption/subcaption.dtx
@@ -2,7 +2,7 @@
%
% This is file `subcaption.dtx'.
%
-% $Id: subcaption.dtx 68 2013-03-10 09:31:58Z sommerfeldt $
+% $Id: subcaption.dtx 75 2013-04-16 17:57:13Z sommerfeldt $
% $HeadURL: svn+ssh://sommerfeldt@svn.code.sf.net/p/latex-caption/code/trunk/source/subcaption.dtx $
%
% Copyright (C) 2007-2012 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
@@ -33,7 +33,7 @@
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{subcaption.drv}[2012/05/18 v1.1 Adds a sub-caption feature to the caption package]
+\ProvidesFile{subcaption.drv}[2013/04/16 v1.1 Adds a sub-caption feature to the caption package]
\hbadness=9999 \newcount\hbadness \hfuzz=74pt % Make TeX shut up.
%\errorcontextlines=3
%
@@ -485,9 +485,10 @@
% |\DeclareCaptionSubType|\oarg{numbering scheme}\marg{type}\\
% |\DeclareCaptionSubType*|\oarg{numbering scheme}\marg{type}
% \end{quote}
-% For the environments |figure| \& |table| (and all the ones
-% defined with |\Declare|\-|Floating|\-|Environment|) this will be done automatically
-% by this package, but for others (e.g.~defined with |\newfloat| offered by the
+% For the environments |figure| \& |table|, and all the ones
+% defined with |\Declare|\-|Floating|\-|Environment| offered by the
+% \package{newfloat} package, this will be done automatically,
+% but for other environments (e.g.~the ones defined with |\newfloat| offered by the
% \package{float} package or |\Declare|\-|New|\-|Float|\-|Type| offered by the
% \package{floatrow} package) this has to be done manually.
%
@@ -902,7 +903,7 @@
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\def\caption@tempa$Id: #1 #2 #3-#4-#5 #6${%
\def\caption@tempa{#3/#4/#5 }\def\caption@tempb{#2 }}
-\caption@tempa $Id: subcaption.dtx 68 2013-03-10 09:31:58Z sommerfeldt $
+\caption@tempa $Id: subcaption.dtx 75 2013-04-16 17:57:13Z sommerfeldt $
\ProvidesPackage{subcaption}[\caption@tempa v1.1-\caption@tempb Sub-captions (AR)]
% \end{macrocode}
%
diff --git a/Master/texmf-dist/source/latex/caption/totalcount.dtx b/Master/texmf-dist/source/latex/caption/totalcount.dtx
index 37e97712806..efc58d56cda 100644
--- a/Master/texmf-dist/source/latex/caption/totalcount.dtx
+++ b/Master/texmf-dist/source/latex/caption/totalcount.dtx
@@ -2,7 +2,10 @@
%
% This is file `totalcount.dtx'.
%
-% Copyright (C) 2008 Axel Sommerfeldt
+% $Id: totalcount.dtx 90 2013-05-11 12:00:30Z sommerfeldt $
+% $HeadURL: svn+ssh://sommerfeldt@svn.code.sf.net/p/latex-caption/code/trunk/source/totalcount.dtx $
+%
+% Copyright (C) 2010-2013 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
%
% --------------------------------------------------------------------------
%
@@ -18,16 +21,16 @@
%
% This Current Maintainer of this work is Axel Sommerfeldt.
%
-% This work consists of the files totalcount.ins and totalcount.dtx,
+% This work consists of the file totalcount.dtx,
% and the derived file totalcount.sty.
%
% \fi
-% \CheckSum{107}
+% \CheckSum{121}
%
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{totalcount.drv}[2008/02/25 v1.0 Total values of counters]
+\ProvidesFile{totalcount.drv}[2013/05/11 v1.0 Total values of counters]
\hbadness=9999 \newcount\hbadness \hfuzz=74pt % Make TeX shut up.
%\errorcontextlines=3
%
@@ -58,17 +61,12 @@
\newcommand*\csmarg[1]{\texttt{\char`\{#1\char`\}}}
\newcommand*\csoarg[1]{\texttt{\char`\[#1\char`\]}}
\newcommand*\version[2][]{$v#2$}
-\newcommand*\x{\discretionary{-}{}{}}
-\newcommand*\xx{\discretionary{}{}{}}
%
\usepackage{marvosym}
-\newcommand*\MARGINSYM[1]{\hskip 1sp \marginpar{\raggedleft\textcolor{blue}{{#1}}}}
-\newenvironment{info}{\par\bigskip\csname info*\endcsname}{\csname endinfo*\endcsname}
-\newenvironment{info*}%
- {\small
- \MARGINSYM{\vbox to \ht\strutbox{\LARGE\Info}}%
- \ignorespaces}%
- {\par}
+\makeatletter
+\newcommand*\INFO{\@ifstar{\@INFO{}}{\@INFO{\vbox to \ht\strutbox}}}
+\newcommand*\@INFO[1]{\MARGINSYM{#1{\LARGE\Info}}}
+\makeatother
%
\begin{document}
\DocInput{totalcount.dtx}
@@ -87,25 +85,110 @@
% This package has version number \fileversion, last revised \filedate.}}%^^A
% {The totalcount package}}
% \author{Axel Sommerfeldt\\
-% \url{http://sourceforge.net/projects/latex-caption/}}
+% \url{http://sourceforge.net/p/latex-caption/}}
% \date{\docdate}
% \maketitle
%
% \begin{abstract}
-% TODO\ldots
+% This package offers commands for typesetting total values of counters.
% \end{abstract}
%
-% \subsection*{Introduction}
-% Based on the idea here:\\
-% \url{http://texnik.dante.de/cgi-bin/mainFAQ.cgi?file=counter/counter#number}
-%
-% TODO\ldots
+% \iffalse\clearpage\fi
+% \setcounter{tocdepth}{2}
+% \tableofcontents
+%
+% \iffalse\clearpage\fi
+% \pagebreak[3]
+% \section{Loading the package}
+%
+% Load this package using
+% \begin{quote}
+% |\usepackage|\oarg{options}|{totalcount}|\quad,
+% \end{quote}
+% where \meta{options} is a list of names of \LaTeX\ counters, e.g.:
+% \begin{quote}
+% |\usepackage[figure,table]{totalcount}|\quad.
+% \end{quote}
+% \pagebreak[3]
+% This way the commands |\total|\-|figures| and |\total|\-|tables| will be defined which
+% are typesetting the total number of figures resp.~tables, e.g.:
+% \begin{quote}
+% |This document contains \totalfigures\ figures.|
+% \end{quote}
+% \pagebreak[3]
+% Furthermore the commands |\if|\-|total|\-|figures| and |\if|\-|total|\-|tables| are offered
+% for typesetting text only if the document contains figures resp.~tables at all, e.g.:
+% \begin{quote}
+% |\iftotalfigures|\\
+% | \listoffigures|\\
+% |\fi|
+% \end{quote}
+% \pagebreak[3]
+% This should work with other counters as well (for example |equation|),
+% but please note that using the |page| counter here is not supported.
+%
+% \pagebreak[3]
+% \section{\cs{DeclareTotalCounter}}
+% \begin{quote}
+% |\DeclareTotalCounter|\marg{counter}
+% \end{quote}
+% defines the commands |\total|\meta{counter}|s| and |\if|\-|total|\meta{counter}|s|.
+%
+% \pagebreak[3]
+% So in fact
+% \begin{quote}
+% |\usepackage[figure,table]{totalcount}|
+% \end{quote}
+% is identical to
+% \begin{quote}
+% |\usepackage{totalcount}|\\
+% |\DeclareTotalCounter{figure}|\\
+% |\DeclareTotalCounter{table}|
+% \end{quote}
+%
+% \pagebreak[3]
+% \section{Spacing}
+% The space after all \LaTeX\ commands without (optional or mandatory) arguments
+% like |\total|\-|figures| will not be typeset,
+% so these commands needs to be finished with an additional backslash or an empty
+% pair of curly braces right before the space character,
+% or to be finished with a tilde (swung dash),
+% so \TeX\ will be prevented from omitting the following space character.
+%
+% \pagebreak[3]
+% This could be avoided by defining new commands with the help of
+% the \package{xspace} package~\cite{xspace}.
+% When using \thispackage\ with the package option |xspace| this will be actually done,
+% so after
+% \begin{quote}
+% |\usepackage[figure,table,xspace]{totalcount}|
+% \end{quote}
+% code like
+% \begin{quote}
+% |This document contains \totalfigures figures.|
+% \end{quote}
+% will give correct results without a missing space between the total number of figures
+% and the word ``figures''.
+%
+% \pagebreak[3]
+% \section{Thanks}
+% I would like to thank Herbert Vo\ss\ since the implementation of this package is
+% based on an idea from him which could be found at
+% \url{http://texnik.dante.de/cgi-bin/mainFAQ.cgi?file=counter/counter#number}.
%
% \iffalse
% --------------------------------------------------------------------------- %
% \fi
%
-% \StopEventually{}%^^A
+% \StopEventually{%^^A
+% \begin{thebibliography}{9}
+% \bibitem{xspace}
+% David Carlisle and Morten H\o gholm:\\
+% \href{http://tug.ctan.org/tex-archive/macros/latex/contrib/xspace/}%
+% {\emph{The xspace package}},
+% 2009/10/20
+% \end{thebibliography}
+% }
%
% \iffalse
% --------------------------------------------------------------------------- %
@@ -174,7 +257,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{totalcount}[2008/02/27 v0.7 Total values of counters (AR)]
+\ProvidesPackage{totalcount}[2008/03/09 v1.0 Total values of counters (AR)]
% \end{macrocode}
%
% \subsection{Initial code}
@@ -185,24 +268,24 @@
\newcommand*\DeclareTotalCounter[1]{%
\@ifundefined{c@#1}%
{\PackageError{totalcount}{Undefined counter `#1'}\@ehc}%
- {\newcounter{total@#1}%
+ {\newcounter{totalcount@#1}%
\@namedef{total#1s}{\nfss@text{\reset@font\bfseries ??}}%
- \@namedef{total#1es}{\nfss@text{\reset@font\bfseries ??}}%
-% \PackageWarning{totalcounter}{Total counter `#1' on page \thepage
-% \space not\MessageBreak available yet}}%
- \@cons\total@counters{{#1}}}}
+ \@namedef{total#1es}{\@nameuse{total#1s}}%
+ \expandafter\newif\csname iftotal#1s\endcsname
+ \@namedef{iftotal#1es}{\@nameuse{iftotal#1s}}%
+ \@cons\totalcount@counters{{#1}}}}
\@onlypreamble\DeclareTotalCounter
% \end{macrocode}
% \begin{macrocode}
-\let\total@counters\@empty
+\let\totalcount@counters\@empty
% \end{macrocode}
% \end{macro}
%
% \subsection{Declaration of options}
%
% \begin{macrocode}
-\newcommand*\total@xspace{}
-\DeclareOption{xspace}{\renewcommand*\total@xspace{\xspace}}
+\newcommand*\totalcount@xspace{}
+\DeclareOption{xspace}{\renewcommand*\totalcount@xspace{\xspace}}
% \end{macrocode}
% \begin{macrocode}
\DeclareOption*{\expandafter\DeclareTotalCounter\expandafter{\CurrentOption}}
@@ -212,28 +295,41 @@
%
% \begin{macrocode}
\ProcessOptions\relax
-\ifx\total@xspace\@empty\else
+\ifx\totalcount@xspace\@empty\else
\RequirePackage{xspace}
\fi
% \end{macrocode}
%
% \subsection{Main code}
%
-% \begin{macro}{\total@addtocounter}
-% |\total@addtocounter|\marg{counter name}
+% \begin{macro}{\totalcount@addtocounter}
+% |\totalcount@addtocounter|\marg{counter name}
% \begin{macrocode}
-\newcommand*\total@addtocounter[1]{%
- \@ifundefined{c@total@#1}{}{%
- \addtocounter{total@#1}{\value{#1}}}}
+\newcommand*\totalcount@addtocounter[1]{%
+ \@ifundefined{c@totalcount@#1}{}{%
+ \addtocounter{totalcount@#1}{\value{#1}}}}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@stpelt}
% |\@stpelt|\marg{counter name}
% \begin{macrocode}
-\let\total@stpelt@ORI\@stpelt
+\let\totalcount@stpelt@ORI\@stpelt
\renewcommand*\@stpelt[1]{%
- \total@addtocounter{#1}\total@stpelt@ORI{#1}}
+ \totalcount@addtocounter{#1}%
+ \totalcount@stpelt@ORI{#1}}
+% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\totalcount@set}
+% |\totalcount@set|\marg{counter name}\marg{value}
+% \begin{macrocode}
+\newcommand*\totalcount@set[2]{%
+ \@ifundefined{c@totalcount@#1}{}{%
+ \global\@namedef{total#1s}{#2\totalcount@xspace}%
+ \ifnum#2=0\relax \else
+ \global\@nameuse{total#1strue}%
+ \fi}}
% \end{macrocode}
% \end{macro}
%
@@ -241,19 +337,23 @@
\AtBeginDocument{\AtEndDocument{%
\begingroup
\@tempswafalse
+ \if@filesw
+ \immediate\write\@mainaux{%
+ \string\providecommand\string\totalcount@set[2]{}}%
+ \fi
\def\@elt#1{%
- \total@addtocounter{#1}%
- \xdef\total@tempa{\the\value{total@#1}}%
- \xdef\total@tempb{\total@tempa\noexpand\total@xspace}%
- \expandafter\ifx\csname total#1s\endcsname\total@tempb \else
+ \totalcount@addtocounter{#1}%
+ \edef\totalcount@tempa{\the\value{totalcount@#1}}%
+ \expandafter\let\expandafter\totalcount@tempb\csname total#1s\endcsname
+ \@expandtwoargs\totalcount@set{#1}{\totalcount@tempa}%
+ \expandafter\ifx\csname total#1s\endcsname\totalcount@tempb \else
\@tempswatrue
\fi
\if@filesw
\immediate\write\@mainaux{%
- \string\gdef\string\total#1s{\total@tempa\string\total@xspace}%
- \string\gdef\string\total#1es{\total@tempa\string\total@xspace}}%
+ \string\totalcount@set{#1}{\totalcount@tempa}}%
\fi}%
- \total@counters
+ \totalcount@counters
\if@tempswa
\PackageWarningNoLine{totalcount}{%
Total counter(s) have changed.\MessageBreak