You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
tex-compiler/texmf-dist/tex/latex/caption/subcaption.sty

170 lines
5.8 KiB

%%
%% This is file `subcaption.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% subcaption.dtx (with options: `package')
%%
%% Copyright (C) 1994-2020 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
%%
%% https://gitlab.com/axelsommerfeldt/caption
%%
%% --------------------------------------------------------------------------
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3 or later is part of all distributions of LaTeX
%% version 2003/12/01 or later.
%%
%% This work has the LPPL maintenance status "maintained".
%%
%% This Current Maintainer of this work is Axel Sommerfeldt.
%%
%% This work consists of the files
%% caption.ins, caption.dtx, caption2.dtx, caption3.dtx,
%% bicaption.dtx, ltcaption.dtx, subcaption.dtx, totalcount.dtx,
%% the derived files
%% caption.sty, caption2.sty, caption3.sty,
%% bicaption.sty, ltcaption.sty, subcaption.sty, totalcount.sty,
%% and the user manuals
%% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%%
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
\ProvidesPackage{subcaption}[2020/01/22 v1.3d Sub-captions (AR)]
\RequirePackage{caption}[2020/01/03] % needs v3.4h or newer
\newcommand\subcaption@CheckCompatibility{%
\@ifundefined{caption@ifcompatibility}{}{%
\caption@ifcompatibility{%
\caption@Error{%
The `subcaption' package does not work correctly\MessageBreak
in compatibility mode}}{}}%
\@ifpackageloaded{subfigure}{%
\PackageError{subcaption}%
{This package can't be used in cooperation\MessageBreak
with the subfigure package}%
{\subcaption@EH}%
\endinput}{}%
\@ifpackageloaded{subfig}{%
\PackageError{subcaption}%
{This package can't be used in cooperation\MessageBreak
with the subfig package}%
{\subcaption@EH}%
\endinput}{}%
}
\newcommand*\subcaption@EH{%
If you do not understand this error, please take a closer look\MessageBreak
at the documentation of the `subcaption' package, especially the\MessageBreak
section about errors.\MessageBreak\@ehc}
\subcaption@CheckCompatibility
\caption@AtBeginDocument{%
\subcaption@CheckCompatibility
\let\subcaption@CheckCompatibility\@undefined
\let\subcaption@EH\@undefined
}
\caption@ForEachType{\DeclareCaptionSubType{#1}}
\caption@ifundefined\newsubfloat{}{%
\renewcommand*\newsubfloat{\DeclareCaptionSubType}}
\def\subcaption{%
\caption@iftype
{\setcaptionsubtype*\caption}%
{\caption@Error{\noexpand\subcaption outside float}%
\caption@gobble}}%
\g@addto@macro\caption@subtypehook{%
\let\subcaption\caption}
\newcommand*\phantomsubcaption{%
\caption@iftype
{\setcaptionsubtype*\phantomcaption}%
{\caption@Error{\noexpand\phantomsubcaption outside float}}}%
\g@addto@macro\caption@subtypehook{%
\let\phantomsubcaption\phantomcaption}
\caption@For{subtypelist}{%
\newenvironment{sub#1}%
{\@ifnextchar[%]
\subcaption@iminipage
{\subcaption@iminipage[c]}}%
{\subcaption@endminipage
\endminipage}}%
\def\subcaption@iminipage[#1]{%
\caption@withoptargs{\subcaption@iiminipage{#1}}}
\newcommand*\subcaption@iiminipage[3]{%
\let\subcaption@endminipage\@empty
\if#1B%
\minipage[b]#2{#3}%
\def\subcaption@endminipage{\vspace{0pt}}%
\else\if#1T%
\minipage[t]#2{#3}%
\vspace{0pt}%
\else
\minipage[#1]#2{#3}%
\fi\fi
\@subfloatboxreset
\setcaptionsubtype\relax}
\providecommand*\@subfloatboxreset{}
\newcommand*\subcaptionbox{%
\caption@withoptargs{\caption@ibox\setcaptionsubtype}}
\g@addto@macro\caption@subtypehook{%
\ifx\label\subcaption@label \else
\let\subcaption@ORI@label\label
\let\label\subcaption@label
\fi}
\newcommand*\subcaption@label{%
\caption@withoptargs\subcaption@@label}
\newcommand*\subcaption@@label[2]{%
\@bsphack\begingroup
\subcaption@ORI@label#1{#2}%
\let\SK@\@gobbletwo
\protected@edef\@currentlabel{\csname thesub\@captype\endcsname}%
\subcaption@ORI@label#1{sub@#2}%
\endgroup\@esphack}
\DeclareRobustCommand*\subref{%
\@ifstar
{\caption@withoptargs\subcaption@ref*}%
{\caption@withoptargs\@subref}}
\newcommand*\@subref[2]{%
\caption@ifundefined\hyperref
{\subcaption@ref{#1}{#2}}%
{\hyperref[{#2}]{\subcaption@ref{*#1}{#2}}}}
\newcommand*\subcaption@ref[2]{%
\begingroup
\caption@setoptions{sub}%
\subcaption@reffmt\p@subref{\ref#1{sub@#2}}%
\endgroup}
\newcommand*\p@subref{}
\DeclareCaptionOption{subrefformat}{\subcaption@setrefformat{#1}}
\newcommand*\subcaption@setrefformat[1]{%
\@ifundefined{caption@lfmt@#1}%
{\caption@Error{Undefined label format `#1'}}%
{\expandafter\let\expandafter\subcaption@reffmt\csname caption@lfmt@#1\endcsname}}
\subcaption@setrefformat{simple}
\caption@SetupOptions{subcaption}{\captionsetup[sub]{#2}}%
\caption@ExecuteOptions{subcaption}{%
size=smaller,labelformat=parens,labelsep=space,skip=6pt,list=0,hypcap=0}
\caption@ProcessOptions*{subcaption}
\def\subfloat{%
\@ifnextchar[\@subfloat\subfloat@}
\long\def\@subfloat[#1]{%
\@ifnextchar[{\@@subfloat{#1}}{\@@@subfloat\subcaptionbox{#1}}}
\long\def\@@subfloat#1[#2]{%
\@@@subfloat{\subcaptionbox[{#1}]}{#2}}
\long\def\@@@subfloat#1#2#3{%
\caption@getlabel#3\label{}\@nil
#1{#2\caption@thelabel}{\let\label\caption@gobble#3}%
\global\let\caption@thelabel\relax
\ignorespaces}
\def\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}
\endinput
%%
%% End of file `subcaption.sty'.