summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/caption
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 06:32:18 +0000
committerNorbert Preining <norbert@preining.info>2019-09-02 06:32:18 +0000
commitb1f0911e7afee09bb21000ac59dab2a0efc2c1e5 (patch)
tree4d476b8abbc5b5b2d78d49885644b01306a1bd9a /macros/latex/contrib/caption
parentf14a361bc56a46f4453b22584ae25043e1e83397 (diff)
CTAN sync 201909020632
Diffstat (limited to 'macros/latex/contrib/caption')
-rw-r--r--macros/latex/contrib/caption/CHANGELOG3
-rw-r--r--macros/latex/contrib/caption/README4
-rw-r--r--macros/latex/contrib/caption/caption.dtx64
-rw-r--r--macros/latex/contrib/caption/caption3.dtx13
-rw-r--r--macros/latex/contrib/caption/newfloat.dtx242
-rw-r--r--macros/latex/contrib/caption/subcaption.dtx81
-rw-r--r--macros/latex/contrib/caption/subcaption.pdfbin151597 -> 154500 bytes
7 files changed, 322 insertions, 85 deletions
diff --git a/macros/latex/contrib/caption/CHANGELOG b/macros/latex/contrib/caption/CHANGELOG
index be307142ca..68fb6c4a8c 100644
--- a/macros/latex/contrib/caption/CHANGELOG
+++ b/macros/latex/contrib/caption/CHANGELOG
@@ -164,6 +164,9 @@ v1.1 (2011/08/17)
v1.2 (2018/05/13)
- Optional argument values `B' and `T' added to the environments `subfigure' and `subtable'
+v1.3 (2019/08/31)
+- New command \subfloat for easy transition from the `subfig' package
+
newfloat package
----------------
diff --git a/macros/latex/contrib/caption/README b/macros/latex/contrib/caption/README
index 080ffb9761..baf9a932e9 100644
--- a/macros/latex/contrib/caption/README
+++ b/macros/latex/contrib/caption/README
@@ -1,7 +1,7 @@
==========================================================================
The `caption' package bundle
-Release 2019-08-29
+Release 2019-09-01
Copyright (C) 1994-2019 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
License: LPPL = LaTeX Project Public Licence
@@ -65,7 +65,7 @@ User Manual: ltcaption.pdf (English)
--------------------------------------------------------------------------
-The `subcaption' package v1.2 is a small package supporting typesetting
+The `subcaption' package v1.3 is a small package supporting typesetting
of sub-captions (by using the the sub-caption feature of the `caption'
package).
diff --git a/macros/latex/contrib/caption/caption.dtx b/macros/latex/contrib/caption/caption.dtx
index 5b838318d9..89abe25309 100644
--- a/macros/latex/contrib/caption/caption.dtx
+++ b/macros/latex/contrib/caption/caption.dtx
@@ -2,7 +2,7 @@
%
% This is file `caption.dtx'.
%
-% Copyright (C) 1994-2018 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
+% Copyright (C) 1994-2019 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
%
% --------------------------------------------------------------------------
%
@@ -25,7 +25,7 @@
% and the user manuals caption-deu.tex, caption-eng.tex, and caption-rus.tex.
%
% \fi
-% \CheckSum{3702}
+% \CheckSum{3694}
%
% \iffalse
%<*driver>
@@ -220,13 +220,13 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{caption}[2019/08/29 v3.3b Customizing captions (AR)]
+\ProvidesPackage{caption}[2019/09/01 v3.3d Customizing captions (AR)]
% \end{macrocode}
%
% \subsection{Loading the kernel}
%
% \begin{macrocode}
-\RequirePackage{caption3}[2018/09/12] % needs v1.8c or newer
+\RequirePackage{caption3}[2019/09/01] % needs v1.8d or newer
% \end{macrocode}
%
% \subsection{Check against incompatible document classes}
@@ -1914,6 +1914,7 @@
% \changes{v3.2a}{2011/08/16}{\cs{captionsetup} replaces with \cs{captionbox@settype} and \cs{caption@setposition}}
% \changes{v3.3}{2012/04/09}{Adapted to revised version of \cs{caption@withoptargs}}
% \changes{v3.3}{2017/03/19}{When used with fixed witdh the content will not be hboxed anymore}
+% \changes{v3.3c}{2019/09/01}{Adapted so it could be used by \cs{subfloat} offered by \package{subcaption}}
% A |\parbox| with contents and caption, separated by an invisible |\hrule|.
% \begin{macrocode}
\newcommand*\captionbox{%
@@ -1927,35 +1928,39 @@
% \end{macrocode}
% \begin{macrocode}
\long\def\caption@iibox#1#2#3[#4]{%
- \@testopt{\caption@iiibox{#1}{#2}{#3}{#4}}\captionbox@hj@default}
+ \@testopt{\caption@iiibox{#1}{#2}{#3}[{#4}]}\captionbox@hj@default}
% \end{macrocode}
% \begin{macrocode}
\long\def\caption@iibox@#1#2#3#4{%
\setbox\@tempboxa\hbox{#4}%
- \caption@iiibox{#1}{#2}{#3}{\wd\@tempboxa}[\captionbox@hj@default]{\unhbox\@tempboxa}}
+ \caption@iiibox{#1}{#2}{#3}[\wd\@tempboxa][\captionbox@hj@default]{\unhbox\@tempboxa}}
% \end{macrocode}
% \begin{macrocode}
-\long\def\caption@iiibox#1#2#3#4[#5]#6{%
+\long\def\caption@iiibox#1{%
+ \caption@iiiibox{#1}\vbox\vtop}
+% \end{macrocode}
+% \begin{macrocode}
+\long\def\caption@iiiibox#1#2#3#4#5[#6][#7]#8{%
\begingroup
#1*% set \caption@position
\caption@iftop{%
\endgroup
- \parbox[t]{#4}{%
+ \parbox[t]{#6}{%
#1\relax
\caption@setposition t%
- \vbox{\caption#2{#3}}%
+ #2{\caption#4{#5}}%
\captionbox@hrule
- \csname caption@hj@#5\endcsname
- #6}%
+ \csname caption@hj@#7\endcsname
+ #8}%
}{%
\endgroup
- \parbox[b]{#4}{%
+ \parbox[b]{#6}{%
#1\relax
\caption@setposition b%
- \csname caption@hj@#5\endcsname
- #6%
+ \csname caption@hj@#7\endcsname
+ #8%
\captionbox@hrule
- \vtop{\caption#2{#3}}}%
+ #3{\caption#4{#5}}}%
}}
% \end{macrocode}
% \begin{macrocode}
@@ -2642,25 +2647,23 @@
%
% \begin{macro}{\figure}
% \changes{v3.1f}{2007/12/17}{This re-definition for \class{beamer} document class added}
-% \begin{macro}{\table}
-% \changes{v3.1f}{2007/12/17}{This re-definition for \class{beamer} document class added}
-% We redefine |figure| \& |table| so our type-specific options will be used etc.
+% \changes{v3.3d}{2019/09/01}{This re-definition for \class{beamer} document class revised}
+% We redefine |figure| so our type-specific options will be used etc.
% \begin{macrocode}
- \expandafter\let\expandafter\caption@ORI@figure
- \csname\string\figure\endcsname
- \@namedef{\string\figure}[#1]{%
- \caption@ORI@figure[#1]%
- \caption@settype{figure}}
+ \let\caption@ORI@figure\figure
+ \def\figure{\caption@settype{figure}\caption@ORI@figure}
% \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\table}
+% \changes{v3.1f}{2007/12/17}{This re-definition for \class{beamer} document class added}
+% \changes{v3.3d}{2019/09/01}{This re-definition for \class{beamer} document class revised}
+% We redefine |table| so our type-specific options will be used etc.
% \begin{macrocode}
- \expandafter\let\expandafter\caption@ORI@table
- \csname\string\table\endcsname
- \@namedef{\string\table}[#1]{%
- \caption@ORI@table[#1]%
- \caption@settype{table}}
+ \let\caption@ORI@table\figure
+ \def\table{\caption@settype{table}\caption@ORI@table}
% \end{macrocode}
% \end{macro}
-% \end{macro}
%
% \begin{macrocode}
}{}
@@ -4309,6 +4312,7 @@
%
% \begin{macro}{\ivparpic}
+% \changes{v3.3}{2018/12/26}{Bugfix: Missing curly braces added}
% We need to set our \package{hyperref} anchor here.
% Not bullet-proof since we have to redefine |\noindent| here!
% \begin{macrocode}
@@ -4319,7 +4323,7 @@
\caption@defrostHref
\let\noindent\caption@ORI@noindent
\noindent}%
- \caption@ORI@ivparpic(#1,#2)(#3,#4)[#5][#6]{#7}%
+ \caption@ORI@ivparpic(#1,#2)(#3,#4)[{#5}][{#6}]{#7}%
\let\noindent\caption@ORI@noindent}%
% \end{macrocode}
% \end{macro}
diff --git a/macros/latex/contrib/caption/caption3.dtx b/macros/latex/contrib/caption/caption3.dtx
index e71c4daed1..bdffdcc66a 100644
--- a/macros/latex/contrib/caption/caption3.dtx
+++ b/macros/latex/contrib/caption/caption3.dtx
@@ -2,7 +2,7 @@
%
% This is file `caption3.dtx'.
%
-% Copyright (C) 1994-2018 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
+% Copyright (C) 1994-2019 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
%
% --------------------------------------------------------------------------
%
@@ -25,7 +25,7 @@
% and the user manuals caption-deu.tex, caption-eng.tex, and caption-rus.tex.
%
% \fi
-% \CheckSum{3954}
+% \CheckSum{3961}
%
% \iffalse
%<*driver>
@@ -198,7 +198,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{caption3}[2018/09/12 v1.8c caption3 kernel (AR)]
+\ProvidesPackage{caption3}[2019/09/01 v1.8d caption3 kernel (AR)]
% \end{macrocode}
%
% \subsection{Workaround for bug in package \package{arabtex}}
@@ -1892,7 +1892,8 @@
% \begin{macrocode}
\DeclareCaptionTextFormat{empty}{%
\caption@get@label#1\caption@makeanchor{}\@nil
- \caption@thelabel}
+ \caption@thelabel
+ \global\let\caption@thelabel\relax}
\long\def\caption@get@label#1\caption@makeanchor#2#3\@nil{%
\def\caption@tempa{#2}%
\ifx\caption@tempa\@empty
@@ -1914,6 +1915,7 @@
% \begin{macro}{\caption@getlabel}
% \changes{v1.0}{2011/09/03}{\cs{label} can have optional arguments now}
% \changes{v1.7}{2015/09/16}{Moved from \package{bicaption} package to \package{caption3}}
+% \changes{v1.8d}{2019/09/01}{Bugfix: Global definition of \cs{caption@thelabel} added}
% Gets the label command out of the (first) caption text and stores it to |\caption@thelabel|.
% \begin{macrocode}
\long\def\caption@getlabel#1\label#2#3\@nil{%
@@ -1946,6 +1948,9 @@
\l@addto@macro\caption@thelabel{[{#1}]}%
\caption@@getlabel#2\@nil}
% \end{macrocode}
+% \begin{macrocode}
+\let\caption@thelabel\relax
+% \end{macrocode}
% \end{macro}
%
% \subsection{Fonts}
diff --git a/macros/latex/contrib/caption/newfloat.dtx b/macros/latex/contrib/caption/newfloat.dtx
index fd283697dc..71484e60bc 100644
--- a/macros/latex/contrib/caption/newfloat.dtx
+++ b/macros/latex/contrib/caption/newfloat.dtx
@@ -25,7 +25,7 @@
% and the user manuals caption-deu.tex, caption-eng.tex, and caption-rus.tex.
%
% \fi
-% \CheckSum{1397}
+% \CheckSum{1605}
%
% \iffalse
%<*driver>
@@ -533,7 +533,7 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{newfloat}[2019/08/28 v1.1g Defining new floating environments (AR)]
+\ProvidesPackage{newfloat}[2019/09/01 v1.1k Defining new floating environments (AR)]
% \end{macrocode}
%
% \begin{macro}{\newfloat@Info}
@@ -548,6 +548,18 @@
% \end{macro}
% \end{macro}
%
+% \begin{macro}{\newfloat@Warning}
+% \begin{macro}{\newfloat@WarningNoLine}
+% |\newfloat@Warning|\marg{message}
+% \begin{macrocode}
+\newcommand*\newfloat@Warning[1]{%
+ \PackageWarning{newfloat}{#1}}
+\newcommand*\newfloat@WarningNoLine[1]{%
+ \newfloat@Warning{#1\@gobble}}
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
% \begin{macro}{\newfloat@Error}
% |\newfloat@Error|\marg{message}
% \begin{macrocode}
@@ -614,6 +626,7 @@
% \changes{v1.1}{2018/03/04}{Usage of \cs{ifdefined} replaced by \cs{@ifundefined} to improve compatibility with the \package{listings} package}
% \changes{v1.1b}{2018/12/26}{Bugfix: Missing curly braces added}
% \changes{v1.1c}{2019/01/10}{Bugfix: Support of \cs{autodot} fixed}
+% \changes{v1.1k}{2019/09/01}{Adapted to the \class{beamer} document class}
% |\DeclareFloatingEnvironment|\oarg{options}\marg{environment}\oarg{name}\oarg{list name}
% \begin{macrocode}
\newcommand*\DeclareFloatingEnvironment{%
@@ -665,9 +678,11 @@
\newfloat@ifundefined{flegtoc#2}{\@namedef{flegtoc#2}##1{}}%
% \end{macrocode}
% Define the floating environment\par
-% (If the \class{tufte} document class is loaded,
+% 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|.)
+% |\@float|, |\end@float|, |\@dblfloat|, and |\end@dblfloat|.\par
+% If the \class{beamer} document class is loaded,
+% |\beamer@float| and |\end@beamer@float| will be used.
% \begin{macrocode}
\ifcsname @tufte@float\endcsname
\newenvironment{#2}[1][htbp]%
@@ -677,8 +692,12 @@
{\begin{@tufte@float}[{##1}]{#2}{star}}%
{\end{@tufte@float}}%
\else
- \newenvironment{#2}{\@float{#2}}{\end@float}%
- \newenvironment{#2*}{\@dblfloat{#2}}{\end@dblfloat}%
+ \@ifclassloaded{beamer}{%
+ \newenvironment{#2}[1][]{\beamer@float{#2}}{\end@beamer@float}%
+ }{%
+ \newenvironment{#2}{\@float{#2}}{\end@float}%
+ \newenvironment{#2*}{\@dblfloat{#2}}{\end@dblfloat}%
+ }%
\fi
% \end{macrocode}
% Define the listing command |\listof|\meta{type}(|e|)|s|
@@ -1185,6 +1204,10 @@
% \begin{macrocode}
\providecommand*\@chapterlistsgap{10\p@}%
% \end{macrocode}
+% If the \package{dgruyter} package is loaded, the default gap is |13pt|.
+% \begin{macrocode}
+ \@ifpackageloaded{dgruyter}{\renewcommand*\@chapterlistsgap{13\p@}}{}%
+% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\@addchapterlistsgap}
@@ -1333,7 +1356,6 @@
\xdef\newfloat@addtocontents@ext{#1}}
% \end{macrocode}
% \end{macro}
-
%
% Process the package options:
% We use |\setkeys| here instead of |\ProcessOptions|.
@@ -1356,6 +1378,7 @@
%
% \begin{macro}{\newfloat@replace@chapter}
% \changes{v1.1f}{2019/08/25}{Parameter \meta{class name} added to macro}
+% \changes{v1.1i}{2019/08/31}{Local definition of \cs{if@chapnum} added}
% |\newfloat@replace@chapter|\marg{class name}\marg{original code}\marg{replacement code}\par
% tries to patch |\@chapter| so |\@add|\-|chapter|\-|lists|\-|gaps| will be supported.
% It checks for |\Hy@org@chapter|, too, since the original code will be stored here
@@ -1366,6 +1389,7 @@
\let\if@twocolumn\iffalse
\let\if@mainmatter\iffalse
\let\if@thema\iffalse
+ \let\if@chapnum\iffalse
\def\@tempa[##1]##2{#2}%
\ifx\@tempa\@chapter
\newfloat@InfoNoLine{Document class `#1' detected}%
@@ -1574,7 +1598,7 @@
\fi}
% \end{macrocode}
% \begin{macrocode}
- % boek(3).cls [2004/06/07 v2.1a NTG LaTeX document class]
+% boek(3).cls [2004/06/07 v2.1a NTG LaTeX document class]
\newfloat@replace@chapter{boek}{%
\ifnum \c@secnumdepth >\m@ne
\if@mainmatter
@@ -1720,7 +1744,8 @@
\else
\@makechapterhead{#2}%
\@afterheading
- \fi}{%
+ \fi
+}{%
\if@chapnum % war mal \ifnum \c@secnumdepth >\m@ne
\refstepcounter{chapter}%
\if@mainmatter
@@ -1744,6 +1769,81 @@
% \end{macrocode}
%
% \pagebreak[3]
+% \subsubsection{The dgruyter package}
+% \changes{v1.1j}{2019/08/31}{Extended support of \package{dgruyter} package added}
+%
+% \begin{macrocode}
+% dgruyter.sty [2017/09/19 v2.00 De Gruyter layout]
+\newfloat@replace@chapter{dgruyter}{%
+ \let\thesection\theinchapsection
+ \let\theequation\theinchapequation
+ \let\thefigure\theinchapfigure
+ \let\thetable\theinchaptable
+ \ifx\bookDOI\@undefined
+ \else
+ \@tempcnta\numexpr\componentd@i+\@ne\relax
+ \xdef\componentd@i{\the\@tempcnta}%
+ \xdef\@DOI{%
+ https://doi.org/\bookDOI
+ -\ifx\thepage\thefrontmatterpage2\else\ifnum\@tempcnta<100 0\fi\fi
+ \ifnum\@tempcnta<10 0\fi\componentd@i}%
+ \fi
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}%
+ \else
+ \addcontentsline{toc}{schapter}{#1}%
+ \fi
+ \else
+ \addcontentsline{toc}{schapter}{#1}%
+ \fi
+ \chaptermark{#1}%
+ \addtocontents{lof}{\protect\addvspace{13\p@}}%
+ \addtocontents{lot}{\protect\addvspace{13\p@}}%
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi
+}{%
+ \let\thesection\theinchapsection
+ \let\theequation\theinchapequation
+ \let\thefigure\theinchapfigure
+ \let\thetable\theinchaptable
+ \ifx\bookDOI\@undefined
+ \else
+ \@tempcnta\numexpr\componentd@i+\@ne\relax
+ \xdef\componentd@i{\the\@tempcnta}%
+ \xdef\@DOI{%
+ https://doi.org/\bookDOI
+ -\ifx\thepage\thefrontmatterpage2\else\ifnum\@tempcnta<100 0\fi\fi
+ \ifnum\@tempcnta<10 0\fi\componentd@i}%
+ \fi
+ \ifnum \c@secnumdepth >\m@ne
+ \if@mainmatter
+ \refstepcounter{chapter}%
+ \typeout{\@chapapp\space\thechapter.}%
+ \addcontentsline{toc}{chapter}{\protect\numberline{\thechapter}#1}%
+ \else
+ \addcontentsline{toc}{schapter}{#1}%
+ \fi
+ \else
+ \addcontentsline{toc}{schapter}{#1}%
+ \fi
+ \chaptermark{#1}%
+ \@addchapterlistsgaps
+ \if@twocolumn
+ \@topnewpage[\@makechapterhead{#2}]%
+ \else
+ \@makechapterhead{#2}%
+ \@afterheading
+ \fi}
+% \end{macrocode}
+%
+% \pagebreak[3]
% \subsubsection{Compatibility warning}
%
% \begin{macrocode}
@@ -1792,37 +1892,106 @@
% \end{macrocode}
%
% \pagebreak[3]
+% \subsection{Support of document classes}
+%
+% \subsubsection{The beamer document class}
+%
+% \begin{macro}{\beamer@float}
+% \changes{v1.1k}{2019/09/01}{This macro added}
+% Unfortunately the \class{beamer} document class does not offer
+% |\beamer@float| and |\end@beamer@float| (yet), so we have to define them
+% for ourself.
+% (This code was taken from beamerbaselocalstructure.sty [2019/07/23 v3.56] and adapted.)
+% \begin{macrocode}
+\ifcsname beamer@float\endcsname \else
+% \end{macrocode}
+% \begin{macrocode}
+ \def\beamer@float#1{%
+ \ifcsname caption@settype\endcsname
+ \caption@settype{#1}%
+ \else
+ \def\@captype{#1}%
+ \fi
+ \par\nobreak\begin{center}\nobreak}
+% \end{macrocode}
+% \begin{macrocode}
+ \def\end@beamer@float{%
+ \par\nobreak\end{center}}
+% \end{macrocode}
+% \begin{macrocode}
+\fi
+% \end{macrocode}
+% \end{macro}
+%
+% \pagebreak[3]
% \subsection{Support of other packages}
%
-% \begin{macro}{\newfloat@ForEachNew}
-% \changes{v1.1e}{2019/03/17}{This macro revised; uses \cs{ForEachFloatingEnvironment} now}
-% |\newfloat@ForEachNew|\marg{command}\marg{code}
+% \begin{macro}{\newfloat@IfPackageLoaded}
+% \changes{v1.1e}{2019/03/17}{This macro revised}
+% \changes{v1.1h}{2019/08/31}{This macro revised again and renamed from \cs{newfloat@ForEachNew} to \cs{newfloat@IfPackageLoaded}}
+% |\newfloat@IfPackageLoaded|\marg{package name}\marg{command}\marg{code}
% will execute the given code for every floating environment defined with
-% |\Declare|\-|Floating|\-|Environment| if \meta{command} is defined.
-% This will be tried |\At|\-|Begin|\-|Document| additionally so the affected
-% package could be loaded after \thispackage.
+% |\Declare|\-|Floating|\-|Environment| if \meta{command} is not defined yet.
+% (If \meta{command} is already defined a warning will be issued.)
+% This will be tried |\At|\-|Begin|\-|Document| additionally so the affected package could
+% be loaded after \thispackage.
+% \begin{macrocode}
+\newcommand\newfloat@IfPackageLoaded[3]{%
+ \@ifpackageloaded{#1}{%
+ \newfloat@@IfPackageLoaded{#1}{#2}{#3}%
+ }{%
+ \AtBeginDocument{%
+ \@ifpackageloaded{#1}{%
+ \newfloat@@IfPackageLoaded{#1}{#2}{#3}%
+ }{}}%
+ }}
+\@onlypreamble\newfloat@IfPackageLoaded
+% \end{macrocode}
+% \begin{macrocode}
+\newcommand\newfloat@@IfPackageLoaded[3]{%
+ \newfloat@InfoNoLine{`#1' package detected}%
+ % Execute code for every previous \DeclareFloatingEnvironment
+ \def\@elt##1{\newfloat@@@IfPackageLoaded{#1}{#2}{#3}}%
+ \newfloat@@list
+ \let\@elt\relax
+ % Execute code for every future \DeclareFloatingEnvironment
+ \newfloat@addtohook{\newfloat@@@IfPackageLoaded{#1}{#2}{#3}}}
+\@onlypreamble\newfloat@@IfPackageLoaded
+% \end{macrocode}
% \begin{macrocode}
-\newcommand\newfloat@ForEachNew[2]{%
- \ifcsname#1\endcsname
- \ForEachFloatingEnvironment{#2}%
+\newcommand\newfloat@@@IfPackageLoaded[3]{%
+ \ifcsname#2\endcsname
+ \newfloat@WarningNoLine{%
+ Command \@backslashchar#2 already defined.\MessageBreak
+ (`#1' package support)}%
\else
- \AtBeginDocument{%
- \ifcsname#1\endcsname
- \ForEachFloatingEnvironment{#2}%
- \fi}%
- \fi}%
-\@onlypreamble\newfloat@ForEachNew
+ #3%
+ \fi}
+\@onlypreamble\newfloat@@@IfPackageLoaded
% \end{macrocode}
% \end{macro}
%
% \pagebreak[3]
+% \subsubsection{\package{dgruyter}}
+%
+% The De Gruyter layout package (for preparing books for Walter de Gruyter GmbH)
+% is defining |\plist@figure| and |\plist@table|, and expects this to be
+% defined for other floating environments as well.
+% (This will be used as prefix for the ``List of''.)
+% \begin{macrocode}
+\newfloat@IfPackageLoaded{dgruyter}{plist@#1}{%
+ \expandafter\newcommand\csname plist@#1\endcsname{%
+ \@nameuse{#1name}\space}}
+% \end{macrocode}
+%
+% \pagebreak[3]
% \subsubsection{\package{float}}
%
% If the \package{float} package is used we fill up |\float@exts| with our file
% extensions, too. Since this list will be used for inserting chapters gaps
% we only add the ones which are configured for chapters gaps on.
-%% \begin{macrocode}
-\newfloat@ForEachNew{float@exts}{%
+% \begin{macrocode}
+\newfloat@IfPackageLoaded{float}{newfloat@undefined}{%
\@nameuse{@ifchapterlistsgap@#1}{% if switched on
\let\float@do=\relax
\edef\@tempa{%
@@ -1835,7 +2004,7 @@
%
% We define a FP-variant of new floating environments here.
% \begin{macrocode}
-\newfloat@ForEachNew{FP@floatBegin}{%
+\newfloat@IfPackageLoaded{fltpage}{FP#1}{%
\newcounter{FP@#1C}%
\newenvironment{FP#1}{\FP@floatBegin{#1}}{\FP@floatEnd}}
% \end{macrocode}
@@ -1857,7 +2026,7 @@
%
% We define a sideways-variant of new floating environments here.
% \begin{macrocode}
-\newfloat@ForEachNew{@rotfloat}{%
+\newfloat@IfPackageLoaded{rotating}{sideways#1}{%
\newenvironment{sideways#1}{\@rotfloat{#1}}{\end@rotfloat}%
\newenvironment{sideways#1*}{\@rotdblfloat{#1}}{\end@rotdblfloat}}
% \end{macrocode}
@@ -1878,7 +2047,7 @@
\@onlypreamble\newfloat@For@SC
% \end{macrocode}
% \begin{macrocode}
-\newfloat@ForEachNew{SC@float}{%
+\newfloat@IfPackageLoaded{sidecap}{SC#1}{%
\expandafter\newfloat@For@SC\csname SC@#1@vpos\endcsname{#1}}
% \end{macrocode}
% \end{macro}
@@ -1888,23 +2057,10 @@
%
% We define a wrap-variant of new floating environments here.
% \begin{macrocode}
-\newfloat@ForEachNew{wrapfloat}{%
+\newfloat@IfPackageLoaded{wrapfig}{wrap#1}{%
\newenvironment{wrap#1}{\wrapfloat{#1}}{\endwrapfloat}}
% \end{macrocode}
%
-% \pagebreak[3]
-% \subsubsection{\package{dgruyter}}
-%
-% The De Gruyter layout package (for preparing books for Walter de Gruyter GmbH)
-% is defining |\plist@figure| and |\plist@table|, and expects this to be
-% defined for other floating environments as well.
-% (This will be used as prefix for the ``List of''.)
-% \begin{macrocode}
-\newfloat@ForEachNew{plist@figure}{%
- \expandafter\newcommand\csname plist@#1\endcsname{%
- \@nameuse{#1name}\space}}
-% \end{macrocode}
-%
% \iffalse
%</package>
% \fi
diff --git a/macros/latex/contrib/caption/subcaption.dtx b/macros/latex/contrib/caption/subcaption.dtx
index fc394d6b04..0eb2a144fc 100644
--- a/macros/latex/contrib/caption/subcaption.dtx
+++ b/macros/latex/contrib/caption/subcaption.dtx
@@ -2,7 +2,7 @@
%
% This is file `subcaption.dtx'.
%
-% Copyright (C) 2007-2018 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
+% Copyright (C) 2007-2019 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
%
% --------------------------------------------------------------------------
%
@@ -25,12 +25,12 @@
% and the user manuals caption-deu.tex, caption-eng.tex, and caption-rus.tex.
%
% \fi
-% \CheckSum{178}
+% \CheckSum{235}
%
% \iffalse
%<*driver>
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesFile{subcaption.drv}[2018/05/13 v1.2 Adds a sub-caption feature to the caption package]
+\ProvidesFile{subcaption.drv}[2019/08/31 v1.3 Adds a sub-caption feature to the caption package]
\hbadness=9999 \newcount\hbadness \hfuzz=74pt % Make TeX shut up.
%\errorcontextlines=3
%
@@ -84,7 +84,7 @@
\newenvironment{background*}{\small\MARGINSYM{\Mountain}\ignorespaces}{\par}
%
\newcommand*\MARGINSYM[1]{\hskip 1sp \marginpar{\raggedleft\textcolor{blue}{{#1}}}}
-%\newcommand*\NEW[2]{}%\hskip 1sp \marginpar{\footnotesize\sffamily\raggedleft#1\\#2}}
+\newcommand*\NEW[2]{\MARGINSYM{\vskip2pt\footnotesize#1\\#2}}
%
\begin{document}
\DocInput{subcaption.dtx}
@@ -401,6 +401,7 @@
% \See{\Ref{hypcap}}
% \end{itemize}
%
+% \NEWfeature{v1.2}
% Beside the \meta{inner-pos} values of `c', `t', and `b', \thispackage\ also offers the
% values `T' and `B' additionally which align the |sub|\-|figure| at the
% very top resp.~bottom. (In contrast `t' and `b' align the |sub|\-|figure| at the
@@ -597,6 +598,7 @@
%
% \pagebreak[3]
% \subsection{The \cs{subref} command}
+% \label{subref}
%
% While |\ref|\marg{key} (and |\ref*|\marg{key}, if the \package{hyperref}
% package is used) usually gives a combined result representing the main
@@ -625,8 +627,10 @@
%
% \pagebreak[3]
% \subsection{The \opt{subrefformat=} option}
+% \label{subrefformat}
%
% \DescribeMacro{subrefformat=}
+% \NEWfeature{v1.1}
% By applying |\Declare|\-|Caption|\-|Sub|\-|Type|, or by redefining |\the|\-\meta{counter}
% and |\p@|\-\meta{counter}, you will change the look of references typeset with |\ref|
% \emph{and} |\sub|\-|ref|.
@@ -652,6 +656,7 @@
%
% \DescribeMacro\phantomsubcaption
% \DescribeMacro\phantomcaption
+% \NEWfeature{v1.1}
% If you don't want to give a sub-figure a caption, because the picture itself
% already contains the caption, or for some other reason, you can use the command
% \begin{quote}
@@ -770,6 +775,19 @@
% {\small(See also the documentation of the \package{caption} package,
% sections about \package{hyperref} \& \package{hypcap}.)}
%
+% \pagebreak[3]
+% \section{The \cs{subfloat} command}
+% \label{subfloat}
+%
+% \DescribeMacro\subfloat
+% \NEWfeature{v1.3}
+% To allow a smoother transition from the \package{subfig} package
+% (which is unmaintained for over 14 years)
+% this package also offers |\sub|\-|float| with the same syntax:
+% \begin{quote}
+% |\subfloat|\oarg{list\_entry}\oarg{sub-caption}\marg{body}
+% \end{quote}
+%
% \iffalse
% --------------------------------------------------------------------------- %
% \fi
@@ -903,14 +921,14 @@
%
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{subcaption}[2018/05/13 v1.2 Sub-captions (AR)]
+\ProvidesPackage{subcaption}[2019/09/01 v1.3a Sub-captions (AR)]
% \end{macrocode}
%
% \subsection{Initial code}
%
% Since we base on the \package{caption} package we load it here.
% \begin{macrocode}
-\RequirePackage{caption}[2018/05/11] % needs v3.4 or newer
+\RequirePackage{caption}[2019/09/01] % needs v3.3c or newer
% \end{macrocode}
%
% \begin{macro}{\subcaption@CheckCompatibility}
@@ -1187,6 +1205,57 @@
% \end{macrocode}
% \end{macro}
%
+% \subsubsection{The \cs{subfloat} command}
+%
+% \begin{macro}{\subfloat}
+% \changes{v0.4}{2008/03/01}{This macro added}
+% \changes{v1.0c}{2011/01/22}{This macro removed since it's too incompatible with the one from \package{subfig}}
+% \changes{v1.3}{2019/08/31}{This macro re-added and revised}
+% \changes{v1.3a}{2019/09/01}{\cs{ignorespaces} copied from \cs{\sf@@@subfloat}}
+% |\subfloat|\oarg{list\_entry}\oarg{sub-caption}\marg{body}\par
+% If \meta{sub-caption} is given, we map this to |\sub|\-|caption|\-|box|
+% but transfer the |\label| from \meta{body} to \meta{sub-caption}.
+% If not, we do the same as |\sub|\-|caption|\-|box| does, but use |\phantom|\-|caption| instead of |\caption|.
+% In both cases we do a |\ignore|\-|spaces| at the end since the original implementation of |\sub|\-|float| does this, too.
+% \begin{macrocode}
+\caption@ifundefined\subfloat{%
+% \end{macrocode}
+% \begin{macrocode}
+ \newcommand*\subfloat{%
+ \@ifnextchar[\@subfloat\subfloat@}
+% \end{macrocode}
+% \begin{macrocode}
+ \long\def\@subfloat[#1]{%
+ \@ifnextchar[{\@@subfloat{#1}}{\@@@subfloat\subcaptionbox{#1}}}
+% \end{macrocode}
+% \begin{macrocode}
+ \long\def\@@subfloat#1[#2]{\@@@subfloat{\subcaptionbox[{#1}]}{#2}}
+% \end{macrocode}
+% \begin{macrocode}
+ \newcommand\@@@subfloat[3]{%
+ \caption@getlabel#3\label{}\@nil
+ #1{#2\caption@thelabel}{\let\label\caption@gobble#3}%
+ \global\let\caption@thelabel\relax
+ \ignorespaces}
+% \end{macrocode}
+% \begin{macrocode}
+ \newcommand*\subfloat@[1]{%
+ \setbox\@tempboxa\hbox{#1}%
+ \caption@iiiibox\setcaptionsubtype
+ {\phantomcaption\@gobble}{\phantomcaption\@gobble}% no box with \caption
+ {}% no optional arguments for \caption
+ {}% no sub-caption
+ [\wd\@tempboxa][\caption@hj@default]%
+ {\unhbox\@tempboxa}%
+ \ignorespaces}
+% \end{macrocode}
+% \begin{macrocode}
+}{%
+ \PackageInfo{subcaption}{\protect\subfloat\space is already defined\@gobble}
+}
+% \end{macrocode}
+% \end{macro}
+%
% \iffalse
%</package>
% \fi
diff --git a/macros/latex/contrib/caption/subcaption.pdf b/macros/latex/contrib/caption/subcaption.pdf
index 3333facb5d..70b4cde42d 100644
--- a/macros/latex/contrib/caption/subcaption.pdf
+++ b/macros/latex/contrib/caption/subcaption.pdf
Binary files differ