summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/caption/caption3.sty
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/latex/caption/caption3.sty')
-rw-r--r--Master/texmf-dist/tex/latex/caption/caption3.sty172
1 files changed, 111 insertions, 61 deletions
diff --git a/Master/texmf-dist/tex/latex/caption/caption3.sty b/Master/texmf-dist/tex/latex/caption/caption3.sty
index 02bd5e3f470..c6a6a36cd42 100644
--- a/Master/texmf-dist/tex/latex/caption/caption3.sty
+++ b/Master/texmf-dist/tex/latex/caption/caption3.sty
@@ -6,7 +6,7 @@
%%
%% caption.dtx (with options: `kernel')
%%
-%% Copyright (C) 1994-2007 Axel Sommerfeldt (caption@sommerfee.de)
+%% Copyright (C) 1994-2008 Axel Sommerfeldt (caption@sommerfee.de)
%%
%% --------------------------------------------------------------------------
%%
@@ -28,7 +28,7 @@
%% user manuals caption-deu.tex, caption-eng.tex, and caption-rus.tex.
%%
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{caption3}[2007/12/21 v3.1f caption3 kernel (AR)]
+\ProvidesPackage{caption3}[2008/03/20 v3.1g caption3 kernel (AR)]
\providecommand*\@nameundef[1]{%
\expandafter\let\csname #1\endcsname\@undefined}
\providecommand\l@addto@macro[2]{%
@@ -103,12 +103,14 @@
\newcommand*\caption@teststar[3]{\@ifstar{#1{#2}}{#1{#3}}}
\newcommand*\caption@teststar@[3]{%
\@ifstar{#1{#2}}{\caption@ifatletter{#1{#2}}{#1{#3}}}}
+\AtBeginDocument{\let\caption@teststar@\caption@teststar}
\newcommand*\caption@ifatletter{%
\ifnum\the\catcode`\@=11
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi}
+\AtBeginDocument{\let\caption@ifatletter\@secondoftwo}
\newcommand*\caption@withoptargs[1]{%
\@ifstar
{\def\caption@tempa{*}\caption@@withoptargs#1}%
@@ -206,16 +208,17 @@
\KV@err{No value allowed for #1}%
\expandafter\@gobble
\fi}
+\newif\ifcaptionsetup@star
\newcommand*\captionsetup{%
\caption@teststar@\@captionsetup\@gobble\@firstofone}
\newcommand*\@captionsetup[1]{%
- \@ifnextchar[{\caption@setup@options#1}\caption@setup}
+ \captionsetup@startrue#1\captionsetup@starfalse
+ \@ifnextchar[\caption@setup@options\caption@setup}
\newcommand*\caption@setup{\caption@setkeys{caption}}
-\def\caption@setup@options#1[#2]#3{%
+\def\caption@setup@options[#1]#2{%
\@bsphack
- % #1 is \@gobble in star form, and \@firstofone otherwise
- #1{\caption@addtooptlist{#2}}%
- \expandafter\caption@l@addto@list\csname caption@opt@#2\endcsname{#3}%
+ \ifcaptionsetup@star\captionsetup@starfalse\else\caption@addtooptlist{#1}\fi
+ \expandafter\caption@l@addto@list\csname caption@opt@#1\endcsname{#2}%
\@esphack}
\newcommand*\clearcaptionsetup{%
\caption@teststar@\@clearcaptionsetup\@gobble\@firstofone}
@@ -304,9 +307,10 @@
\edef\caption@keydepth{\caption@keydepth i}%
\caption@Debug{\protect\setkeys{#2}{#3}}%
\setkeys{#2}{#3}%
- \edef\caption@keydepth{\expandafter\@cdr\caption@keydepth\@nil}%
+ \edef\caption@keydepth{\expandafter\@gobble\caption@keydepth}%
\expandafter\let\expandafter\KV@err\csname ORI@KV@err\caption@keydepth\endcsname
\expandafter\let\expandafter\KV@errx\csname ORI@KV@errx\caption@keydepth\endcsname
+ \ifx\caption@keydepth\@empty \captionsetup@starfalse \fi
\@esphack}
\let\caption@keydepth\@empty
\newcommand*\caption@ExecuteOptions[2]{%
@@ -431,6 +435,7 @@
\global\@namedef{caption@sty@#1}{#3}}
\@onlypreamble\caption@declarestyle
\DeclareCaptionOption{style}{\caption@setstyle{#1}}
+\DeclareCaptionOption{style*}{\caption@setstyle*{#1}}
\DeclareCaptionOption{singlelinecheck}{\caption@set@bool\caption@ifslc{#1}}
\newcommand*\caption@setstyle{%
\caption@teststar\caption@@setstyle\@gobble\@firstofone}
@@ -479,6 +484,14 @@
{\expandafter\let\expandafter\caption@ifh\csname caption@ifh@#1\endcsname
\expandafter\let\expandafter\caption@slfmt\csname caption@slfmt@#1\endcsname
\expandafter\let\expandafter\caption@fmt\csname caption@fmt@#1\endcsname}}
+\newcommand*\DeclareCaptionDefaultFormat[1]{%
+ \expandafter\def\expandafter\caption@fmt@default\expandafter
+ {\csname caption@fmt@#1\endcsname}%
+ \expandafter\def\expandafter\caption@slfmt@default\expandafter
+ {\csname caption@slfmt@#1\endcsname}%
+ \expandafter\def\expandafter\caption@ifh@default\expandafter
+ {\csname caption@ifh@#1\endcsname}}
+\@onlypreamble\DeclareCaptionDefaultFormat
\DeclareCaptionFormat{plain}{#1#2#3\par}
\DeclareCaptionFormat{hang}[#1#2#3\par]{%
\caption@ifin@list\caption@lsepcrlist\caption@lsepname
@@ -489,10 +502,9 @@
\advance\caption@parindent\hangindent
\advance\caption@hangindent\hangindent
\caption@@par#3\par}}
-\def\caption@fmt@default{\caption@fmt@plain}
-\def\caption@ifh@default{\caption@ifh@plain}
+\DeclareCaptionDefaultFormat{plain}
\newcommand*\DeclareCaptionLabelFormat[2]{%
- \global\@namedef{caption@lfmt@#1}##1##2##3{#2}}
+ \global\@namedef{caption@lfmt@#1}##1##2{#2}}
\@onlypreamble\DeclareCaptionLabelFormat
\DeclareCaptionOption{labelformat}{\caption@setlabelformat{#1}}
\newcommand*\caption@setlabelformat[1]{%
@@ -549,18 +561,18 @@
\newcommand*\DeclareCaptionFont[2]{%
\define@key{caption@fnt}{#1}[]{\l@addto@macro\caption@fnt{#2}}}
\@onlypreamble\DeclareCaptionFont
-\newcommand*\DeclareDefaultCaptionFont[2]{%
+\newcommand*\DeclareCaptionDefaultFont[2]{%
\global\@namedef{caption#1@default}{#2}}
-\@onlypreamble\DeclareDefaultCaptionFont
+\@onlypreamble\DeclareCaptionDefaultFont
\DeclareCaptionOption{font}{\caption@setfont{font}{#1}}
\DeclareCaptionOption{font+}{\caption@addtofont{font}{#1}}
-\DeclareDefaultCaptionFont{font}{}
+\DeclareCaptionDefaultFont{font}{}
\DeclareCaptionOption{labelfont}{\caption@setfont{labelfont}{#1}}
\DeclareCaptionOption{labelfont+}{\caption@addtofont{labelfont}{#1}}
-\DeclareDefaultCaptionFont{labelfont}{}
+\DeclareCaptionDefaultFont{labelfont}{}
\DeclareCaptionOption{textfont}{\caption@setfont{textfont}{#1}}
\DeclareCaptionOption{textfont+}{\caption@addtofont{textfont}{#1}}
-\DeclareDefaultCaptionFont{textfont}{}
+\DeclareCaptionDefaultFont{textfont}{}
\newcommand*\caption@setfont[1]{%
\expandafter\let\csname caption#1\endcsname\@empty
\caption@addtofont{#1}}
@@ -611,17 +623,17 @@
\KV@caption@fnt@normalsize\@unused
\KV@caption@fnt@singlespacing\@unused}}
\DeclareCaptionOption{size}{\caption@setfont{size}{#1}}
-\DeclareDefaultCaptionFont{size}{}
+\DeclareCaptionDefaultFont{size}{}
\newcommand*\DeclareCaptionJustification[2]{%
\global\@namedef{caption@hj@#1}{#2}% for compatibility to v3.0
\DeclareCaptionFont{#1}{#2}}
\@onlypreamble\DeclareCaptionJustification
-\newcommand*\DeclareDefaultCaptionJustification[1]{%
+\newcommand*\DeclareCaptionDefaultJustification[1]{%
\global\@namedef{caption@hj@default}{#1}% for compatibility to v3.0
- \DeclareDefaultCaptionFont{@hj}{#1}}
-\@onlypreamble\DeclareDefaultCaptionJustification
+ \DeclareCaptionDefaultFont{@hj}{#1}}
+\@onlypreamble\DeclareCaptionDefaultJustification
\DeclareCaptionOption{justification}{\caption@setjustification{#1}}
-\DeclareDefaultCaptionJustification{}
+\DeclareCaptionDefaultJustification{}
\newcommand*\caption@setjustification{\caption@setfont{@hj}}
\DeclareCaptionJustification{justified}{}
\DeclareCaptionJustification{centering}{\centering}
@@ -728,8 +740,9 @@
\newcommand*\caption@endhook{}
\newcommand*\AtBeginCaption{\l@addto@macro\caption@beginhook}
\newcommand*\AtEndCaption{\l@addto@macro\caption@endhook}
-\DeclareCaptionOption{list}{\caption@set@bool\caption@iflist{#1}}
-\DeclareCaptionOption{listof}{\caption@set@bool\caption@iflist{#1}}
+\DeclareCaptionOption{list}{\caption@setlist{#1}}
+\DeclareCaptionOption{listof}{\caption@setlist{#1}}
+\newcommand*\caption@setlist{\caption@set@bool\caption@iflist}
\newcommand*\DeclareCaptionListFormat[2]{%
\global\@namedef{caption@lstfmt@#1}##1##2{#2}}
\@onlypreamble\DeclareCaptionListFormat
@@ -752,7 +765,6 @@
{\let\caption@Debug\@gobble}}
\DeclareOption{debug}{\setkeys{caption}{debug}}
\setkeys{caption}{debug=0}
-\caption@CheckCommand\@makecaption{\let\@makecaption\@undefined}
\caption@CheckCommand\@makecaption{%
% article|report|book [2005/09/16 v1.4f Standard LaTeX document class]
\long\def\@makecaption#1#2{%
@@ -834,9 +846,9 @@
\@tempa
\caption@g@addto@list\caption@sls@default{margin*=.5\captionmargin}
\DeclareCaptionLabelSeparator{default}{.\enspace}
- \DeclareDefaultCaptionFont{font}{\@captionfont}
- \DeclareDefaultCaptionFont{labelfont}{\@captionheadfont}
- \DeclareDefaultCaptionFont{textfont}{\@captionfont\upshape}
+ \DeclareCaptionDefaultFont{font}{\@captionfont}
+ \DeclareCaptionDefaultFont{labelfont}{\@captionheadfont}
+ \DeclareCaptionDefaultFont{textfont}{\@captionfont\upshape}
\captionsetup[figure]{position=b}
\captionsetup[table]{position=t}
}
@@ -857,18 +869,18 @@
\fi
\nobreak\vskip\belowcaptionskip\nobreak}}
\DeclareCaptionLabelFormat{default}{#1}
- \DeclareDefaultCaptionJustification{\raggedright}
- \DeclareDefaultCaptionFont{font}{%
+ \DeclareCaptionDefaultJustification{\raggedright}
+ \DeclareCaptionDefaultFont{font}{%
\usebeamerfont*{caption}%
\usebeamercolor[fg]{caption}}
- \DeclareDefaultCaptionFont{labelfont}{%
+ \DeclareCaptionDefaultFont{labelfont}{%
\usebeamercolor[fg]{caption name}%
\usebeamerfont*{caption name}}
\defbeamertemplate{caption}{caption3}{%
\caption@make\insertcaptionname\insertcaptionnumber\insertcaption}
\DeclareOption{beamer}{%
% \usebeamertemplate**{caption} will set font
- \DeclareDefaultCaptionFont{font}{}%
+ \DeclareCaptionDefaultFont{font}{}%
\setbeamertemplate{caption}[caption3]}
}{}
\@ifundefined{scr@caption}{}{%
@@ -904,8 +916,8 @@
#3\par
\fi}
\DeclareCaptionLabelSeparator{default}{\captionformat}
- \DeclareDefaultCaptionFont{font}{\scr@fnt@caption}
- \DeclareDefaultCaptionFont{labelfont}{\scr@fnt@captionlabel}
+ \DeclareCaptionDefaultFont{font}{\scr@fnt@caption}
+ \DeclareCaptionDefaultFont{labelfont}{\scr@fnt@captionlabel}
}
\@ifundefined{CaptionFonts}{}{%
\caption@CheckCommand\@makecaption{%
@@ -920,12 +932,29 @@
\hb@xt@\hsize{\hfil\box\@tempboxa\hfil}%
\fi
\vskip\belowcaptionskip}}
- \DeclareDefaultCaptionFont{labelfont}{\CaptionLabelFont}
- \DeclareDefaultCaptionFont{textfont}{\CaptionTextFont}
+ \DeclareCaptionDefaultFont{labelfont}{\CaptionLabelFont}
+ \DeclareCaptionDefaultFont{textfont}{\CaptionTextFont}
}
+\@ifclassloaded{thesis}{%
+ \caption@CheckCommand\@makecaption{%
+ % thesis.cls 1996/25/01 1.0g LaTeX document class (wm).
+ \long\def\@makecaption#1#2{%
+ \vskip\abovecaptionskip
+ \setbox\@tempboxa\hbox{{\cph@font #1:} {\cpb@font #2}}%
+ \ifdim \wd\@tempboxa >\hsize
+ \@hangfrom{\cph@font #1: }{\cpb@font #2\par}%
+ \else
+ \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
+ \fi
+ \vskip\belowcaptionskip}}
+ \DeclareCaptionDefaultFormat{hang}
+ \DeclareCaptionDefaultFont{labelfont}{\cph@font}
+ \DeclareCaptionDefaultFont{textfont}{\cpb@font}
+}{}
\@ifundefined{FB@makecaption}{}{%
\caption@CheckCommand\@makecaption{%
% frenchb.ldf [2005/02/06 v1.6g French support from the babel system]
+ % frenchb.ldf [2007/10/05 v2.0e French support from the babel system]
\long\def\@makecaption#1#2{%
\vskip\abovecaptionskip
\sbox\@tempboxa{#1\CaptionSeparator #2}%
@@ -978,7 +1007,7 @@
\else
\@mcORI{#1}{#2}%
\fi}}
- \DeclareDefaultCaptionFont{textfont}{\itshape}%
+ \DeclareCaptionDefaultFont{textfont}{\itshape}%
\DeclareCaptionLabelSeparator{default}{\captionseparator\space}%
}
\captionsetup{style=default,position=default,list=1,listformat=default,%
@@ -1005,10 +1034,8 @@
{\ignorespaces #2}}}%
\fi}
\newif\ifcaption@star
-\newcommand*\caption@fnum[1]{%
- \caption@lfmt{\@nameuse{#1name}}{\@nameuse{the#1}}{\theContinuedFloat}}
-\newcommand\caption@make[2]{%
- \caption@@make{\caption@lfmt{#1}{#2}{\theContinuedFloat}}}
+\newcommand*\caption@fnum[1]{\caption@lfmt{\@nameuse{#1name}}{\@nameuse{the#1}}}
+\newcommand\caption@make[2]{\caption@@make{\caption@lfmt{#1}{#2}}}
\newcommand\caption@@make[2]{%
\begingroup
\caption@stepcounter
@@ -1114,17 +1141,33 @@
\caption@ifstrut{\ifhmode\@finalstrut\strutbox\fi}{}%
\par}}}
\newcommand\caption@ifempty[1]{%
+ \caption@if@empty{#1}%
+ \caption@ifempty\@unused}
+\newcommand\caption@if@empty[1]{%
\def\caption@tempa{#1}%
- \def\caption@tempb{\ignorespaces}%
- \ifx\caption@tempa\caption@tempb
- \let\caption@tempa\@empty
- \fi
\ifx\caption@tempa\@empty
\let\caption@ifempty\@secondoftwo
\else
- \let\caption@ifempty\@gobbletwo
- \fi
- \caption@ifempty\@unused}
+ \expandafter\def\expandafter\caption@tempa\expandafter{%
+ \caption@car#1\caption@if@empty\caption@nil}%
+ \def\caption@tempb{\caption@if@empty}%
+ \ifx\caption@tempa\caption@tempb
+ \let\caption@ifempty\@secondoftwo
+ \else
+ \def\caption@tempb{\ignorespaces}%
+ \ifx\caption@tempa\caption@tempb
+ \expandafter\caption@if@empty\expandafter{\@gobble#1}%
+ \else
+ \def\caption@tempb{\label}%
+ \ifx\caption@tempa\caption@tempb
+ \expandafter\caption@if@empty\expandafter{\@gobbletwo#1}%
+ \else
+ \let\caption@ifempty\@gobbletwo
+ \fi
+ \fi
+ \fi
+ \fi}
+\long\def\caption@car#1#2\caption@nil{#1}% same as \@car, but \long
\newcommand*\caption@@par{%
\parindent\caption@parindent\hangindent\caption@hangindent}%
\newcommand*\DeclareCaptionType{%
@@ -1152,11 +1195,9 @@
{\@namedef{l@#2}{\@dottedtocline{1}{1.5em}{2.3em}}}%
{\expandafter\let\csname l@#2\endcsname\l@figure}%
\expandafter\newcommand\csname #2name\endcsname{}%
- \edef\@tempa{%
- \def\noexpand\@tempa{\expandafter\noexpand\@car#2\@nil}}%
+ \edef\@tempa{\def\noexpand\@tempa{\@car#2\@nil}}%
\uppercase\expandafter{\@tempa}%
- \edef\@tempb{%
- \noexpand\g@addto@macro\noexpand\@tempa{\expandafter\@cdr#2\@nil}}%
+ \edef\@tempb{\noexpand\g@addto@macro\noexpand\@tempa{\@cdr#2\@nil}}%
\@tempb
\expandafter\let\csname #2name\endcsname\@tempa
\expandafter\newcommand\csname list#2name\endcsname{}%
@@ -1203,22 +1244,29 @@
\define@key{caption@within}{none}[]{%
\caption@within{}{}}
\@onlypreamble@key{caption@within}{none}
-\@ifundefined{c@chapter}{}{%
+\@ifundefined{c@chapter}{%
+ \define@key{caption@within}{section}[]{%
+ \@addtoreset\caption@type{section}%
+ \caption@within{\ifnum\c@section>\z@ \thesection.\fi}{\theHsection.}}
+}{%
\define@key{caption@within}{chapter}[]{%
\@addtoreset\caption@type{chapter}%
\caption@within{\ifnum\c@chapter>\z@ \thechapter.\fi}{\theHchapter.}}
- \@onlypreamble@key{caption@within}{chapter}}
-\define@key{caption@within}{section}[]{%
- \@addtoreset\caption@type{section}%
- \caption@within{\ifnum\c@section>\z@ \thesection.\fi}{\theHsection.}}
-\@onlypreamble@key{caption@within}{section}
+ \@onlypreamble@key{caption@within}{chapter}
+ \define@key{caption@within}{section}[]{%
+ \@addtoreset\caption@type{chapter}%
+ \@addtoreset\caption@type{section}%
+ \caption@within{\ifnum\c@chapter>\z@ \thechapter.\fi
+ \ifnum\c@section>\z@ \thesection.\fi}{%
+ \theHchapter.\theHsection.}}
+}\@onlypreamble@key{caption@within}{section}
\newcommand*\caption@within{%
\expandafter\caption@within@\expandafter{\caption@type}}
\@onlypreamble\caption@within
\newcommand*\caption@within@[3]{%
- \global\@namedef{the\caption@type}{#2\arabic{#1}}%
- \@ifundefined{theH\caption@type}\caption@AtBeginDocument\@firstofone
- {\global\@namedef{theH\caption@type}{#3\arabic{#1}}}}
+ \global\@namedef{the#1}{#2\arabic{#1}}%
+ \@ifundefined{theH#1}\caption@AtBeginDocument\@firstofone
+ {\global\@namedef{theH#1}{#3\arabic{#1}}}}
\@onlypreamble\caption@within@
\providecommand*\@removefromreset[2]{{%
\expandafter\let\csname c@#1\endcsname\@removefromreset
@@ -1257,13 +1305,15 @@
{\expandafter\let\csname l@sub#3\endcsname\l@subsection}%
\@cons\caption@subtypelist{{#3}}}%
{\caption@Debug{Modify caption `sub#3'}}%
+ \@namedef{sub#3name}{}%
+ \@namedef{sub#3autorefname}{\csname #3name\endcsname}%
#1% is \@firstoftwo in star form, and \@secondoftwo otherwise
{\@namedef{p@sub#3}{}%
\@namedef{thesub#3}{\csname the#3\endcsname.\@nameuse{#2}{sub#3}}}%
{\@namedef{p@sub#3}{\csname the#3\endcsname}%
\@namedef{thesub#3}{\@nameuse{#2}{sub#3}}}%
\@namedef{theHsub#3}{\csname theH#3\endcsname.\arabic{sub#3}}%
- \@namedef{sub#3autorefname}{\csname #3name\endcsname}}}
+ }}
\@onlypreamble\@@DeclareCaptionSubType
\newcommand*\caption@subtypelist{}
\newcommand*\caption@For{\caption@withoptargs\caption@@For}