diff options
author | Karl Berry <karl@freefriends.org> | 2020-01-04 22:04:42 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-01-04 22:04:42 +0000 |
commit | 40fc7787788cdfcaccef2c17d47de2f8cc68643d (patch) | |
tree | a613e7f1dc5153f74dd072b290903322c96c2ecd /Master/texmf-dist/tex/latex/caption/caption3.sty | |
parent | 8a5a45eae4b27a6b626cb7ba6ebae0cbca86d94f (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.sty | 148 |
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} |