summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/caption/caption3.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2020-01-04 22:04:42 +0000
committerKarl Berry <karl@freefriends.org>2020-01-04 22:04:42 +0000
commit40fc7787788cdfcaccef2c17d47de2f8cc68643d (patch)
treea613e7f1dc5153f74dd072b290903322c96c2ecd /Master/texmf-dist/tex/latex/caption/caption3.sty
parent8a5a45eae4b27a6b626cb7ba6ebae0cbca86d94f (diff)
caption (4jan20)
git-svn-id: svn://tug.org/texlive/trunk@53318 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/caption/caption3.sty')
-rw-r--r--Master/texmf-dist/tex/latex/caption/caption3.sty148
1 files changed, 88 insertions, 60 deletions
diff --git a/Master/texmf-dist/tex/latex/caption/caption3.sty b/Master/texmf-dist/tex/latex/caption/caption3.sty
index 5a07a5c487c..efc38bb05d3 100644
--- a/Master/texmf-dist/tex/latex/caption/caption3.sty
+++ b/Master/texmf-dist/tex/latex/caption/caption3.sty
@@ -6,7 +6,7 @@
%%
%% caption3.dtx (with options: `package')
%%
-%% Copyright (C) 1994-2019 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
+%% Copyright (C) 1994-2020 Axel Sommerfeldt (axel.sommerfeldt@f-m.fm)
%%
%% https://gitlab.com/axelsommerfeldt/caption
%%
@@ -34,7 +34,7 @@
%% caption-deu.tex, caption-eng.tex, caption-rus.tex.
%%
\NeedsTeXFormat{LaTeX2e}[1994/12/01]
-\ProvidesPackage{caption3}[2019/12/31 v1.8f caption3 kernel (AR)]
+\ProvidesPackage{caption3}[2020/01/03 v1.8h caption3 kernel (AR)]
\providecommand\caption@FixArabTeX{%
\def\caption@tempa##1{}%
\ifx\caption@tempa\@gobble
@@ -252,13 +252,21 @@
\caption@setup@options@i{#1}{@\caption@thecounter}}}%
{\caption@setup@options@{#1}}}
\newcommand*\caption@setup@options@i[4]{%
- \caption@setup@options@{#1}{#2}%
- \caption@declare@option{#2}[]{\captionsetup#3{#4}}}
+ \caption@declare@option{#2}[]{\captionsetup#3{#4}}%
+ \caption@setup@options@{#1}{#2}}
\newcommand*\caption@setup@options@[2]{%
\@bsphack
\ifcaptionsetup@star\captionsetup@starfalse\else\caption@addtooptlist{#1}\fi
+ \caption@checkoptions{#2}%
\expandafter\caption@l@addto@list\csname caption@opt@#1\endcsname{#2}%
\@esphack}
+\newcommand*\caption@checkoptions[1]{%
+ \begingroup
+ \caption@prepare@optioncheck
+ \caption@setup{#1}%
+ \endgroup}
+\newcommand*\caption@prepare@optioncheck{%
+ \def\@captype{figure}}
\newcommand*\clearcaptionsetup{%
\caption@teststar@\@clearcaptionsetup\@gobble\@firstofone}
\newcommand*\@clearcaptionsetup[1]{%
@@ -712,8 +720,11 @@
\caption@@getlabel#2\@nil}
\let\caption@thelabel\relax
\newcommand*\DeclareCaptionFont[2]{%
- \define@key{caption@fnt}{#1}[]{\l@addto@macro\caption@fnt{#2}}}
+ \define@key{caption@fnt}{#1}[]{\caption@addto@fnt{#2}}}
\@onlypreamble\DeclareCaptionFont
+\newcommand*\caption@addto@fnt[1]{%
+ \caption@check@ragged{#1}%
+ \l@addto@macro\caption@fnt{#1}}
\newcommand*\DeclareCaptionDefaultFont[2]{%
\global\@namedef{caption#1@default}{#2}}
\@onlypreamble\DeclareCaptionDefaultFont
@@ -826,9 +837,13 @@
\DeclareCaptionFont{singlespacing}{%
\caption@ifdefined\setspace@singlespace{%
\setstretch\setspace@singlespace}{}}% normally 1
-\DeclareCaptionFont{onehalfspacing}{\onehalfspacing}
-\DeclareCaptionFont{doublespacing}{\doublespacing}
-\DeclareCaptionFont{stretch}{\setstretch{#1}}
+\DeclareCaptionFont{onehalfspacing}{%
+ \caption@setspace{onehalfspacing}\onehalfspacing\relax}
+\DeclareCaptionFont{doublespacing}{%
+ \caption@setspace{doublespacing}\doublespacing\relax}
+\DeclareCaptionFont{stretch}{%
+ \caption@setspace{stretch}\setstretch\@gobble{#1}}
+\newcommand*\caption@setspace{\caption@ifpackageloaded{setspace}}
\DeclareCaptionFont{normal}{%
\caption@font*{%
\KV@caption@fnt@normalcolor\@unused
@@ -870,54 +885,54 @@
\leftskip\z@\@plus 1fil%
\rightskip\z@\@plus -1fil%
\parfillskip\z@\@plus 2fil\relax}
-\DeclareCaptionJustification{Centering}{%
- \caption@ragged\Centering\centering}
-\DeclareCaptionJustification{RaggedLeft}{%
- \caption@ragged\RaggedLeft\raggedleft}
-\DeclareCaptionJustification{RaggedRight}{%
- \caption@ragged\RaggedRight\raggedright}
+\DeclareCaptionJustification{Centering}{\caption@Centering}
+\DeclareCaptionJustification{RaggedLeft}{\caption@RaggedLeft}
+\DeclareCaptionJustification{RaggedRight}{\caption@RaggedRight}
+\newcommand*\caption@Centering{%
+ \caption@ragged{Centering}\Centering\centering}
+\newcommand*\caption@RaggedLeft{%
+ \caption@ragged{RaggedLeft}\RaggedLeft\raggedleft}
+\newcommand*\caption@RaggedRight{%
+ \caption@ragged{RaggedRight}\RaggedRight\raggedright}
\newcommand*\caption@ragged{\caption@ifpackageloaded{ragged2e}}
-\newcommand*\caption@ifpackageloaded[1]{%
- \@ifundefined{caption@ifpkg@#1}%
- {\caption@RequirePackage{#1}%
- \caption@pkg@true{#1}}%
- {}%
- \caption@ifpkg{#1}}
-\AtBeginDocument{\renewcommand*\caption@ifpackageloaded[1]{%
- \@ifundefined{caption@ifpkg@#1}%
- {\caption@addto@pkg@list{#1}%
- \caption@pkg@false{#1}%
- \caption@Warning{%
- `#1' support has been changed.\MessageBreak
- Rerun to get captions right}}%
- {}%
- \caption@ifpkg{#1}}}
-\newcommand*\caption@ifpkg[1]{%
- \csname caption@ifpkg@#1\endcsname}
-\newcommand*\caption@pkg@true[1]{%
- \global\expandafter\let\csname caption@ifpkg@#1\endcsname\@firstoftwo}
-\newcommand*\caption@pkg@false[1]{%
- \global\expandafter\let\csname caption@ifpkg@#1\endcsname\@secondoftwo}
+\newcommand*\caption@ifpackageloaded[4]{%
+ \caption@ifdefined#3#3{%
+ \caption@Error{Option `#2' requires the `#1' package\MessageBreak
+ (or an alternative definition of \string#3)}%
+ #4}}
\newcommand*\caption@pkg@list{}
-\newcommand*\caption@addto@pkg@list[1]{%
- \protected@write\@auxout{}{%
- \string\@cons\string\caption@pkg@list{{#1}}}}
-\AtBeginDocument{%
+\caption@AtBeginDocument{%
\def\caption@tempa{\endgroup}%
\begingroup
\def\@elt#1{%
\g@addto@macro\caption@tempa{%
- \caption@RequirePackage{#1}%
- \@namedef{caption@ifpkg@#1}{%
- \caption@addto@pkg@list{#1}%
- \caption@pkg@true{#1}%
- \caption@ifpkg{#1}}}}%
+ \caption@InfoNoLine{Load package `#1'}%
+ \RequirePackage{#1}\relax}}%
\caption@pkg@list
\caption@tempa}
-\newcommand*\caption@RequirePackage[1]{%
- \caption@Info{We need package `#1'}%
- \RequirePackage{#1}}
-\@onlypreamble\caption@RequirePackage
+\@ifpackageloaded{ragged2e}{\let\caption@check@ragged\@gobble}{%
+ \newcommand*\caption@check@ragged[1]{%
+ \begingroup
+ \def\caption@tempa{#1}%
+ \caption@check@ragged@{Centering}%
+ \caption@check@ragged@{RaggedLeft}%
+ \caption@check@ragged@{RaggedRight}%
+ \endgroup}%
+ \newcommand*\caption@check@ragged@[1]{%
+ \expandafter\def\expandafter\caption@tempb\expandafter{\csname caption@#1\endcsname}%
+ \ifx\caption@tempa\caption@tempb % our definition of `ragged2e' option?
+ \@ifundefined{#1}{%
+ \caption@Info{Usage of `ragged2e' command \expandafter\string\csname #1\endcsname\space detected}%
+ \@cons\caption@pkg@list{{ragged2e}}% load `ragged2e' package later on
+ \global\let\caption@check@ragged\@gobble}{}%
+ \fi
+ }%
+ \caption@AtBeginDocument{%
+ \let\caption@check@ragged\@gobble
+ \let\caption@check@ragged@\@undefined}}
+%%\@ifl@aded{dtx}{subfig}{\RequirePackage{ragged2e}\relax}{} % not needed
+\DeclareCaptionOption{lofdepth}[2]{\caption@ifdefined\c@lofdepth{\setcounter{lofdepth}{#1}}{}}
+\DeclareCaptionOption{lotdepth}[2]{\caption@ifdefined\c@lotdepth{\setcounter{lotdepth}{#1}}{}}
\caption@ifundefined\abovecaptionskip{%
\newlength\abovecaptionskip\setlength\abovecaptionskip{10\p@}}{}
\caption@ifundefined\belowcaptionskip{%
@@ -1485,10 +1500,10 @@
\caption@ifdefined\ForEachFloatingEnvironment
{\ForEachFloatingEnvironment{#1}}%
{\def\@elt##1{#1}%
- \caption@ifdefined\c@figure\@elt\@gobble{figure}%
- \caption@ifdefined\c@table\@elt\@gobble{table}%
- \let\@elt\relax
- \newfloat@addtohook{#1}}}
+ \caption@ifdefined\c@figure\@elt\@gobble{figure}%
+ \caption@ifdefined\c@table\@elt\@gobble{table}%
+ \let\@elt\relax
+ \newfloat@addtohook{#1}}}
\providecommand\newfloat@addtohook[1]{%
\toks@=\expandafter{\newfloat@hook{##1}#1}%
\edef\@tempa{\def\noexpand\newfloat@hook####1{\the\toks@}}%
@@ -1503,14 +1518,16 @@
\def\caption@@declaresubtype#1[#2]#3{%
\@ifundefined{c@#3}%
{\caption@Error{No float type '#3' defined}}%
- {\@ifundefined{c@sub#3}%
- {\caption@Debug{New subtype `sub#3'}%
- \newcounter{sub#3}%
- \@addtoreset{sub#3}{#3}%
- \@namedef{ext@sub#3}{\csname ext@#3\endcsname}%
- \caption@declaresublistentry{#3}%
- \@cons\caption@subtypelist{{#3}}}%
- {\caption@Debug{Modify caption `sub#3'}}%
+ {\caption@ifsubtype{sub#3}%
+ {\caption@Debug{Modify subtype `sub#3'}}%
+ {\caption@Debug{New subtype `sub#3'}%
+ \@ifundefined{c@sub#3}%
+ {\newcounter{sub#3}\relax}%
+ {\caption@Warning{Using already defined counter `sub#3'}}%
+ \@addtoreset{sub#3}{#3}%
+ \@namedef{ext@sub#3}{\csname ext@#3\endcsname}%
+ \caption@declaresublistentry{#3}%
+ \@cons\caption@subtypelist{{#3}}}%
\caption@ifdefined\contentsuse{%
\contentsuse{sub#3}{\csname ext@sub#3\endcsname}}{}%
\@namedef{sub#3name}{}%
@@ -1566,6 +1583,17 @@
\fi}
\@onlypreamble\caption@@@@@@declaresublistentry
\newcommand*\caption@subtypelist{}
+\newcommand*\caption@ifsubtype[1]{%
+ \begingroup
+ \let\next\@secondoftwo
+ \edef\@tempa{#1}%
+ \def\@elt##1{%
+ \def\@tempb{sub##1}%
+ \ifx\@tempa\@tempb
+ \let\next\@firstoftwo
+ \fi}%
+ \caption@subtypelist
+ \expandafter\endgroup\next}
\newcommand*\caption@restorecounters{%
\caption@restore@counters
\global\let\caption@restore@counters\@empty}