%% %% This is file `caption2.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% caption2.dtx (with options: `package') %% %% Copyright (C) 1994-2011 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm) %% %% -------------------------------------------------------------------------- %% %% 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, and newfloat.dtx, %% the derived files caption.sty, caption2.sty, caption3.sty, %% bicaption.sty, ltcaption.sty, subcaption.sty, and newfloat.sty, %% and the user manuals caption-deu.tex, caption-eng.tex, and caption-rus.tex. %% \NeedsTeXFormat{LaTeX2e}[1994/12/01] \ProvidesPackage{caption2}[2011/08/12 v2.2d Customising captions (AR)] \PackageWarning{caption2}{% ****************************************************\MessageBreak THIS PACKAGE IS OBSOLETE:\MessageBreak This package attempts to provide an `caption2'\MessageBreak package v2.0/2.1 author environment so that OLD\MessageBreak documents can be successfully processed. It should\MessageBreak NOT be used for NEW documents! New documents should\MessageBreak use the regular `caption' package v3.x instead.\MessageBreak ****************************************************\@gobbletwo}% \RequirePackage{caption3}[2007/09/01] % needs v3.1 or newer \@ifpackageloaded{caption}{% \PackageError{caption2}{% You can't use both, the (current) caption *and*\MessageBreak the (obsolete) caption2 package}\caption@eh \endinput }{} \newcommand*\captionlabeldelim{} \newcommand*\captionlabelsep{} \newcommand*\ifcaptionwidth{\ifdim\captionwidth>\z@} \let\captionindent\caption@indent \def\ifcaptionlabel{% \ifcaption@star \@tempswafalse \else \@tempswatrue \fi \if@tempswa} \def\captionlabeltrue{\caption@starfalse} \def\captionlabelfalse{\caption@startrue} \def\ifonelinecaptions{% \caption@ifslc{\@tempswatrue}{\@tempswafalse}% \if@tempswa} \def\onelinecaptionstrue{\caption@setbool{slc}{1}} \def\onelinecaptionsfalse{\caption@setbool{slc}{0}} \newif\ifignoreLTcapwidth \newcommand*\normalcaptionparams{% \let\captionsize\@empty \renewcommand*\captionfont{\captionsize}% \let\captionlabelfont\@empty \renewcommand*\captionlabeldelim{:}% \renewcommand*\captionlabelsep{\space}% \setcaptionmargin\z@ \setlength\captionindent\z@ \onelinecaptionstrue} \newcommand*\defcaptionstyle[1]{% \@namedef{caption@@#1}} \newcommand*\newcaptionstyle[1]{% \expandafter\ifx\csname caption@@#1\endcsname\relax \expandafter\defcaptionstyle \else \PackageError{caption2}{Caption style `#1' already defined}{\caption@eh}% \expandafter\@gobbletwo \fi {#1}} \newcommand*\renewcaptionstyle[1]{% \expandafter\ifx\csname caption@@#1\endcsname\relax \PackageError{caption2}{Caption style `#1' undefined}{\caption@eh}% \expandafter\@gobbletwo \else \expandafter\defcaptionstyle \fi {#1}} \newcommand*\dummycaptionstyle[2]{% \defcaptionstyle{#1}{% \expandafter\ifx\csname caption@@\caption@style\expandafter\endcsname% \csname caption@@#1\endcsname \PackageError{caption2}{You can't use the caption style `#1' directy}{% The caption style `#1' is only a dummy and does not really exists.% \MessageBreak You have to redefine it (with \protect\renewcaptionstyle) before you can select\MessageBreak it with \protect\captionstyle. \space\caption@eh}% \else #2\usecaptionstyle\caption@style \fi}} \newcommand*\captionstyle[1]{% \expandafter\ifx\csname caption@@#1\endcsname\relax \PackageError{caption2}{Undefined caption style `#1'}{\caption@eh}% \else \def\caption@style{#1}% \fi} \newcaptionstyle{normal}{\caption@make{normal}} \newcaptionstyle{center}{\caption@make{center}} \newcaptionstyle{centerlast}{\caption@make{centerlast}} \newcaptionstyle{flushleft}{\caption@make{flushleft}} \newcaptionstyle{flushright}{\caption@make{flushright}} \newcaptionstyle{hang}{\caption@make{hang}} \newcaptionstyle{hang+center}{\caption@make{hang@center}} \newcaptionstyle{hang+centerlast}{\caption@make{hang@centerlast}} \newcaptionstyle{hang+flushleft}{\caption@make{hang@flushleft}} \newcaptionstyle{indent}{\caption@make{indent}} \newcommand*\caption@makecaption[1]{% \usecaptionmargin \ifcaptionlabel \def\caption@label{% {\captionlabelfont\captionlabel\captionlabeldelim}\captionlabelsep}% \else \let\caption@label\@empty \fi \captionfont \onelinecaption {\caption@label\captiontext}% {\parbox[b]\captionlinewidth{\strut\@nameuse{caption@@@#1}\par}\par}} \newcommand*\caption@@@normal{% \caption@label\captiontext} \newcommand*\caption@@@center{% \centering\caption@label\captiontext}% \newcommand*\caption@@@centerlast{% \centerlast\caption@label\captiontext} \newcommand*\caption@@@flushleft{% \raggedright\caption@label\captiontext}% \newcommand*\caption@@@flushright{% \raggedleft\caption@label\captiontext}% \newcommand*\caption@@@hang{% \sbox\@tempboxa{\caption@label}% \hangindent\wd\@tempboxa\noindent \usebox\@tempboxa\caption@hangplus\captiontext} \newcommand*\caption@hangplus{} \newcommand*\caption@@@hang@center{% \let\caption@hangplus\centering\caption@@@hang} \newcommand*\caption@@@hang@centerlast{% \let\caption@hangplus\centerlast\caption@@@hang} \newcommand*\caption@@@hang@flushleft{% \let\caption@hangplus\raggedright\caption@@@hang} \newcommand*\caption@@@indent{% \hangindent\captionindent\noindent \caption@label\captiontext} \DeclareOption{normal}{\captionstyle{normal}} \DeclareOption{center}{\captionstyle{center}} \DeclareOption{centerlast}{\captionstyle{centerlast}} \DeclareOption{flushleft}{\captionstyle{flushleft}} \DeclareOption{flushright}{\captionstyle{flushright}} \DeclareOption{anne}{\ExecuteOptions{centerlast}} \DeclareOption{hang}{\captionstyle{hang}} \DeclareOption{hang+center}{\captionstyle{hang+center}} \DeclareOption{hang+centerlast}{\captionstyle{hang+centerlast}} \DeclareOption{hang+flushleft}{\captionstyle{hang+flushleft}} \DeclareOption{isu}{\ExecuteOptions{hang}} \DeclareOption{indent}{\captionstyle{indent}} \DeclareOption{scriptsize}{\g@addto@macro\captionsize\scriptsize} \DeclareOption{footnotesize}{\g@addto@macro\captionsize\footnotesize} \DeclareOption{small}{\g@addto@macro\captionsize\small} \DeclareOption{normalsize}{\g@addto@macro\captionsize\normalsize} \DeclareOption{large}{\g@addto@macro\captionsize\large} \DeclareOption{Large}{\g@addto@macro\captionsize\Large} \DeclareOption{up}{\g@addto@macro\captionlabelfont\upshape} \DeclareOption{it}{\g@addto@macro\captionlabelfont\itshape} \DeclareOption{sl}{\g@addto@macro\captionlabelfont\slshape} \DeclareOption{sc}{\g@addto@macro\captionlabelfont\scshape} \DeclareOption{md}{\g@addto@macro\captionlabelfont\mdseries} \DeclareOption{bf}{\g@addto@macro\captionlabelfont\bfseries} \DeclareOption{rm}{\g@addto@macro\captionlabelfont\rmfamily} \DeclareOption{sf}{\g@addto@macro\captionlabelfont\sffamily} \DeclareOption{tt}{\g@addto@macro\captionlabelfont\ttfamily} \DeclareOption{oneline}{\onelinecaptionstrue} \DeclareOption{nooneline}{\onelinecaptionsfalse} \newcommand*\caption@setpackage[1]{\@namedef{caption@pkt@#1}} \DeclareOption{float}{% \caption@twozerofalse\caption@setpackage{float}{1}} \DeclareOption{longtable}{% \caption@twozerofalse\caption@setpackage{longtable}{1}} \DeclareOption{subfigure}{% \caption@twozerofalse\caption@setpackage{subfigure}{1}} \DeclareOption{none}{\caption@twozerofalse \caption@setpackage{float}{0}\caption@setpackage{longtable}{0}% \caption@setpackage{subfigure}{0}} \DeclareOption{all}{\ExecuteOptions{float,longtable,subfigure}} \newif\ifcaption@ruled \DeclareOption{ruled}{\caption@ruledtrue} \DeclareOption{boxed}{} \DeclareOption{ignoreLTcapwidth}{\ignoreLTcapwidthtrue} \DeclareOption{debug}{\captionsetup{debug}} \newif\ifcaption@twozero \normalcaptionparams \ExecuteOptions{none,normal} \caption@twozerotrue \ProcessOptions* \ifcaption@twozero \PackageInfo{caption2}{Running in caption2 v2.0 compatibility mode} \fi \def\captionof{\@ifstar{\caption@of{\caption*}}{\caption@of\caption}} \newcommand*\caption@of[2]{\def\@captype{#2}#1} \caption@ifundefined\abovecaptionskip{% \newlength\abovecaptionskip\setlength\abovecaptionskip{10\p@}}{} \caption@ifundefined\belowcaptionskip{% \newlength\belowcaptionskip\setlength\belowcaptionskip{0\p@}}{} \newdimen\captionlinewidth \newdimen\realcaptionwidth \newcommand*\usecaptionmargin{% \ifcaptionwidth \leftskip\captionlinewidth \advance\leftskip by -\captionwidth \divide\leftskip by 2 \rightskip\leftskip \captionlinewidth\captionwidth \else \leftskip\captionmargin \rightskip\captionmargin \advance\captionlinewidth by -2\captionmargin \fi \realcaptionwidth\captionlinewidth} \newcommand\onelinecaption[1]{% \let\next\@firstofone \ifonelinecaptions \sbox\@tempboxa{#1}% \ifdim\wd\@tempboxa >\captionlinewidth \else \def\next{{\centering\usebox\@tempboxa\par}\@gobble}% \fi \fi\next} \newcommand*\usecaptionstyle[1]{% \caption@ifundefined\captiontext{% \PackageError{caption2}{You can't use \protect#1 in normal text}{The usage of \protect#1 is only allowed inside code declared with\MessageBreak \protect\defcaptionstyle, \protect\newcaptionstyle \space or \protect\renewcaptionstyle. \space\caption@eh} }{% \@ifundefined{caption@@#1}% {\PackageError{caption2}{Caption style `#1' undefined}{\caption@eh}}% {\let\caption@make\caption@makecaption \@nameuse{caption@@#1}}% }} \renewcommand\@makecaption[2]{% \vskip\abovecaptionskip \captionlinewidth\hsize \realcaptionwidth\hsize \def\captionlabel{#1}% \def\captiontext{#2}% \usecaptionstyle\caption@style \vskip\belowcaptionskip} \newcommand*\caption@ifpackage[3]{% \if1\@nameuse{caption@pkt@#1}% \@ifundefined{#2}% {\let\next\AtBeginDocument}% {\let\next\@firstofone}% \else\ifcaption@twozero \@ifundefined{#2}% {#3\let\next\@gobble}% {\let\next\@firstofone}% \else #3\let\next\@gobble \fi\fi \expandafter\let\csname caption@pkt@#1\endcsname\undefined \caption@ifdebug{% \ifx\next\@gobble\PackageInfo{caption2}{#1 => gobble}% \else\ifx\next\@firstofone\PackageInfo{caption2}{#1 => firstofone}% \else\ifx\next\AtBeginDocument\PackageInfo{caption2}{#1 => AtBeginDocument}% \fi\fi\fi}{}% \next} \caption@ifpackage{float}{floatc@plain}{}{% \ifx\floatc@plain\relax \PackageWarning{caption2}{% Option `float' was set but there is no float package loaded} \else \PackageInfo{caption2}{float package v1.2 (or newer) detected} \newcommand\caption@floatc[3]{% \ifx\captionlabelfont\@empty \let\captionlabelfont\@fs@cfont \fi \captionlinewidth\hsize \realcaptionwidth\hsize \def\captionlabel{#2}% \def\captiontext{#3}% \usecaptionstyle{#1}} \renewcommand*\floatc@plain{\caption@floatc{\caption@style}} \ifcaption@ruled \dummycaptionstyle{ruled}{\onelinecaptionsfalse\setcaptionmargin{\z@}}% \else \newcaptionstyle{ruled}{% \ifcaptionlabel {\@fs@cfont\captionlabel}\space% \fi\captiontext\par}% \fi \renewcommand*\floatc@ruled{\caption@floatc{ruled}} \renewcommand*\caption@of[2]{\def\@captype{#2}% \@ifundefined{fst@#2}{}{% \@nameuse{fst@#2}% \caption@ifundefined\@float@setevery{}{\@float@setevery{#2}}% \let\caption@fs@capt\@fs@capt \let\@fs@capt\caption@of@float}% #1} \newcommand\caption@of@float[2]{\egroup \vskip\abovecaptionskip \normalsize\caption@fs@capt{#1}{#2}% \vskip\belowcaptionskip \bgroup}% \fi} \caption@ifpackage{longtable}{LT@makecaption}{}{% \ifx\LT@makecaption\relax \PackageWarning{caption2}{% Option `longtable' was set but there is no longtable package loaded} \else \PackageInfo{caption2}{longtable package v3.15 (or newer) detected} \dummycaptionstyle{longtable}{} \renewcommand\LT@makecaption[3]{% \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\hsize{% \ifignoreLTcapwidth \else \setcaptionwidth\LTcapwidth \fi \captionlinewidth\hsize \realcaptionwidth\hsize \captionlabelfalse#1\captionlabeltrue \def\captionlabel{#2}% \def\captiontext{#3}% \usecaptionstyle{longtable}% \endgraf\vskip\baselineskip}% \hss}}} \fi} \newcommand*\setsubcapstyle{% \caption@ifundefined\subcapraggedrightfalse{% \newif\ifsubcapraggedright}{}% \ifsubcaphang \ifsubcapcenter \subcapstyle{hang+center}% \else\ifsubcapcenterlast \subcapstyle{hang+centerlast}% \else\ifsubcapraggedright \subcapstyle{hang+flushleft}% \else \subcapstyle{hang}% \fi\fi\fi \else\ifsubcapcenter \subcapstyle{center}% \else\ifsubcapcenterlast \subcapstyle{centerlast}% \else\ifsubcapraggedright \subcapstyle{flushleft}% \else \subcapstyle{normal}% \fi\fi\fi\fi} \newcommand\caption@makesubcaption[2]{% \renewcommand*\captionfont{\subcapsize\subcapfont}% \renewcommand*\captionlabelfont{\normalfont\subcapsize\subcaplabelfont}% \let\captionlabeldelim\subcaplabeldelim \let\captionlabelsep\subcaplabelsep \ifsubfigcapwidth \setcaptionwidth\subfigcapwidth \else \setcaptionmargin\subfigcapmargin \fi \setlength\captionmargin\subfigcapmargin \setlength\captionwidth\subfigcapwidth \captionindent\subcapindent \ifsubcapnooneline \onelinecaptionsfalse \else \onelinecaptionstrue \fi \hbox to\@tempdima{% \caption@subfig@hss\parbox[t]\@tempdima{% \captionlinewidth\@tempdima \realcaptionwidth\@tempdima \captionlabeltrue \def\captionlabel{#1}% \def\captiontext{\ignorespaces #2}% \usecaptionstyle\caption@substyle}% \caption@subfig@hss}} \caption@ifpackage{subfigure}{@makesubfigurecaption}{% \let\setsubcapstyle\undefined \let\caption@makesubcaption\undefined}{% \ifx\@makesubfigurecaption\relax \PackageWarning{caption2}{% Option `subfigure' was set but there is no subfigure package loaded} \let\setsubcapstyle\undefined \let\caption@makesubcaption\undefined \else \ifx\subcapfont\undefined \PackageInfo{caption2}{subfigure package v2.0 detected} \let\subcapfont\@empty \newcommand*\subfigcapwidth{\z@} \newcommand*\setsubcapmargin{% \subfigcapwidthfalse \renewcommand*\subfigcapmargin} \newcommand*\setsubcapwidth{% \subfigcapwidthtrue \renewcommand*\subfigcapwidth} \newcommand*\subcaplabelsep{\space} \let\caption@subfig@hss\hfil \else \PackageInfo{caption2}{subfigure package v2.1 (or newer) detected} \newdimen\subfigcapwidth \newcommand*\setsubcapmargin{% \subfigcapwidthfalse \setlength\subfigcapmargin} \newcommand*\setsubcapwidth{% \subfigcapwidthtrue \setlength\subfigcapwidth} \newcommand*\subcaplabelsep{\hskip\subfiglabelskip} \let\caption@subfig@hss\hss \fi \newif\ifsubfigcapwidth \newdimen\subcapindent \newcommand*\subcaplabeldelim{} \newcommand*\subcapstyle[1]{% \expandafter\ifx\csname caption@@#1\endcsname\relax \PackageError{caption2}{Undefined caption style `#1'}{\caption@eh}% \else \def\caption@substyle{#1}% \fi} \setsubcapstyle \renewcommand*\@thesubfigure{\thesubfigure} \renewcommand*\@thesubtable{\thesubtable} \let\@makesubfigurecaption\caption@makesubcaption \let\@makesubtablecaption\caption@makesubcaption \fi} \let\caption@ifpackage\undefined \endinput %% %% End of file `caption2.sty'.