% \iffalse meta-comment % % This is file `caption-light.dtx'. % % Copyright (C) 2020-2021 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, caption-light.dtx, caption2.dtx, caption3.dtx, % caption-ams-smf.dtx, caption-beamer.dtx, caption-elsarticle.dtx, % caption-koma.dtx, caption-memoir.dtx, caption-ntg.dtx, % caption-thesis.dtx, bicaption.dtx, ltcaption.dtx, subcaption.dtx, % the derived files % caption.sty, caption-light.sty, caption2.sty, caption3.sty, % caption-ams-smf.sto, caption-beamer.sto, caption-elsarticle.sto, % caption-koma.sto, caption-memoir.sto, caption-ntg.sto, % caption-thesis.sto, bicaption.sty, ltcaption.sty, subcaption.sty. % % \fi % % \CheckSum{99} % % \iffalse %<*driver> \NeedsTeXFormat{LaTeX2e}[1994/12/01] \ProvidesFile{caption-light.drv}[2020/08/24 v1.0 Customizing captions (AR)] %\errorcontextlines=3 % \documentclass{captiondoc} \hypersetup{pdfkeywords={LaTeX, package, caption-light}} % \usepackage{caption-light}[2020/08/23] % needs v1.0 or newer % \begin{document} \DocInput{caption-light.dtx} \end{document} % % \fi % % \def\thispackage{the \pkg{caption-light} package} % \def\Thispackage{The \pkg{caption-light} package} % % \GetFileInfo{caption-light.drv} % \let\docdate\filedate % \let\docversion\fileversion % \GetFileInfo{caption-light.sty} % % \title{\texorpdfstring{\Thispackage\thanks{%^^A % This package has version number \docversion.}}%^^A % {The caption-light package}} % \author{Axel Sommerfeldt\\ % \url{https://gitlab.com/axelsommerfeldt/caption}} % \date{\docdate} % \maketitle % % \begin{abstract} % \Thispackage\ offers (limited) customization of captions % in floating environments such |figure| and |table|. % \par\smallskip % \textit{Please note:} Many document classes already have build-in options and % commands for customizing captions. % If these possibilities are sufficient for you, there is usually no need for % you to use the \pkg{caption} package at all. % And if you are just interested in using the command \cs{captionof}, loading % of the very small \pkg{capt-of} package is usually sufficient. % \end{abstract} % % \iffalse\clearpage\fi % \setcounter{tocdepth}{2} % \tableofcontents % % \clearpage % \section{Loading the package} % % Load this package using % \begin{quote} % |\usepackage|\oarg{options}|{caption-light}| % \end{quote} % or % \begin{quote} % |\usepackage{caption-light}|\\ % \ldots\\ % |\captionsetup|\marg{options} % \end{quote} % As opposite to the \pkg{caption} package only a limited set of options is % supported by \thispackage: % |aboveskip=|\ldots, % |belowskip=|\ldots, % |font=|\ldots, % |justification=|\ldots, % |labelfont=|\ldots, % |labelseparator=|\ldots, % |position=|\ldots, % |singlelinecheck=|\ldots, % |skip=|\ldots, and % |textfont=|\ldots % % See \pkg{caption} package documentation for the meaning and usage of % these options. % % \section{Commands} % % This package offers |\caption|\-|setup|, |\set|\-|caption|\-|type|, and % |\caption|\-|of| as well. % % \section{Why this package?} % % This package offers some advantages over the \pkg{caption} package: % \begin{itemize} % \item It does not depend on correct |\hsize| for "long" captions, % just like the original definition included in |article|, |report|, and |book|. % \item If the caption is typeset as "short" (centered), the content of % the caption is evaluated only once, % just like the original definition included in |article|, |report|, and |book|. % \item It does not re-define |\caption| and floating environments, % therefore avoiding incompatibilities. % \item It does not patch any other packages, therefore avoiding % incompatibilities. % \end{itemize} % % In short it's a more compatible and less troublesome variant of the % \pkg{caption} package, but (much) less powerful. % % \iffalse % --------------------------------------------------------------------------- % % \fi % % \StopEventually{%^^A % } % % \iffalse % --------------------------------------------------------------------------- % % \fi % % \DoNotIndex{\\,\_,\ ,\@@par} % \DoNotIndex{\@bsphack} % \DoNotIndex{\@car,\@cdr,\@classoptionslist,\@cons,\@currext,\@currname} % \DoNotIndex{\@ehc,\@ehd,\@empty,\@esphack,\@expandtwoargs} % \DoNotIndex{\@for,\@firstofone,\@firstoftwo} % \DoNotIndex{\@gobble,\@gobblefour,\@gobbletwo,\@hangfrom} % \DoNotIndex{\if@minipage,\@ifnextchar,\@ifpackagelater,\@ifpackageloaded} % \DoNotIndex{\@ifstar,\@ifundefined,\@latex@error,\@namedef,\@nameuse} % \DoNotIndex{\@onlypreamble,\@parboxrestore,\@plus,\@ptionlist} % \DoNotIndex{\@removeelement,\@restorepar,\@secondoftwo,\@setpar} % \DoNotIndex{\@tempa,\@tempboxa,\@tempdima,\@tempdimb,\@tempdimc,\@tempb,\@tempc} % \DoNotIndex{\@testopt} % \DoNotIndex{\@undefined,\@unprocessedoptions,\@unusedoptionlist} % \DoNotIndex{\p@,\z@} % \DoNotIndex{\active,\addtocounter,\addtolength,\advance,\aftergroup} % \DoNotIndex{\baselineskip,\begin,\begingroup,\bfseries,\box} % \DoNotIndex{\catcode,\centering,\changes,\csname,\def,\divide,\do,\downarrow} % \DoNotIndex{\edef,\else,\empty,\end,\endcsname,\endgraf,\endgroup,\expandafter} % \DoNotIndex{\fi,\footnotesize,\global} % \DoNotIndex{\hangindent,\hbox,\hfil,\hsize,\hskip,\hspace,\hss} % \DoNotIndex{\ifcase,\ifdim,\ifnum,\ifodd,\ifvoid,\ifvmode} % \DoNotIndex{\ifx,\ignorespaces,\itshape} % \DoNotIndex{\kernel@ifnextchar} % \DoNotIndex{\Large,\large,\leavevmode,\leftmargini,\leftskip,\let,\linewidth} % \DoNotIndex{\llap,\long,\m@ne,\margin,\mdseries,\message} % \DoNotIndex{\newcommand,\newdimen,\newlength,\newline,\newif,\newsavebox} % \DoNotIndex{\next,\nobreak,\nobreakspace,\noexpand,\noindent,\numberline} % \DoNotIndex{\normalcolor,\normalfont,\normalsize,\or,\par,\parbox,\parfillskip} % \DoNotIndex{\parindent,\parskip,\prevdepth,\protect,\protected@edef,\protected@write} % \DoNotIndex{\providecommand,\quad} % \DoNotIndex{\raggedleft,\raggedright,\relax,\renewcommand,\RequirePackage} % \DoNotIndex{\rightskip,\rmfamily} % \DoNotIndex{\sbox,\scriptsize,\scshape,\setbox,\setlength,\sffamily,\slshape} % \DoNotIndex{\small,\string,\space,\strut} % \DoNotIndex{\textheight,\the,\toks@,\typeout,\ttfamily} % \DoNotIndex{\unvbox,\uparrow,\upshape,\usebox,\usepackage} % \DoNotIndex{\value,\vbox,\vsize,\vskip,\wd,\width,\z@skip} % \DoNotIndex{\AtBeginDocument,\AtEndOfPackage,\CurrentOption,\DeclareOption} % \DoNotIndex{\ExecuteOptions,\GenericWarning,\IfFileExists,\InputIfFileExists} % \DoNotIndex{\NeedsTeXFormat,\MessageBreak} % \DoNotIndex{\PackageError,\PackageInfo,\PackageWarning,\PackageWarningNoLine} % \DoNotIndex{\PassOptionsToPackage,\ProcessOptions,\ProvidesPackage} % % \iffalse % --------------------------------------------------------------------------- % % \fi % % \setlength{\parskip}{0pt plus 1pt} % \changes{v1.0}{2020/08/24}{First version} % % \newcommand*\Note[2][Note]{\par{\small\emph{#1:} #2}} % % \iffalse % --------------------------------------------------------------------------- % % \fi % % \clearpage % \section{The implementation} % \iffalse %<*package> % \fi % % \subsection{Identification} % % \begin{macrocode} \NeedsTeXFormat{LaTeX2e}[1994/12/01] \ProvidesPackage{caption-light}[2021/03/21 v1.0a Customizing captions (AR)] % \end{macrocode} % % \section{Loading the kernel} % % \begin{macrocode} \RequirePackage{caption3}[2020/08/30] % needs v2.0 or newer % \end{macrocode} % % \section{Check against unknown document classes} % % \begin{macrocode} \caption@ifbool{documentclass}{}{% \caption@WarningNoLine{% Unknown document class (or package),\MessageBreak standard defaults will be used}} % \end{macrocode} % % \section{Check against incompatible packages} % % \begin{macrocode} \@ifpackageloaded{caption2}{% \caption@Error{% You can't use both, the (obsolete) caption2 *and*\MessageBreak the caption-light package}% \endinput }{} % \end{macrocode} % % \section{Processing of options} % % \begin{macrocode} \caption@SetupOptions{caption-light}{\caption@setkeys{caption}{#2}} \caption@ProcessOptions*{caption-light} % \end{macrocode} % % \section{\cs{@makecaption}} % % If the \pkg{caption} package is loaded, we abort processing this file. % \begin{macrocode} \caption@ifdefined\caption@makecaption {\caption@Info{\noexpand\caption@makecaption is already defined}% \endinput}{} % \end{macrocode} % % \begin{macro}{\caption@makecaption} % \changes{v1.0a}{2021/03/21}{Support of \cs{ifcaption@star} and \cs{caption@@make@epilogue} added} % |\@makecaption|\marg{label}\marg{text}\\ % We do basically the same as the original code (from the standard % \LaTeX\ document classes), but take care of selected settings % offered by the \pkg{caption3} kernel. % \begin{macrocode} \long\def\caption@makecaption#1#2{% \caption@iftop\caption@belowskip\caption@aboveskip \caption@labelseparator % defines \caption@iflabelfont and \caption@labelsep \caption@singlelinecheck {\sbox\@tempboxa{\caption@@makecaption{#1}{#2}}% \ifdim \wd\@tempboxa >\hsize}% {\iftrue}% \caption@@makecaption{#1}{#2}\par \else \global \@minipagefalse \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% \fi \caption@iftop\caption@aboveskip\caption@belowskip \caption@@make@epilogue} % \end{macrocode} % \begin{macrocode} \newcommand\caption@@makecaption[2]{% \caption@applyfont \ifcaption@star\else \begingroup \captionlabelfont #1\relax\relax \endgroup \fi \ifcaption@star\else \begingroup \caption@iflabelfont\captionlabelfont \relax\caption@labelsep \endgroup \fi \begingroup \captiontextfont #2% \endgroup} % \end{macrocode} % \end{macro} % % \begin{macro}{\@makecaption} % Patch |\@makecaption|, so our definition will be used. % \begin{macrocode} \let\@makecaption\caption@makecaption % \end{macrocode} % \end{macro} % % \section{\cs{setcaptiontype}} % % We offer the options |type=| and |type*=|, too: % \begin{macrocode} \caption@AtBeginDocument{% % \end{macrocode} % \begin{macrocode} \DeclareCaptionOption{type}{\setcaptiontype{#1}}% \DeclareCaptionOption{type*}{\setcaptiontype*{#1}}% % \end{macrocode} % \begin{macrocode} } % \end{macrocode} % \begin{macro}{\setcaptiontype} % |\setcaptiontype*|\marg{type}\\ % For compatibility reasons we offer a starred variant as well, % but it does not differ from the non-starred variant here. % \begin{macrocode} \newcommand*\setcaptiontype{% \caption@teststar{\def\@captype}{}{}} % \end{macrocode} % \end{macro} % % \begin{macro}{\captionof} % |\captionof*|\marg{type}\oarg{list-entry}\marg{text}\\ % For compatibility reasons we offer a starred variant as well. % \begin{macrocode} \caption@AtBeginDocument{% \def\captionof{\caption@teststar\caption@of{\caption*}\caption}} % \end{macrocode} % \begin{macrocode} \newcommand*\caption@of[2]{\setcaptiontype*{#2}#1} % \end{macrocode} % \end{macro} % % \iffalse % % \fi % % \iffalse % --------------------------------------------------------------------------- % % \fi % % \Finale % \endinput