diff options
Diffstat (limited to 'macros/latex/contrib/koma-script/source/scrkernel-floats.dtx')
-rw-r--r-- | macros/latex/contrib/koma-script/source/scrkernel-floats.dtx | 1480 |
1 files changed, 665 insertions, 815 deletions
diff --git a/macros/latex/contrib/koma-script/source/scrkernel-floats.dtx b/macros/latex/contrib/koma-script/source/scrkernel-floats.dtx index 3a4e59b211..eccacb2b25 100644 --- a/macros/latex/contrib/koma-script/source/scrkernel-floats.dtx +++ b/macros/latex/contrib/koma-script/source/scrkernel-floats.dtx @@ -1,7 +1,7 @@ % \iffalse meta-comment % ====================================================================== % scrkernel-floats.dtx -% Copyright (c) Markus Kohm, 2002-2021 +% Copyright (c) Markus Kohm, 2002-2022 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -17,54 +17,17 @@ % The Current Maintainer and author of this work is Markus Kohm. % % This work consists of all files listed in manifest.txt. -% ---------------------------------------------------------------------- -% scrkernel-floats.dtx -% Copyright (c) Markus Kohm, 2002-2021 -% -% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, -% Version 1.3c, verteilt und/oder veraendert werden. -% Die neuste Version dieser Lizenz ist -% http://www.latex-project.org/lppl.txt -% und Version 1.3c ist Teil aller Verteilungen von LaTeX -% Version 2005/12/01 oder spaeter und dieses Werks. -% -% Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" -% (allein durch den Autor verwaltet). -% -% Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. -% -% Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. % ====================================================================== -% \fi -% -% \CharacterTable -% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z -% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z -% Digits \0\1\2\3\4\5\6\7\8\9 -% Exclamation \! Double quote \" Hash (number) \# -% Dollar \$ Percent \% Ampersand \& -% Acute accent \' Left paren \( Right paren \) -% Asterisk \* Plus \+ Comma \, -% Minus \- Point \. Solidus \/ -% Colon \: Semicolon \; Less than \< -% Equals \= Greater than \> Question mark \? -% Commercial at \@ Left bracket \[ Backslash \\ -% Right bracket \] Circumflex \^ Underscore \_ -% Grave accent \` Left brace \{ Vertical bar \| -% Right brace \} Tilde \~} -% -% \iffalse -%%% From File: $Id: scrkernel-floats.dtx 3620 2021-10-12 10:27:43Z kohm $ +%%% From File: $Id: scrkernel-floats.dtx 3773 2022-03-29 06:27:55Z kohm $ %<option>%%% (run: option) %<body>%%% (run: body) %<*dtx> -% \fi \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \begingroup \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} - \filedate$Date: 2021-10-12 12:27:43 +0200 (Tue, 12 Oct 2021) $ + \filedate$Date: 2022-03-29 08:27:55 +0200 (Tue, 29 Mar 2022) $ \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}} - \filerevision$Revision: 3620 $ + \filerevision$Revision: 3773 $ \edef\reserved@a{% \noexpand\endgroup \noexpand\ProvidesFile{scrkernel-floats.dtx}% @@ -73,182 +36,261 @@ (floats)] }% \reserved@a -% \iffalse -\documentclass[parskip=half-]{scrdoc} -\usepackage[english,ngerman]{babel} -\CodelineIndex -\RecordChanges -\GetFileInfo{scrkernel-floats.dtx} -\title{\KOMAScript{} \partname\ \texttt{\filename}% - \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} -\date{\filedate} -\author{Markus Kohm} - +\documentclass[USenglish]{koma-script-source-doc} +\usepackage{babel} +\setcounter{StandardModuleDepth}{2} \begin{document} - \maketitle - \tableofcontents - \DocInput{\filename} +\DocInput{scrkernel-floats.dtx} \end{document} %</dtx> % \fi % -% \selectlanguage{ngerman} +% \changes{v2.95}{2002/07/01}{new by splitting \file{scrclass.dtx}} +% \changes{v3.36}{2022/02/22}{switch over from \cls*{scrdoc} to +% \cls*{koma-script-source-doc}} +% \changes{v3.36}{2022/02/22}{implementation documentation in English} % -% \changes{v2.95}{2002/06/25}{% -% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% \GetFileInfo{scrkernel-floats.dtx} +% \title{Code for the Foats of the +% \href{https://komascript.de}{\KOMAScript} Classes} +% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}} +% \date{Revision \fileversion{} of \filedate} +% \maketitle +% \begin{abstract} +% The code for floats in \file{scrkernel-floats.dtx} is older than the +% generic hook mechanism in the \LaTeX{} kernel. Because of this, it +% currently does not use the kernel hook mechanism. Mostly it is also older +% then the \KOMAScript{} package \pkg*{tocbasic} to implement and manage +% floats. So several code has been adapted several times and maybe a general +% re-implementation would be a good idea. +% \end{abstract} +% \tableofcontents % -% \section{Gleitumgebungen} +% \section{User Manual} % -% \KOMAScript{} verfügt bezüglich der Gleitumgebungen über einige -% Features, die über das, was die Standardklassen bieten, hinaus -% geht. \marginline{Geplant!} Allerdings ist das hier verwendete Interface -% gnadenlos veraltet und wird deshalb irgendwann ersetzt. Dabei wird -% höchstwahrscheinlich grundsätzlich auf das \textsf{caption}-Paket aufgebaut -% werden. Man betrachte dieses Modul daher als grundsätzlich zur Disposition -% stehend. +% You can find the user documentation the commands implemented here in the +% \KOMAScript{} manual, either the German \file{scrguide} or the English +% \file{scrguien}. % -% Die einzige Gleitumgebung, über die Briefe derzeit verfügen sind -% Randnotizen. % -% \StopEventually{\PrintIndex\PrintChanges} +% \MaybeStop{\PrintIndex} % -% \iffalse -%<*option> -% \fi % -% \iffalse -%<*class> -%<*!letter> -% \fi +% \section{Implementation of Floats} +% +% All this code is for the classes only and not for the \KOMAScript{} letter +% class, because letter classes usually do not provide floats. If you need +% letters with floats, just use \KOMAScript{} class \cls*{scrartcl} with +% \KOMAScript{} package \pkg*{scrletter}. % -% \subsection{Einige Anweisungen und Einstellungen für die Optionen} +% \begin{macrocode} +%<*class&!letter> +% \end{macrocode} +% +% \subsection{Some macros and configurations for the options} % -% Einige Anweisungen und Einstellungen werden bereits benötigt, bevor die -% Optionen abgearbeitet werden. +% We need some of the macros an settings already when processing the options. % -% \begin{macro}{\if@captionabove} -% \changes{v2.8h}{2001/07/19}{neu}%^^A -% \changes{v3.09}{2011/03/23}{Initialisierung vor den Optionen}%^^A -% Ob es sich bei \cs{caption} um eine Unter- oder Überschrift handelt und also -% \cs{abovecaptionskip} davor und \cs{belowcaptionskip} danach steht -% oder umgekehrt, wird über diesen Schalter gesteuert. Voreingestellt -% sind Unterschriften. +% \begin{macro}{\@captionabovefalse,\@captionabovetrue,\if@captionabove} +% \changes{v2.8h}{2001/07/19}{added} +% \changes{v3.09}{2011/03/23}{moved before definition of options} +% Boolean switch to decide whether a \cs{caption} has to behave like +% \cs{captionabove} or \cs{captionbelow}. The default is \cs{captionbelow}. % \begin{macrocode} +%<*option> \newif\if@captionabove\@captionabovefalse % \end{macrocode} -% \end{macro} +% \end{macro}^^A \if@captionabove % -% \begin{macro}{\if@tablecaptionabove} -% \changes{v2.8h}{2001/07/19}{neu Option}%^^A -% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen -% verschoben} -% \changes{v2.98c}{2008/02/18}{Definition erfolgt etwas früher}%^^A -% \begin{macro}{\@tablecaptionabovetrue} -% \begin{macro}{\@tablecaptionabovefalse} -% Die Einstellung, ob es Tabellenüber- oder -unterschriften sind, wird in -% einem Schalter gespeichert. +% \begin{macro}{\@tablecaptionabovefalse,\@tablecaptionabovetrue,\if@tablecaptionabove} +% \changes{v2.8h}{2001/07/19}{added} +% \changes{v2.8k}{2001/08/15}{moved from \pkg*{typearea} into the classes} +% \changes{v2.98c}{2008/02/18}{moved before definition of options} +% Boolean switch to decide whether a \cs{caption} inside a \env{table} +% environment has to behave like \cs{captionabove} or \cs{captionbelow}. The +% default is \cs{captionbelow}. % \begin{macrocode} \newif\if@tablecaptionabove\@tablecaptionabovefalse % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro}^^A \if@tablecaptionabove % -% \begin{macro}{\if@figurecaptionabove} -% \changes{v3.09}{2011/03/23}{neu Option}%^^A -% \begin{macro}{\@figurecaptionabovetrue} -% \changes{v3.09}{2011/03/23}{neu (intern)}%^^A -% \begin{macro}{\@figurecaptionabovefalse} -% \changes{v3.09}{2011/03/23}{neu (intern)}%^^A -% Die Einstellung, ob es Abbildungsüber- oder -unterschriften sind, wird in -% einem Schalter gespeichert. +% \begin{macro}{\@figurecaptionabovefalse,\@figurecaptionabovetrue,\if@figurecaptionabove} +% \changes{v3.09}{2011/03/23}{added} +% Boolean switch to decide whether a \cs{caption} inside a \env{figure} +% environment has to behave like \cs{captionabove} or \cs{captionbelow}. The +% default is \cs{captionbelow}. % \begin{macrocode} \newif\if@figurecaptionabove\@figurecaptionabovefalse % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro}^^A \if@figurecaptionabove % -% \selectlanguage{english} -% \begin{macro}{\ifonelinecaptions} -% \changes{v2.8q}{2001/11/17}{new boolean} +% \begin{macro}{\onelinecaptionsfalse,\onelinecaptionstrue,\ifonelinecaptions} +% \changes{v2.8q}{2001/11/17}{added} % \changes{v2.98c}{2008/03/03}{earlier definition} -% \begin{macro}{\onelinecaptionstrue} -% \begin{macro}{\onelinecaptionsfalse} % The boolean is used to distinguish whether or not use a special handling of % captions with one text line only. The name of the boolean is traditionally % but nevertheless should seen as internal. % \begin{macrocode} \newif\ifonelinecaptions\onelinecaptionstrue % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \selectlanguage{ngerman} +% \end{macro}^^A \ifonelinecaptions % % \begin{macro}{\scap@pos} -% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A -% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher}%^^A -% Hier wird gespeichert, ob die Beschreibung bei |captionbeside| links oder -% rechts vom Rest stehen soll. Voreingestellt ist rechts davon -% (\emph{\textbf{r}ight}). Andere Möglichkeiten sind \emph{\textbf{l}eft}, -% \emph{\textbf{o}uter}, \emph{\textbf{i}nner}. +% \changes{v2.8q}{2001/11/22}{added} +% \changes{v2.98c}{2008/03/03}{earlier definition} +% Environment \env{captionbeside} supports several horizontal placements for +% the caption beside the object: +% \begin{description} +% \item[\texttt{i}:] caption inner beside the object, which means left beside +% on odd pages and right beside on even pages (note: single-sided documents +% have only odd pages), +% \item[\texttt{l}:] caption left beside the object, +% \item[\texttt{o}:] caption outer beside the object, which means right beside +% on odd pages and left beside on even pages (note: single-sided documents +% have only odd pages), +% \item[\texttt{r}:] caption right beside the object. +% \end{description} +% The default is right beside. % \begin{macrocode} \newcommand*{\scap@pos}{r} % \end{macrocode} -% \end{macro} +% \end{macro}^^A \scap@pos % % \begin{macro}{\scap@valign} -% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A -% \changes{v2.98c}{2008/03/03}{Definition erfolgt etwas früher}%^^A -% Hier wird gespeichert, ob bei |captionbeside| die beiden Boxen (siehe -% Definition der Umgebung) \emph{\textbf{t}op}, \emph{\textbf{b}ottem} oder -% \emph{\textbf{c}enter} ausgerichtet werden sollen. Andere Buchstaben -% sind nicht erlaubt. Voreingestellt ist \emph{\textbf{b}ottem}. +% \changes{v2.8q}{2001/11/22}{added} +% \changes{v2.98c}{2008/03/03}{earlier definition} +% Environment \env{captionbeside} support different vertical alignments +% for the object box: +% \begin{description} +% \item[\texttt{c}:] centered, +% \item[\texttt{b}:] bottom, +% \item[\texttt{t}:] top. +% \end{description} +% The default is bottom. % \begin{macrocode} \newcommand*{\scap@valign}{b} % \end{macrocode} -% \end{macro} +% \end{macro}^^A \scap@valign % -% \subsection{Optionen für Titel von Gleitumgebungen} +% \subsection{Options for the captions} % % \begin{option}{captions} -% \changes{v2.98c}{2008/02/18}{Neuer Zentralschalter für caption}%^^A -% \changes{v3.09}{2011/04/02}{Neue Werte (\texttt{heading}, -% \texttt{signature}, \texttt{figureheading}, -% \texttt{figuresignature})}%^^A -% \changes{v3.17}{2015/03/11}{Beachtung der Signalisierung mit -% \cs{FamilyKeyState}}%^^A -% \changes{v3.17}{2015/03/11}{Verwendung der internen Werteliste}%^^A -% Dies ist nun die zentrale Option für Einstellungen zu \cs{caption}. Als -% besondere Schwierigkeit ergibt sich dabei jedoch, dass das Paket -% \textsf{caption} einige Sonderbehandlungen für \KOMAScript{} enthält, die -% darauf angewiesen sind, dass die alte Optionenschnittstelle verwendet -% wird. Erfreulicherweise funktioniert das aber ab Version~3.1g über eine -% Erweiterung der Schalter-Umschaltbefehle (|\@tablecaptionabovetrue|, -% |\@tablecaptionabovefalse|, |\onelinecaptionstrue|, -% |\onelinecaptionsfalse|), so dass lediglich dafür georgt werden muss, -% dass diese weiterhin verwendet werden. +% \changes{v2.98c}{2008/02/18}{new \pkg*{keyval} option} +% \changes{v3.09}{2011/04/02}{new values \opt{heading}, \opt{signature}, +% \opt{figureheading}, \opt{figuresignature}} +% \changes{v3.17}{2015/03/11}{using \cs{FamilyKeyState}} +% \changes{v3.17}{2015/03/11}{using internal value storage} +% This is the general option for the settings of captions. Because of +% compatibility with package \pkg{caption}, several of the macros, that are +% used to handle the values to the option, cannot be renamed and have to be +% used. This makes it difficult to change anything here. However, the +% currently provides values are: % \begin{macrocode} \KOMA@key{captions}{% \KOMA@set@ncmdkey{captions}{@tempa}{% +% \end{macrocode} +% \begin{description} +% \item[\opt{=heading}:] change the \cs{caption} default to \cs{captionabove}. +% \end{description} +% \begin{macrocode} {heading}{0},{above}{0},{top}{0},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=signature}:] change the \cs{caption} default to \cs{captionbelow}. +% \end{description} +% \begin{macrocode} {signature}{1},{below}{1},{bot}{1},{bottom}{1},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=tableheading}:] change the \cs{caption} default inside +% \env{table} environments to \cs{captionabove}. +% \end{description} +% \begin{macrocode} {tableheading}{2},% {tableabove}{2},{abovetable}{2},{abovetabular}{2},{topattable}{2},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=tablesignature}:] change the \cs{caption} default inside +% \env{table} environment to \cs{captionbelow}. +% \end{description} +% \begin{macrocode} {tablesignature}{3},% {tablebelow}{3},{belowtable}{3},{belowtabular}{3},{bottomattable}{3},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=figureheading}:] change the \cs{caption} default inside +% \env{figure} environments to \cs{captionabove}. +% \end{description} +% \begin{macrocode} {figureheading}{4},{figureabove}{4},{abovefigure}{4},{topatfigure}{4},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=figuresignature}:] change the \cs{caption} default inside +% \env{figure} environment to \cs{captionbelow}. +% \end{description} +% \begin{macrocode} {figuresignature}{5},{figurebelow}{5},{belowfigure}{5},{bottomatfigure}{5},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=oneline}:] special treatment for one line captions. +% \end{description} +% \begin{macrocode} {oneline}{6},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=oneline}:] no special treatment for one line captions. +% \end{description} +% \begin{macrocode} {nooneline}{7},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=rightbeside}:] change horizontal \env{captionbeside} placement +% to right beside (see \cs{scap@pos} above). +% \end{description} +% \begin{macrocode} {rightbeside}{8},{besideright}{8},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=leftbeside}:] change horizontal \env{captionbeside} placement +% to left beside (see \cs{scap@pos} above). +% \end{description} +% \begin{macrocode} {leftbeside}{9},{besideleft}{9},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=innerbeside}:] change horizontal \env{captionbeside} placement +% to inner beside (see \cs{scap@pos} above). +% \end{description} +% \begin{macrocode} {innerbeside}{10},{besideinner}{10},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=outerbeside}:] change horizontal \env{captionbeside} placement +% to outer beside (see \cs{scap@pos} above). +% \end{description} +% \begin{macrocode} {outerbeside}{11},{besideouter}{11},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=topbeside}:] change vertical \env{captionbeside} alignment +% to top (see \cs{scap@valign} above). +% \end{description} +% \begin{macrocode} {topbeside}{12},{besidetop}{12},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=centeredbeside}:] change vertical \env{captionbeside} alignment +% to centered (see \cs{scap@valign} above). +% \end{description} +% \begin{macrocode} {centeredbeside}{13},{besidecentered}{13},% {middlebeside}{13},{besidemiddle}{13},% +% \end{macrocode} +% \begin{description} +% \item[\opt{=bottombeside}:] change vertical \env{captionbeside} alignment +% to bottom (see \cs{scap@valign} above). +% \end{description} +% \begin{macrocode} {bottombeside}{14},{besidebottom}{14}% }{#1}% \ifx\FamilyKeyState\FamilyKeyStateProcessed @@ -352,251 +394,174 @@ \KOMA@kav@add{.\KOMAClassFileName}{captions}{rightbeside} \KOMA@kav@add{.\KOMAClassFileName}{captions}{bottombeside} % \end{macrocode} -% \end{option} +% \end{option}^^A captions % -% \begin{option}{tablecaptionabove} -% \changes{v2.8h}{2001/07/19}{neue Option}%^^A -% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen -% verschoben} +% \begin{option}{tablecaptionabove,tablecaptionbelow} +% \changes{v2.8h}{2001/07/19}{added} +% \changes{v2.8k}{2001/08/15}{moved from \pkg*{typearea} into the classes} % \changes{v2.98c}{2008/02/18}{obsolete} -% \changes{v3.01a}{2008/11/20}{deprecated}%^^A -% \begin{option}{tablecaptionbelow} -% \changes{v2.8h}{2001/07/19}{neue Option}%^^A -% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen -% verschoben} -% \changes{v2.98c}{2008/02/18}{obsolete} -% \changes{v3.01a}{2008/11/20}{deprecated}%^^A -% Es besteht nun die Wahl, ob \cs{caption} bei Tabellen für Unter- -% oder Überschriften voreingestellt ist. Die Defaulteinstellung ist -% aus Kompatibilitätsgründen die Tabellenunterschrift. +% \changes{v3.01a}{2008/11/20}{deprecated} +% Implementation of deprecated options by mapping them to corresponding +% \pkg*{keyval} options. % \begin{macrocode} \KOMA@DeclareDeprecatedOption{tablecaptionabove}{captions=tableheading} \KOMA@DeclareDeprecatedOption{tablecaptionbelow}{captions=tablesignature} % \end{macrocode} -% \end{option} -% \end{option} +% \end{option}^^A tablecaptionabove,tablecaptionbelow % -% \selectlanguage{english} % \begin{option}{origlongtable} -% \changes{v2.8l}{2001/08/16}{new option} -% If package \textsf{longtable} is loaded, the classes redefine table titles +% \changes{v2.8l}{2001/08/16}{added} +% If package \pkg{longtable} is loaded, the classes redefine table titles % of that package. However, if the option has been set, this is prevented. -% \begin{macro}{\if@komalongtable} -% \changes{v2.8l}{2001/08/16}{new boolean} -% \begin{macro}{\@komalongtabletrue} -% \begin{macro}{\@komalongtablefalse} +% \begin{macro}{\@komalongtablefalse,\@komalongtabletrue,\if@komalongtable} +% \changes{v2.8l}{2001/08/16}{added} % The wanted behaviour is stored in a boolean. % \begin{macrocode} \newif\if@komalongtable\@komalongtabletrue \DeclareOption{origlongtable}{\@komalongtablefalse} % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{option} +% \end{macro}^^A \if@komalongtable +% \end{option}^^A origlongtable % -% \begin{option}{onelinecaption} +% \begin{option}{onelinecaption,noonelinecaption} % \changes{v2.8q}{2001/11/17}{new option} % \changes{v2.98c}{2008/03/03}{obsolete} -% \changes{v2.98c}{2008/03/03}{extra code for \textsf{caption2} removed} +% \changes{v2.98c}{2008/03/03}{extra code for \pkg{caption2} removed} % \changes{v3.01a}{2008/11/20}{deprecated} -% \begin{option}{noonelinecaption} -% \changes{v2.8q}{2001/11/17}{new option} -% \changes{v2.98c}{2008/03/03}{obsolete} -% \changes{v2.98c}{2008/03/03}{extra code for \textsf{caption2} removed} -% \changes{v3.01a}{2008/11/20}{deprecated}%^^A +% Implementation of deprecated options by mapping them to corresponding +% \pkg*{keyval} options. % \begin{macrocode} \KOMA@DeclareDeprecatedOption{onelinecaption}{captions=oneline} \KOMA@DeclareDeprecatedOption{noonelinecaption}{captions=nooneline} -% \end{macrocode} -% \end{option} -% \end{option} -% \selectlanguage{ngerman} -% -% -% \iffalse -%</!letter> -%</class> %</option> -%<*body> -% \fi -% -% \subsection{Randnotizen} -% -% Randnotizen sind ebenfalls eine Art von Gleitumgebung. -% -% \begin{macro}{\marginline} -% \KOMAScript{} stellt zusätzlich ein Randzeilenmakro zur Verfügung, -% das je nach gerader oder ungerader Seite in doppelseitigen Layout -% rechts- oder linksbündig gesetzt werden muss. -% \changes{v2.4l}{1997/02/06}{Definition mit Hilfe des optionalen -% Parameters von \cs{marginpar} deutlich vereinfacht} -% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}%^^A -% \begin{macrocode} -\newcommand\marginline[1]{% - \marginpar[\raggedleft{#1}]{\raggedright #1}% -} % \end{macrocode} -% \end{macro} +% \end{option}^^A onelinecaption,noonelinecaption % -% \iffalse -%<*class> -%<*!letter> -% \fi % -% \subsection{Definitionen für Titel von Gleitumgebungen} +% \subsection{Macros and commands for the captions} % -% \begin{macro}{\caption} -% \changes{v2.2c}{1995/05/25}{Fließtitel auf CJK umgestellt}%^^A -% Es ist möglich, die Fließumgebungen mit einem Titel und einer -% Beschreibung zu versehen. Diese wird vom ggf. etwas abgesetzt. -% \begin{Length}{abovecaptionskip} -% \begin{Length}{belowcaptionskip} -% Um wieviel ist in zwei Längenregistern gespeichert: +% \changes{v2.2c}{1995/05/25}{support for CJK added} +% The initial feature for defining captions somehow different from the +% standard classes was a request of Werner Lember to add support for CJK +% languages. However not everything is changed. For example the usual lengths +% of the standard classes are still defined, but interpreted somehow different. +% +% \begin{length}{\abovecaptionskip,\belowcaptionskip} +% The distance above and below a caption. The default for captions below the +% object is 10\,pt above the caption and 0 below. Note: For captions above +% the object the lengths are switched: \len{abovecaptionskip} is used +% \emph{below} the caption and \len{belowcaptionskip} is used \emph{above} +% the caption then. % \begin{macrocode} +%<*body> \newlength{\abovecaptionskip} \newlength{\belowcaptionskip} \setlength{\abovecaptionskip}{10\p@} \setlength{\belowcaptionskip}{0\p@} % \end{macrocode} -% \end{Length} -% \end{Length} -% \begin{macro}{\captionformat} -% \changes{v2.3c}{1995/08/06}{neu}%^^A -% Trennung von Label und Text: +% \end{length}^^A \abovecaptionskip,\belowcaptionskip +% \begin{command}{\captionformat} +% \changes{v2.3c}{1995/08/06}{added} +% Separator between label (with number) an text only. % \begin{macrocode} \newcommand*{\captionformat}{:\ } % \end{macrocode} -% \end{macro} +% \end{command}^^A \captionformat +% \begin{command}{\captionabove,\captionbelow} +% \changes{v2.8h}{2001/07/19}{added} % \begin{macro}{\scr@caption} -% \changes{v2.8h}{2001/07/19}{neu (intern)}%^^A -% \begin{macro}{\captionabove} -% \changes{v2.8h}{2001/07/19}{neu}%^^A -% \begin{macro}{\captionbelow} -% \changes{v2.8h}{2001/07/19}{neu}%^^A -% Damit überhaupt zwischen Unter- und Überschriften unterschieden -% werden kann, muss zunächst das Originalmakro gesichert werden. Dies -% geschieht erst zu Beginn des Dokuments, damit Pakete ggf. noch ihre -% eigenen Definitionen von \cs{caption} vornehmen können. Das -% \textsf{hyperref}-Paket ist so ein Kandidat. +% \changes{v2.8h}{2001/07/19}{added} +% We have two different commands \cs{captionabove} and \cs{captionbelow} to +% distinguish captions above or below the object. Internally both use +% \cs{scr@caption}, but set either \cs{@captionabovetrue} or +% \cs{@captionabovefalse}. To allow other packages (e.g. \pkg{hyperref} to +% redefine \cs{caption} the final definition of \cs{scr@caption} is done in +% |\begin{document}|. We cannot use \cs{caption} inside \cs{captionabove} or +% \cs{captionbelow}, because we do use a redefinition of \cs{capion} to use +% \cs{captionabove} or \cs{captionbelow} via \opt{atbegin} at \cs{DeclareNewTOC}. % \begin{macrocode} \newcommand{\scr@caption}{} \AtBeginDocument{\let\scr@caption\caption} % \end{macrocode} -% \end{macro} +% \end{macro}^^A \scr@caption % Jetzt ist es möglich durch einfaches Umlegen des Schalters für die % korrekte Darstellung zu sorgen: % \begin{macrocode} \newcommand{\captionabove}{\@captionabovetrue\scr@caption} \newcommand{\captionbelow}{\@captionabovefalse\scr@caption} % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{command}^^A \captionabove,\captionbelow % % % \begin{environment}{captionbeside} -% \changes{v2.8q}{2001/11/22}{neu}%^^A -% Um einiges komplizierter als die Beschreibung unter oder über die -% Tabelle oder Abbildung zu setzen, ist der Versuch, sie daneben zu -% setzen. Dies funktioniert frundsätzlich auch nicht mit -% \texttt{longtable}-Tabellen. -% +% \changes{v2.8q}{2001/11/22}{added} +% Placing captions above or below the object inside a float is easy. But to +% place it beside the object an additional environment is needed. This has to +% collect the object (environment body) into a box and then print it side by +% side with a second box with the caption. Note: This cannot work with +% tables of package \pkg{longtable} or \pkg{supertabular} or similar packages. +% \begin{quote}\raggedright +% |\begin{captionbeside}|\oarg{list +% entry}\marg{caption}\oarg{position}\oarg{with}\oarg{offset}|*|\\ +% \dots\\ +% |\end{captionbeside}| +% \end{quote} +% Note: The asterisk is optional and changes the meaning of \meta{offset}. % \begin{macro}{\scap@caption} -% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A -% Die Beschreibung, die der Umgebung als Parameter übergeben wird, -% muss zwischengespeichert werden. Hier wird lediglich das Makro -% dafür reserviert. +% \changes{v2.8q}{2001/11/22}{added} +% The \meta{caption} is locally stored into helper macro \cs{scap@caption}. % \begin{macrocode} \newcommand*{\scap@caption}{} % \end{macrocode} -% \end{macro} -% +% \end{macro}^^A \scap@caption % \begin{macro}{\scap@width} -% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A -% Die Breite, die Tabelle bzw. Abbildung einschließlich Beschreibung -% und insgesamt haben dürften. Voreingestellt ist die gesamte -% verfügbare Breite. +% \changes{v2.8q}{2001/11/22}{added} +% The optional \meta{width}, which is the width of the whole environment +% inclusive caption, is locally stored into helper macro \cs{scap@width}. The +% default is the while line width. % \begin{macrocode} \newcommand*{\scap@width}{\linewidth} % \end{macrocode} -% \end{macro} -% +% \end{macro}^^A \scap@width % \begin{macro}{\scap@move} -% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A -% Der Wert, um den die Tabelle bzw. Abbildung einschließlich -% Beschreibung nach rechts bzw. außen verschoben werden. -% Voreingestellt ist keine Verschiebung. +% \changes{v2.8q}{2001/11/22}{added} +% If \cs{scap@width} is not the line width, the environment is horizontal +% centered by default. But if \meta{offset} is used, this is used as a +% distance from the left margin. This is locally stored into helper macro +% \cs{scap@move}. % \begin{macrocode} \newcommand*{\scap@move}{\z@} % \end{macrocode} -% \end{macro} -% -% \begin{macro}{\scap@currentlabel} -% \changes{v2.8q}{2001/11/24}{neu (intern)}%^^A -% Da \cs{caption} innerhalb einer Umgebung (\cs{parbox} und -% \texttt{captionbeside}) aufgerufen wird, würde ein \cs{label}, das -% zwar innerhalb der Gleitumgebung aber nach der -% \texttt{captionbeside}-Umgebung eingefügt wird, nicht die -% Gleitumgebung, sondern die umgebende Referenzebene -% referenzieren. Damit das nicht geschieht, wird in der -% \texttt{captionbeside}-Umgebung in der \cs{parbox} die aktuelle -% Referenz \cs{@currentlabel} in dem globalen Makro -% \cs{scap@currentlabel} zwischengespeichert und am Ende der -% \texttt{captionbeside}-Umgebung mit Hilfe von \cs{aftergroup} nach -% dem Ende der Umgebung wiederhergestellt. Da die -% \texttt{captionbeside}-Umgebung ohnehin nicht geschachtelt werden -% kann, funktioniert das problemlos. Für diese Aktion wird hier ein -% globales Makro reserviert. +% \end{macro}^^A \scap@move +% \begin{macro}{\scap@altfalse,\scap@alttrue,\ifscap@alt} +% \changes{v2.8q}{2001/11/22}{added} +% The boolean switch \cs{ifscap@alt} is used to decide if in twoside mode the +% movement of \cs{scap@move} has to be done from the left or the right margin +% and to left or to the right. % \begin{macrocode} -\newcommand*{\scap@currentlabel}{} +\newif\ifscap@alt % \end{macrocode} -% \end{macro} -% -% \begin{macro}{\ifscap@alt} -% \changes{v2.8q}{2001/11/22}{neuer Schalter}%^^A -% \begin{macro}{\scap@alttrue} -% \begin{macro}{\scap@altfalse} -% Der Schalter, der angibt, ob die Verschiebung \cs{scap@move} im -% doppelseitigen Modus aus linken Seiten vom rechten Rand aus nach -% links erfolgen soll. +% \end{macro}^^A \ifscap@alt +% \begin{macro}{\scap@currentlabel} +% \changes{v2.8q}{2001/11/24}{added} +% Because of using \cs{caption} inside a box and inside an environment, a +% label after the \env{captionbeside} environment usually would not reference +% the caption number. To preserve this after the end of the +% \env{captionbeside} the current label is locally stored into global +% \cs{scap@currentlabel} and restored after the end of the environment using +% \cs{aftergroup}. Note: You can have only one \cs{label} inside!. % \begin{macrocode} -\newif\ifscap@alt +\newcommand*{\scap@currentlabel}{} % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\@captionbeside} -% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A -% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by -% \cs{kernel@ifnextchar}}%^^A -% \begin{macro}{\@@captionbeside} -% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A -% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by -% \cs{kernel@ifnextchar}}%^^A -% \begin{macro}{\@@@captionbeside} -% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A -% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by -% \cs{kernel@ifnextchar}}%^^A +% \end{macro}^^A \scap@currentlabel +% \begin{macro}{\@@@captionbeside,\@@captionbeside,\@captionbeside} +% \changes{v2.8q}{2001/11/22}{added} +% \changes{v3.20}{2016/04/12}{\cs{@ifnextchar} replaced by \cs{kernel@ifnextchar}} % \begin{macro}{\@@@@captionbeside} -% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A -% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} -% ersetzt}%^^A -% Die Umgebung soll einmal folgende Parameter besitzen: -% \begin{description} -% \item[(optional)] Verzeichniseintrag -% \item[(obligatorisch)] Beschreibung -% \item[(optional)] lokaler Wert für \cs{scap@pos} -% \item[(optional)] lokaler Wert für \cs{scap@width} -% \item[(optional)] lokaler Wert für \cs{scap@move} -% \item[(*)] lokaler Wert für \cs{ifscap@alt} (Stern gesetzt -% entspricht \cs{scap@alttrue} -% \end{description} -% Wie man sieht, sollte man bei Angabe aller optionalen Parameter auch -% bewusst den Stern setzen oder darauf verzichten. -% -% Damit alle Parameter ausgewertet werden können, werden einige -% Hilfsmakros benötigt. +% \changes{v2.8q}{2001/11/22}{added} +% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}} +% To handle all the optional arguments and the optional star at the end, +% several helper macros are needed (because we currently do not use \pkg{xparse}). % \begin{macrocode} \newcommand*{\@captionbeside}{} \long\def\@captionbeside[#1]#2{% @@ -630,26 +595,21 @@ {\scap@altfalse\c@pti@nb@sid@[{#1}]{#2}}% } % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% +% \end{macro}^^A \@@@@captionbeside +% \end{macro}^^A \@@@captionbeside … \@captionbeside % \begin{macro}{\c@pti@nb@sid@b@x} -% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A -% Es wird noch eines der kostbaren Boxregister benötigt. +% \changes{v2.8q}{2001/11/22}{added} +% We also use our own box register to collect the environment body. % \begin{macrocode} \newbox\c@pti@nb@sid@b@x % \end{macrocode} % \end{macro} -% % \begin{macro}{\c@pti@nb@sid@} -% \changes{v2.8q}{2001/11/22}{neu (intern)}%^^A -% \changes{v2.98c}{2008/03/11}{vertikale Ausrichtung korrigiert}%^^A -% \changes{v3.07a}{2010/11/04}{vertikale Ausrichtung im t- und b-Fall erneut -% korrigiert}%^^A -% Hier wird nun die Umgebung eigentlich geöffnet, während zuvor nur -% die Parameter ausgewertet wurden. +% \changes{v2.8q}{2001/11/22}{added} +% \changes{v2.98c}{2008/03/11}{vertical alignment fixed} +% \changes{v3.07a}{2010/11/04}{vertical alignment \texttt{t} and \texttt{b} fixed} +% This is the real beginning of the environment. After collecting all the +% arguments into local macros. % \begin{macrocode} \newcommand{\c@pti@nb@sid@}{} \long\def\c@pti@nb@sid@[#1]#2{% @@ -669,22 +629,19 @@ \begin{lrbox}{\c@pti@nb@sid@b@x}% } % \end{macrocode} -% \end{macro} -% -% Jetzt endlich können wir uns auf die Umgebung stürzen. Die -% Umgebung zu starten ist einfach. Es wird ein Doppelargumentmakro -% ausgeführt. +% \end{macro}^^A \c@pti@nb@sid@ +% Now we can use all of the helper macros to begin the environment. We use +% \LaTeX{} kernel macro \cs{@dblarg} to define an argument with first +% optional argument defaults to mandatory second argument. % \begin{macrocode} \newenvironment*{captionbeside}{% - \@dblarg\@captionbeside% + \@dblarg\@captionbeside }{% % \end{macrocode} -% Komplizierter ist die Beendigung der Umgebung. Hier fällt der -% gesamte Satzaufwand an. -% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt -% \cs{if@thispageodd}} -% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} durch \cs{Ifthispageodd} -% ersetzt}%^^A +% This was easy (because of using all the helper macros), but the end of the +% environment isn't. Here we do all the calculations for printing. +% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} replaced by \cs{if@thispageodd}} +% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} replaced by \cs{Ifthispageodd}} % \begin{macrocode} \end{lrbox}% \settowidth{\@tempdima}{\usebox\c@pti@nb@sid@b@x}% @@ -718,7 +675,7 @@ \hspace*{\@tempdimc}% % \end{macrocode} % \changes{v2.9p}{2003/12/10}{\cs{@temdima} replaced by -% \cs{wd}\cs{c@pti@nb@sid@b@x}, because \cs{@temdima} would be changed} +% \cs{wd}\cs{c@pti@nb@sid@b@x}, because \cs{@temdima} would be changed} % \begin{macrocode} \if l\@tempa \rlap{% @@ -740,103 +697,72 @@ \aftergroup\scap@currentlabel } % \end{macrocode} -% \end{environment} +% \end{environment}^^A captionbeside % % -% \begin{macro}{\capfont} -% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} -% Die Schriftart der Titel kann eingestellt werden. Dazu dient dieses -% Makro, das als internes Makro zu verstehen ist, -% \begin{macro}{\caplabelfont} -% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} eingefügt} -% Davon unabhängig kann auch die Schriftart der Titel-Titel -% ("`Abbildung X:"') eingestellt werden. Auch dieses Makro ist als -% internes Makro zu verstehen. +% \begin{fontelement}{caption,captionlabel} +% We need two font elements for the caption at whole and the label part only. +% \begin{macro}{\capfont,\caplabelfont} +% \changes{v2.8c}{2001/06/29}{\cs{normalcolor} added} +% Originally two user macros has been used to change the fonts. To stay +% compatible with old \KOMAScript{} and also i.e. with package \pkg{caption}, +% we still define \cs{capfont} and \cs{caplabelfont} as internal storage of +% the font elements. But already from \KOMAScript{} version 2.8c these should +% be interpreted as internal macros. % \begin{macrocode} \newcommand*\capfont{\normalfont\normalcolor} \newcommand*\caplabelfont{\normalfont\normalcolor} % \end{macrocode} -% \end{macro} -% \end{macro} -% -% \begin{macro}{\scr@fnt@caption} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{caption}} -% \begin{macro}{\scr@fnt@captionlabel} -% \changes{v2.8o}{2001/09/14}{neues Element \texttt{captionlabel}} -% Die eigentliche Änderung der Schriftart erfolgt über das Element -% \texttt{caption} bzw. \texttt{captionlabel}. +% \end{macro}^^A \capfont,\caplabelfont +% \begin{macro}{\scr@fnt@caption,\scr@fnt@captionlabel} +% \changes{v2.8o}{2001/09/14}{added} +% Because of that non-default for the internal storage the font elements have +% to be defined \emph{manually} instead of using \cs{newkomafont}. % \begin{macrocode} \newcommand*{\scr@fnt@caption}{\capfont} \newcommand*{\scr@fnt@captionlabel}{\caplabelfont} % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro}^^A \scr@fnt@caption,\scr@fnt@captionlabel +% \end{fontelement}^^A caption,captionlabel % % \begin{macro}{\@makecaption} -% \changes{v2.3a}{1995/07/08}{\cs{setbox}\cs{tempboxa}\cs{hbox} -% durch \cs{sbox}\cs{@tempboxa} ersetzt} -% \changes{v2.3a}{1995/07/08}{Minipage-Flag zurückgesetzt (ist das -% ok?)} -% \changes{v2.3f}{1995/12/09}{Fontumschaltung einheitlich für lange -% und kurze Unter-/Überschriften}%^^A -% \changes{v2.5g}{1999/10/09}{neben den komplett hängenden -% Titeln sind nun auch nicht hängende oder teilweise hängende -% möglich}%^^A -% Bis Version 2.5f sah die Definition wie folgt aus. -% \begin{verbatim} -% \long\def\@makecaption#1#2{% -% \vskip\abovecaptionskip -% \sbox\@tempboxa{{\caplabelfont #1\captionformat}{\capfont #2}}% -% \ifdim \wd\@tempboxa >\hsize -% \@hangfrom{{\caplabelfont #1\captionformat}}{\capfont #2\par} -% \else -% \global \@minipagefalse -% \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% -% \fi -% \vskip\belowcaptionskip} -% \end{verbatim} -% \begin{macro}{\ifdofullc@p} -% Nun jedoch wird das ganze etwas komplizierter. Als erstes wird ein -% Schalter benötigt, der angibt, ob auf die volle Länge des "`Labels"' -% eingezogen werden soll, oder nicht: +% \changes{v2.3a}{1995/07/08}{using \cs{sbox} instead of \cs{setbox}} +% \changes{v2.3a}{1995/07/08}{using \cs{@minipagefalse}} +% \changes{v2.3f}{1995/12/09}{using same font switching for long and short captions} +% \changes{v2.5g}{1999/10/09}{supporting partial hanging captions} +% \begin{macro}{\dofullc@pfalse,\dofullc@ptrue,\ifdofullc@p} +% The boolean switch \cs{ifdofullc@p} is true for caption texts, that should +% be full hanging (behind the label part), which is the default. % \begin{macrocode} \newif\ifdofullc@p -% \end{macrocode} -% wobei die Standardeinstellung der volle Einzug ist, um zum bisherigen -% Verhalten kompatibel zu bleiben. -% \begin{macrocode} \dofullc@ptrue % \end{macrocode} -% \end{macro} +% \end{macro}^^A \ifdofullc@p % \begin{macro}{\if@capbreak} -% \changes{v2.8j}{2001/07/30}{neu}%^^A -% Außerdem gibt es einen Schalter, der angibt, ob nach dem Label ein -% Umbruch erfolgen soll. Dies ist normalerweise nicht der Fall. -% \begin{macrocode} -\newif\if@capbreak\@capbreakfalse -% \end{macrocode} -% \end{macro} -% \begin{macro}{\setcapindent} -% \changes{v2.8j}{2001/07/30}{\cs{if@capbreak} wird verwendet} -% \changes{v2.8l}{2001/08/17}{\cs{edef}\cs{cap@indent} statt +% \changes{v2.8j}{2001/07/30}{added} +% The boolean switch \cs{if@capbreak} is true, if the label should be followed +% by a line break, which is not the case by default. +% \begin{macrocode} +\newif\if@capbreak +\@capbreakfalse +% \end{macrocode} +% \end{macro}^^A \@capbreakfalse +% \begin{command}{\setcapindent} +% \begin{macro}{\@@setcaptindent,\@setcapindent} +% \changes{v2.8j}{2001/07/30}{using \cs{if@capbreak}} +% \changes{v2.8l}{2001/08/17}{using \cs{edef}\cs{cap@indent} instead of % \cs{def}\cs{cap@indent}} -% \changes{v2.8q}{2001/11/17}{wird nach dem Laden von -% \textsf{caption2} umdefiniert} -% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} ersetzt} -% \changes{v3.34}{2021/03/22}{Sonderbehandlung für \textsf{caption2} entfernt} -% Dann wird weiter ein Befehl benötigt, mit dem der Benutzer die -% Weite des Einzugs selbst einstellen kann. Da intern für die Weite -% ein Makro verwendet werden soll, findet hier sicherheitshalber eine -% Zuweisung an eine Dimension statt. So sollten Fehlermeldungen hier -% und nicht erst bei Verwendung auftauchen. Natürlich muss hier auch -% der automatische Einzug abgeschaltet werden. In der Sternform wird -% außerdem dafür gesorgt, dass zwischen "`Label"' und Beschreibung -% ein Umbruch erfolgt. In der normalen Version wird stattdessen für -% Kompatibilität zu früheren Versionen gesorgt. -% \begin{macro}{\@setcapindent} -% \begin{macro}{\@@setcaptindent} -% Für die Implementierung der Sternform werden zwei interne Makros -% benötigt. +% \changes{v2.8q}{2001/11/17}{redefined after loading \pkg{caption2}} +% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}} +% \changes{v3.34}{2021/03/22}{special treatment of \pkg{caption2} removed} +% The user can configure the indent using: +% \begin{quote} +% \cs{setcapindent}*\marg{indent} +% \end{quote} +% The optional asterisk activates a line break between the label and the +% text. The \meta{indent} is always an indent of the text from the left. A +% local dimension assignment is done to report errors here and not at +% usage of \cs{cap@indent}. % \begin{macrocode} \newcommand*{\setcapindent}{\kernel@ifstar{\@@setcapindent}{\@setcapindent}} \newcommand*{\@setcapindent}[1]{% @@ -855,33 +781,22 @@ \dofullc@pfalse\@capbreaktrue } % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\setcaphanging} -% \changes{v2.8q}{2001/11/17}{wird nach dem Laden von -% \textsf{caption2} umdefiniert} -% \changes{v3.34}{2021/03/22}{Sonderbehandlung für \textsf{caption2} entfernt} -% Andererseits soll es auch möglich sein, nachträglich wieder den -% automatischen Einzug einzuschalten. Dafür gibt es ein weiteres -% Makro. +% \end{macro}^^A \@@setcaptindent,\@setcapindent +% \end{command}^^A \setcapindent +% \begin{command}{\setcaphanging} +% \changes{v2.8q}{2001/11/17}{redefined after loading \pkg{caption2}} +% \changes{v3.34}{2021/03/22}{special treatment of \pkg{caption2} removed} +% Alternatively the user can select the full hanging printing. % \begin{macrocode} \newcommand*{\setcaphanging}{\dofullc@ptrue\@capbreakfalse} % \end{macrocode} -% \end{macro} -% -% Nun aber zur neuen Definition der Titel. Zunächst geht alles wie -% gehabt. -% \changes{v2.5g}{1999/10/09}{\cs{@makecaption} per \cs{newcommand} -% definiert statt mit \cs{long}\cs{def}} -% \changes{v2.8h}{2001/07/19}{Unterscheidung zwischen Über- und -% Unterschriften}%^^A -% \changes{v2.8j}{2001/07/30}{\cs{@makecaption} verwendet -% \cs{@@makecaption}} -% \changes{v2.8q}{2001/11/17}{die Sonderbehandlung für einzeilige -% \emph{caption}s ist abschaltbar} -% \changes{v2.8q}{2001/11/17}{Titel können in ihrer Breite -% beschränkt werden}%^^A +% \end{command} +% Now, we have all to define \cs{@makecaption} as needed by the \LaTeX{} kernel. +% \changes{v2.5g}{1999/10/09}{using \cs{newcommand}} +% \changes{v2.8h}{2001/07/19}{support for headings and signatures} +% \changes{v2.8j}{2001/07/30}{using \cs{@@makecaption}} +% \changes{v2.8q}{2001/11/17}{special treatment of one line captions is optional} +% \changes{v2.8q}{2001/11/17}{caption width can be limited} % \begin{macrocode} \newcommand{\@makecaption}[2]{% \if@captionabove @@ -897,37 +812,29 @@ \fi } % \end{macrocode} -% \begin{macro}{\@@makecaption} -% Tatsächlich gesetzt wird der Titel mit diesem Makro. Dabei muss der -% erste Parameter entweder \cs{@gobble} oder \cs{@firstofone} sein. -% -% \begin{macro}{\cap@width} -% \changes{v2.8q}{2001/11/17}{neu (intern)}%^^A -% \begin{macro}{\cap@left} -% \changes{v2.8q}{2001/11/17}{neu (intern)}%^^A -% \begin{macro}{\cap@right} -% \changes{v2.8q}{2001/11/17}{neu (intern)}%^^A -% Die Breite der mehrzeiligen bzw. die maximale Breite der einzeiligen -% \emph{caption}s sowie das Makro das links und rechts von der Box mit -% der mehrzeiligen \emph{caption} aufgerufen wird. In der -% Voreinstellung wird für Zentrierung gesorgt. +% \begin{macro}{\cap@width,\cap@left,\cap@right} +% \changes{v2.8q}{2001/11/17}{added} +% Multi line captions can printed with a reduced with. If the width is reduced +% the left an right margin can be changed. The defaults are centering. % \begin{macrocode} \newcommand*{\cap@width}{\hsize} \newcommand*{\cap@left}{\hfill} \newcommand*{\cap@right}{\hfill} % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \begin{macro}{\setcapwidth} -% \changes{v2.8q}{2001/11/17}{neu} -% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt \cs{if@thispageodd}} -% \changes{v2.97}{2007/02/27}{Mindestbreite für captions ist 0\,pt} -% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} durch \cs{Ifthispageodd} -% ersetzt} -% \changes{v3.34}{2021/03/22}{Sonderbehandlung für \textsf{caption2} entfernt} -% Hier wird \cs{cap@width} gesetzt. Dabei werden optional auch -% \cs{cap@left} und \cs{cap@right} angepasst. +% \end{macro}^^A \cap@width,\cap@left,\cap@right +% \begin{command}{\setcapwidth} +% \changes{v2.8q}{2001/11/17}{added} +% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} replaced by \cs{if@thispageodd}} +% \changes{v2.97}{2007/02/27}{minimum width for captions is 0\,pt} +% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} replaced by \cs{Ifthispageodd}} +% \changes{v3.34}{2021/03/22}{special treatment of \pkg{caption2} removed} +% The user command: +% \begin{quote} +% \cs{setcapwidth}\oarg{alignment}\marg{width} +% \end{quote} +% is one choice to set \cs{cap@width} to \meta{width}. The optional +% \meta{alignment} (as usual |l|, |r|, |o|, or |i|) also changes \cs{cap@left} +% and \cs{cap@right}. % \begin{macrocode} \newcommand*{\setcapwidth}[2][]{% \begingroup% @@ -996,14 +903,14 @@ \fi\fi\fi\fi\fi } % \end{macrocode} -% \end{macro}%^^A \setcapwidth -% \begin{macro}{\setcapdynwidth} -% \changes{v3.20}{2016/03/31}{neu} -% Ulrike findet es blöd, dass \cs{setcapwidth} wie \cs{setlength} arbeitet und -% ist der Meinung, dass das Argument erst zur Laufzeit ausgewertet werden -% sollte. Also ein neuer Befehl genau dafür. Es sei allerdings darauf -% hingewiesen, dass Fehler im Argument dann ggf. erst bei jeder -% \cs{caption}-Anweisung und nicht bereits hier ausgegeben werden! +% \end{command}^^A \setcapwidth +% \begin{command}{\setcapdynwidth} +% \changes{v3.20}{2016/03/31}{added} +% Ulrike Fischer requested for an alternative, that does not behave like +% \cs{setlength} and therefore sets the length already at usage of +% \cs{setcapwidth} but at usage of \cs{cap@width}. This is +% \cs{setcapdynwidth}. But in this case mistakes can result in errors while +% usage of \cs{cap@width} too. % \begin{macrocode} \newcommand*{\setcapdynwidth}[2][]{% \def\cap@width{#2}% @@ -1100,34 +1007,28 @@ \fi\fi\fi\fi\fi } % \end{macrocode} -% \end{macro}%^^A \setcapdynwidth +% \end{command}^^A \setcapdynwidth % \begin{macro}{\cap@margin} -% \changes{v2.8q}{2001/11/17}{neu (intern)}%^^A -% Dieses Makro beinhaltet nicht den Wert der Ränder, sondern das -% Makro, mit dem innerhalb von \cs{@@makecaption} die Makros -% \cs{cap@left} und \cs{cap@right} neu definiert werden. Dies -% geschieht nur, wenn die Ränder mit \cs{setcapmargin} gesetzt -% werden. Vordefiniert ist also keinerlei Aktion. +% \changes{v2.8q}{2001/11/17}{added} +% \cs{cap@margin} is used to recalculate \cs{cap@left} and \cs{cap@right} +% inside \cs{@@makecaption}, if the margins has been set using +% \cs{setcapmargin}. Default is no such action. % \begin{macrocode} \newcommand*{\cap@margin}{} \let\cap@margin=\relax% % \end{macrocode} -% \end{macro} -% \begin{macro}{\setcapmargin} +% \end{macro}^^A \cap@margin +% \begin{command}{\setcapmargin} % \changes{v2.8q}{2001/11/17}{neu} -% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar} ersetzt} -% \begin{macro}{\@setcapmargin} -% \changes{v2.8q}{2001/11/17}{neu (intern)} -% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt -% \cs{if@thispageodd}} -% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} durch \cs{Ifthispageodd} -% ersetzt} -% \changes{v3.34}{2021/03/22}{Sonderbehandlung für \textsf{caption2} entfernt} -% \begin{macro}{\@@setcapmargin} -% \changes{v2.8q}{2001/11/17}{neu (intern)}%^^A -% Statt die Breite der \emph{caption} zu setzen, können auch die -% Ränder gesetzt werden. In der Sternvariante werden im zweiseitigen -% Modus die Ränder auf linken Seiten vertauscht. +% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}} +% \begin{macro}{\@@setcapmargin,\@setcapmargin} +% \changes{v2.8q}{2001/11/17}{added} +% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} replaced by \cs{if@thispageodd}} +% \changes{v3.28}{2019/11/19}{\cs{ifthispageodd} replaced by \cs{Ifthispageodd}} +% \changes{v3.34}{2021/03/22}{special treatment for \pkg{caption2} removed} +% Instead of setting of the width of the caption, the left and right margin +% can be set. The star variant switch left and right depending on odd or even +% side in two side mode. % \begin{macrocode} \newcommand*{\setcapmargin}{\kernel@ifstar{\@setcapmargin}{\@@setcapmargin}} \newcommand*{\@setcapmargin}[2][\@tempdimb]{% @@ -1175,41 +1076,32 @@ }% } % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% Jetzt aber zum Eigentlichen. Die Breite der \emph{caption} muss nur -% bestimmte werden, wenn Option \texttt{onelinecaption} verwendet -% wird. Das bedeutet auch, dass bei \texttt{noonelinecaption} das -% Problem mit dem Hochzählen der Fußnoten nicht auftritt. -% \changes{v2.8q}{2002/05/17}{Problem mit doppelten Fußnoten behoben}% -% \changes{v2.95}{2004/01/30}{Korrekturen für vertikalen Abstand und -% \textsl{float}-Paket}% -% \changes{v2.95a}{2006/07/13}{diverse Korrekturen für den vertikalen -% Abstand u.\,a. bei Verwendung des \textsl{color}-Pakets}% -% \changes{v2.97c}{2007/06/06}{\cs{unskip}\cs{strut} eingefügt, um die -% vertikale Ausrichtung im \emph{above}-Fall in eingen Fällen zu -% verbessern}% -% \changes{v3.02a}{2009/01/24}{diverse Gruppen- bzw. Argumentklammern ergänzt}% -% \changes{v3.11c}{2013/06/12}{\cs{capfont} durch -% \cs{usekomafont{caption}}ersetzt}% -% \changes{v3.11c}{2013/06/12}{\cs{caplabelfont} durch -% \cs{usekomafont{captionlabel}}ersetzt}% -% \changes{v3.12}{2013/06/12}{ein \cs{usekomafont} durch -% \cs{usesizeofkomafont} ersetzt} -% \changes{v3.21}{2016/05/31}{Neuimplementierung} +% \end{macro}^^A \@@setcapmargin,\@setcapmargin +% \end{command}^^A \setcapmargin +% \begin{macro}{\@@makecaption} +% The main job is done by \cs{@@makecaption}. It has an additional first +% argument, that has to be either \cs{@gobble} or \cs{@firstofone}. This is +% used to either set a label or not. This is needed for captions of +% \pkg{longtable}. +% \changes{v2.8q}{2002/05/17}{avoid double increase of footnote number} +% \changes{v2.95}{2004/01/30}{fixing vertical skips also with \pkg{float}} +% \changes{v2.95a}{2006/07/13}{fixing vertical skips with \pkg{color}} +% \changes{v2.97c}{2007/06/06}{\cs{unskip}\cs{strut} added to fix vertical +% positions in some \emph{above} cases} +% \changes{v3.02a}{2009/01/24}{braces fixed} +% \changes{v3.11c}{2013/06/12}{using \cs{usekomafont}} +% \changes{v3.12}{2013/06/12}{one \cs{usekomafont} replaced by \cs{usesizeofkomafont}} +% \changes{v3.21}{2016/05/31}{re-implemented} % \begin{macrocode} \newcommand{\@@makecaption}[3]{% % \end{macrocode} -% Als erstes werden die Makros für den linken und rechten Rand generiert. +% Recalculate the margins. % \begin{macrocode} \cap@margin % \end{macrocode} -% Danach wird der Test vorgenommen, ob der Text einzeilig oder -% mehrzeilig zu setzen ist und entsprechend gehandelt: -% \changes{v3.22}{2016/09/01}{Umdefinierung von \cs{stepcounter} und -% \cs{refstepcounter} auf lokale Erhöhung des Zählers geändert, um Probleme -% mit \textsf{isodate} zu umgehen}%^^A +% Test for special treatment of one line captions. +% \changes{v3.22}{2016/09/01}{local redefinition of \cs{stepcounter} and +% \cs{refstepcounter} because of \pkg{isodate}} % \begin{macrocode} \begingroup \ifonelinecaptions @@ -1219,10 +1111,9 @@ \let\@footnotetext=\@gobble \let\hypertarget\@gobbletwo % \end{macrocode} -% \changes{v3.22}{2016/09/01}{Sonderbehandlung für \string\\ u.\,ä. im Text} -% Falls im Text ein \texttt{\string\\} oder \cs{newline} enthalten ist, -% wird ein Infotext ausgegeben und dafür gesorgt, dass mehrzeilig gearbeitet -% wird. +% \changes{v3.22}{2016/09/01}{special treatment of hard coded line breaks} +% If there are hard coded line breaks using |\\| or \cs{newline}, we inform +% the user to use a multi-line caption. % \begin{macrocode} \edef\@xnewline{% \unexpanded{\ClassInfo{\KOMAClassName}{% @@ -1244,13 +1135,11 @@ }% \settowidth{\@tempdima}{\scr@@makesinglelinecaption{#1}{#2}{#3}}% % \end{macrocode} -% \selectlanguage{english} % \changes{v3.34}{2021/03/22}{fix of maximum line width of single line % captions} % Until \KOMAScript~3.34 the test here was wrong, because it used % \cs{linewidth}, which is still the whole line width not the maximum caption % width. From \KOMAScript~3.34 \cs{cap@width} is used. -% \selectlanguage{ngerman} % \begin{macrocode} \ifdim\@tempdima>\cap@width \aftergroup\scr@makemultilinecaption @@ -1264,15 +1153,12 @@ {#1}{#2}{#3}% } % \end{macrocode} -% \begin{macro}{\scr@makesinglelinecaption} -% \changes{v3.21}{2016/05/31}{neu (intern)} -% \begin{macro}{\scr@@makesinglelinecaption} -% \changes{v3.21}{2016/05/31}{neu (intern)} -% Diesen Anweisungen übernehmen die komplette Ausgabe von einzeiligen Texten. -% Das erste Argumen hat \cs{@gobble} oder \cs{@firstofone} zu sein und -% bestimmt darüber ob das Label ausgegeben wird oder nicht. Der Text wird -% dagegen immer ausgegeben! Das vierte Argument im internen Makro ist entweder -% \cs{par} oder leer. +% \begin{macro}{\scr@@makesinglelinecaption,\scr@makesinglelinecaption} +% \changes{v3.21}{2016/05/31}{added} +% The output of single line captions. The first argument once again is +% \cs{@gobble} (to not show a label) or \cs{@firstofone} (to show the +% label). Argument two and three are the label (without separator, that is +% added here) and the caption text. % \begin{macrocode} \newcommand{\scr@makesinglelinecaption}[3]{% {% @@ -1291,10 +1177,10 @@ \ignorespaces #3\unskip}% } % \end{macrocode} -% \end{macro}%^^A \scr@@makesinglelinecaption -% \end{macro}%^^A \scr@makesinglelinecaption +% \end{macro}^^A \scr@@makesinglelinecaption,\scr@makesinglelinecaption % \begin{macro}{\scr@makemultilinecaption} -% \changes{v3.21}{2016/05/31}{neu (intern)}%^^A +% \changes{v3.21}{2016/05/31}{added} +% The output of multi line captions. The arguments are same as above. % \begin{macrocode} \newcommand{\scr@makemultilinecaption}[3]{% {% @@ -1303,11 +1189,10 @@ \cap@left \vbox{\hsize\cap@width\linewidth\hsize % \end{macrocode} -% \changes{v3.25}{2017/11/15}{caption Ausrichtung hinzugefügt}%^^A -% Bevor wir irgend etwas anderes machen, führen wir an der Stelle die -% Ausrichtung für die gesamte \emph{caption} einschließlich Label aus. Dabei -% hat eine vorhandene spezielle Ausrichtung für den Gleitungebungstyp Vorrang -% vor der allgemeinen Ausrichtung für alle Gleitumgebungen: +% \changes{v3.25}{2017/11/15}{caption alignment added} +% First of all we have to use the ragged type depending in the float/caption +% type. If the float/caption type is unknown we can use the general ragged +% type only. % \begin{macrocode} \scr@ifundefinedorrelax{@captype}{% \ClassWarning{\KOMAClassName}{% @@ -1326,10 +1211,8 @@ \@nameuse{ragged\@captype caption}% }% % \end{macrocode} -% Wenn der Schalter \cs{ifdofullc@p} gesetzt ist, wird der Text bezüglich des -% Labels vollständig hängend gesetzt: -% \changes{v3.25}{2017/11/15}{Verwendung von \cs{scr@endstrut} statt -% \cs{unskip}\cs{strut}}%^^A +% Maybe we have to us a full hanging caption. +% \changes{v3.25}{2017/11/15}{Using \cs{scr@endstrut} instead of \cs{unskip}\cs{strut}} % \begin{macrocode} \ifdofullc@p \@hangfrom{% @@ -1344,8 +1227,7 @@ }% {\usekomafont{caption}{#3\scr@endstrut\par}}% % \end{macrocode} -% Anderenfalls soll entweder nach dem Label direkt ein Umbruch erfolgen und -% ein Einzug nur der ersten Zeile zu setzen: +% Maybe a partial hanging caption with line break after the label. % \begin{macrocode} \else \ifdim\cap@indent<\z@ @@ -1359,8 +1241,7 @@ \hspace*{-\cap@indent}#3\scr@endstrut\par }}% % \end{macrocode} -% Oder es soll nach dem Label ein Umbruch erfolgen und danach alle Zeilen mit -% dem entsprechenden Einzug gesetzt werden: +% Or a line break after the label with full hanging. % \begin{macrocode} \else \if@capbreak @@ -1373,10 +1254,8 @@ \noindent\@hangfrom{\hspace*{\cap@indent}}% {\usekomafont{caption}{#3\scr@endstrut\par}}% % \end{macrocode} -% \changes{v3.27a}{2019/10/21}{fehlende Verwendung von Element -% \texttt{caption} ergänzt}%^^A -% Oder es soll gar kein Umbruch erfolgen aber trotzdem alles mit einem -% gewissen Einzug gesetzt werden: +% \changes{v3.27a}{2019/10/21}{missing usage of \fnt{caption} added} +% Or no line break but still with indent. % \begin{macrocode} \else \@hangfrom{\scr@smashdp\strut\hspace*{\cap@indent}}% @@ -1394,7 +1273,7 @@ \fi \fi % \end{macrocode} -% Eigentlich fehlt hier nur die einfachste, gar nicht hängende Form: +% Here we could also add the not hanging version without line break: % \begin{macrocode} %<*neverusethis> % #1{{\usekomafont{caption}{% @@ -1402,7 +1281,7 @@ % {\usekomafont{capion}{\ignorespaces #3\scr@endstrut\par}% %</neverusethis> % \end{macrocode} -% Die allerdings durch die Form mit Einzug 0 abgedeckt wird. +% But this is not needed, because it is the same like indent of 0. % \begin{macrocode} }% \cap@right @@ -1411,16 +1290,20 @@ }\kern-\dp\strutbox } % \end{macrocode} -% \begin{macro}{\setcaptionalignment} -% \changes{v3.25}{2017/11/15}{neu}%^^A -% \changes{v3.28}{2019/11/18}{\cs{ifstr} umbenannt in \cs{Ifstr}}%^^A -% Da es etwas lästig und fehleranfällig ist, die ganzen \cs{raggedcaption} -% und \cs{ragged\dots caption} von Hand zu definieren, gibt es dafür einen -% Befehl. Das erste, optionale Argument ist dabei die Gleitungebung für die -% die Definition erfolgen soll. Ist das Argument nicht leer, wird bei -% definiertem \cs{@captype} dieses als Gleitumgebung angenommen. Ist das -% Argument leer wird stattdessen die allgemeine Ausrichtung festgelegt. Das -% zweite Argument ist ein einzelner Buchstaben, der für die Ausrichtung steht. +% \begin{command}{\setcaptionalignment} +% \begin{macro}{\@setcaptionalignment} +% \changes{v3.25}{2017/11/15}{added} +% \changes{v3.28}{2019/11/18}{\cs{ifstr} replaced by \cs{Ifstr}} +% It is better for users to not define the \cs{raggedcaption} and +% \cs{ragged\dots caption} commands themselves to avoid mistakes. So we have +% \begin{quote} +% \cs{setcaptionalignment}\oarg{float}\marg{alignment} +% \end{quote} +% If \meta{float} is used, \cs{ragged\meta{float}caption} will be changed. If +% \meta{float} is not used, but \cs{@captype} is defined (and not \cs{relax}) +% \cs{ragged\cs{@captype}caption} is defined. If \meta{float} is empty or +% \cs{captype} is undefined (or \cs{relax}) and \meta{float} is not used, +% \cs{raggedcaption} will be changed. % \begin{macrocode} \newcommand*\setcaptionalignment{% \kernel@ifnextchar [%] @@ -1433,9 +1316,9 @@ }% \newcommand*\@setcaptionalignment[2][]{% % \end{macrocode} -% Wenn das optionale Argument nicht leer ist, sollte es eine bereits -% definierte Gleitumgebung sein. Anderenfalls wird vorsichtshalber zumindest -% eine Warnung ausgegeben. Die Ausrichtung wird aber trotzde, definiert. +% If \meta{float} is not empty it should be the name of a already defined +% floating environment. Otherwise we report a warning, but nevertheless define +% the command. % \begin{macrocode} \IfArgIsEmpty{#1}{}{% \expandafter\ifnum @@ -1448,22 +1331,31 @@ \fi }% % \end{macrocode} -% Danach gehen wir die Buchstaben durch. Erlaubt sind: +% Depending on \meta{alignment} the command will be changed: % \begin{description} -% \item[\texttt{j}] -- Blocksatz (\cs{ragged\dots caption} wird \cs{relax}. -% \item[\texttt{l}] -- Blocksatz (\cs{ragged\dots caption} wird -% \cs{raggedright}. -% \item[\texttt{r}] -- Blocksatz (\cs{ragged\dots caption} wird -% \cs{raggedleft}. -% \item[\texttt{c}] -- Blocksatz (\cs{ragged\dots caption} wird +% \item[\texttt{j}] -- justified (\cs{ragged\dots caption} becomes \cs{relax}). +% \item[\texttt{l}] -- left aligned (\cs{ragged\dots caption} becomes +% \cs{raggedright}). +% \item[\texttt{r}] -- right aligned (\cs{ragged\dots caption} becomes +% \cs{raggedleft}). +% \item[\texttt{c}] -- centered (\cs{ragged\dots caption} becomes % \cs{centering}. % \end{description} -% Ist das Paket \textsf{ragged2e} geladen, werden stattdessen die Befehle -% \cs{LaTeXraggedright}, \cs{LaTeXraggedleft} und \cs{LaTeXcentering} -% verwendet. Außerdem führen dann die entsprechenden Großbuchstaben zu -% \cs{justifying}, \cs{RaggedRight}, \cs{RaggedLeft} und -% \cs{Centering}. Anderenfalls werden die Großbuchstaben wie die -% Kleinbuchstaben behandelt und geben zusätzlich eine Warnung aus. +% Note: If \pkg{ragged2e} has been loaded, \cs{LaTeXraggedright}, +% \cs{LaTeXraggedleft} and \cs{LaTeXcentering} are used and the following +% additional \meta{alignment}s are supported: +% \begin{description} +% \item[\texttt{J}] -- justified (\cs{ragged\dots caption} becomes \cs{justifying}). +% \item[\texttt{L}] -- left aligned (\cs{ragged\dots caption} becomes +% \cs{RaggedRight}). +% \item[\texttt{R}] -- right aligned (\cs{ragged\dots caption} becomes +% \cs{RaggedLeft}). +% \item[\texttt{C}] -- centered (\cs{ragged\dots caption} becomes +% \cs{Centering}. +% \end{description} +% Without \pkg{ragged2e} the upper case letters are same like lower case +% letters, but additionally warn. Note: The implementation does also work, if +% \pkg*{scrlayer-scrpage} has defined \cs{LaTeXraggedright} etc. % \begin{macrocode} \def\reserved@a{#2}% \Ifstr{\reserved@a}{j}{% @@ -1556,8 +1448,8 @@ } % \end{macrocode} % \begin{macro}{\scr@caption@raggede@warning} -% \changes{v3.25}{2017/11/15}{neu (intern)}%^^A -% Das ist die oben erwähnte Warnung. +% \changes{v3.25}{2017/11/15}{added} +% The warning used above. % \begin{macrocode} \newcommand*{\scr@caption@raggede@warning}[2]{% \begingroup @@ -1571,42 +1463,35 @@ \endgroup } % \end{macrocode} -% \begin{macro}{\raggedcaption} -% \changes{v3.25}{2017/11/15}{neu}%^^A -% Und natürlich wird eine Standardausrichtung benötigt. Ich bevorzuge hier die -% leere Ausrichtung, weil \LaTeX{} \cs{relax} nicht als definiert erkennt. +% \begin{command}{\raggedcaption} +% \changes{v3.25}{2017/11/15}{added} +% The default alignment is standard alignment (empty means no change). % \begin{macrocode} \newcommand*\raggedcaption{} % \end{macrocode} -% \end{macro} -% \end{macro}%^^A \scr@caption@raggede@warning -% \end{macro}%^^A \setcaptionalignment -% \end{macro}%^^A \scr@makemultilinecaption -% \end{macro}%^^A \@@makecaption -% \end{macro}%^^A \@makecaption -% \end{macro}%^^A \caption +% \end{command}^^A \raggedcaption +% \end{macro}^^A \scr@caption@raggede@warning +% \end{macro}^^A \@setcaptionalignment +% \end{command}^^A \setcaptionalignment +% \end{macro}^^A \scr@makemultilinecaption +% \end{macro}^^A \@@makecaption +% \end{macro}^^A \@makecaption +% +% \subsection{Special treatment of \texorpdfstring{\pkg*{longtable}}{`longtable'} captions} % % \begin{macro}{\LT@makecaption} -% \changes{v2.8j}{2001/07/30}{neu (intern)} -% \changes{v2.8k}{2001/08/15}{keine Umdefinierung, wenn das -% \textsf{caption2}-Paket erkannt oder die Option -% \texttt{origlongtable} gesetzt wurde} -% \changes{v2.8q}{2001/11/18}{Breite und Anordnung wird über -% \KOMAScript-Makros bestimmt} -% \changes{v2.8q}{2001/11/18}{Verwendung von \cs{AfterPackage}} -% \changes{v2.9s}{2004/08/24}{vertikale Abstände durch verschieben von -% \cs{vskip} korrigiert} -% \begin{macro}{\LT@array} -% \changes{v2.8q}{2001/11/18}{neu (intern)} -% \begin{macro}{\LT@caption} -% \changes{v2.8q}{2001/11/18}{neu (intern)} +% \changes{v2.8j}{2001/07/30}{added} +% \changes{v2.8k}{2001/08/15}{do nothing if \pkg{caption2} has been loaded or +% option \opt{origlongtable} has been used} +% \changes{v2.8q}{2001/11/18}{width and alignment by \KOMAScript{}} +% \changes{v2.8q}{2001/11/18}{using \cs{AfterPackage}} +% \changes{v2.9s}{2004/08/24}{vertical skips fixed by moving \cs{vskip}} +% \changes{v3.34}{2021/03/22}{special treatment of \pkg{caption2} removed} +% \begin{macro}{\LT@array,\LT@caption} +% \changes{v2.8q}{2001/11/18}{added} % \begin{macro}{\scr@caption@before@longtable@warning} -% \changes{v2.98c}{2008/03/03}{neu (intern)} -% \changes{v3.34}{2021/03/22}{Sonderbehandlung für \textsf{caption2} entfernt} -% Ab Version 2.8j wird auf vielfachen Wunsch das -% \textsf{longtable}-Paket berücksichtigt. Da Pakete aber nach -% Klassen geladen werden, kann dies erst nach dem Laden des Pakets -% aktiviert werden. Die Definition entspricht der obigen. +% \changes{v2.98c}{2008/03/03}{added} +% The code for \pkg{longtable} has to be delayed until loading the package. % \begin{macrocode} \newcommand*{\scr@caption@before@longtable@warning}[1]{% \ClassWarning{\KOMAClassName}{% @@ -1634,9 +1519,8 @@ \LT@mcol\LT@cols c{% \hbox to\z@{\hss\parbox[t]\linewidth{% % \end{macrocode} -% \changes{v3.25}{2017/11/15}{\cs{@captype} auf \texttt{table} gesetzt}%^^A -% Damit \cs{raggedtablecaption} ggf. verwendet wird, wird hier \cs{@captype} -% explizit auf \texttt{table} gesetzt. +% \changes{v3.25}{2017/11/15}{\cs{@captype} set to \texttt{table}} +% To make \cs{raggedtablecaption} available, \cs{@captype} has to be defined. % \begin{macrocode} \def\@captype{table}% \@@makecaption{#1}{#2}{#3}% @@ -1672,23 +1556,18 @@ \fi } % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro}^^A \scr@caption@before@longtable@warning +% \end{macro}^^A \LT@array,\LT@caption +% \end{macro}^^A \LT@makecaption % -% \begin{macro}{\fs@komaabove} -% \changes{v2.8j}{2001/07/30}{neu (intern)}%^^A -% \begin{macro}{\fs@komabelow} -% \changes{v2.8j}{2001/07/30}{neu (intern)}%^^A -% \begin{macro}{\floatc@komascript} -% \changes{v2.8j}{2001/07/30}{neu (intern)}%^^A -% Ab Version 2.8j werden für das \textsf{float}-Paket zwei float-Stile -% Namens \texttt{komaabove} und \texttt{komabelow} definiert. Da -% möglicherweise auch andere Pakete darauf zurückgreifen, wird das -% unabhängig von der Existenz von \textsf{float} getan. Verwendet wird -% dies innerhalb von \KOMAScript{} jedoch nicht. Es werden außerdem -% interne Makros von \textsf{float} verwendet! +% \subsection{Special treatment of the \texorpdfstring{\pkg*{float}}{`float'} package} +% +% \begin{macro}{\fs@komaabove,\fs@komabelow,\floatc@komascript} +% \changes{v2.8j}{2001/07/30}{added} +% We define two float style for package \pkg{float}: \texttt{komaabove} and +% \texttt{komabelow}. However this is done independent of loading \pkg{float}, +% because maybe someone else also uses those styles (but I don't think so). +% Note: Internal macros of \pkg{float} has to be used for the definitions. % \begin{macrocode} \newcommand*{\fs@komaabove}{% \let\@fs@capt\floatc@komascript @@ -1704,26 +1583,23 @@ \let\@fs@iftopcapt\iffalse} \newcommand{\floatc@komascript}{\@@makecaption\@firstofone} % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{macro}^^A \fs@komabove,\fs@komabelow,\floatc@komascript % % -% \subsection{Verteilung der Gleitumgebungen} +% \subsection{Where to place floats} % -% \begin{Counter}{topnumber} -% \begin{macro}{\topfraction} -% \begin{Counter}{bottomnumber} -% \begin{macro}{\bottomfraction} -% \begin{Counter}{totalnumber} -% \begin{macro}{\textfraction} -% \begin{macro}{\floatpagefraction} -% \begin{Counter}{dbltopnumber} -% \begin{macro}{\dbltopfraction} -% \begin{macro}{\dblfloatpagefraction} -% Für die Fließumgebungen müssen verschiedene Konstanten definiert -% werden, die Aufteilung zwischen Text und Fließumgebung und Ähnliches -% regeln. +% \begin{counter}{topnumber} +% \begin{command}{\topfraction} +% \begin{counter}{bottomnumber} +% \begin{command}{\bottomfraction} +% \begin{counter}{totalnumber} +% \begin{command}{\textfraction} +% \begin{command}{\floatpagefraction} +% \begin{counter}{dbltopnumber} +% \begin{command}{\dbltopfraction} +% \begin{command}{\dblfloatpagefraction} +% These are constants used by the \LaTeX{} kernel to decide where to place a +% float. See the kernel documentation for more information. % \begin{macrocode} \setcounter{topnumber}{2} \renewcommand*\topfraction{.7} @@ -1736,38 +1612,32 @@ \renewcommand*\dbltopfraction{.7} \renewcommand*\dblfloatpagefraction{.5} % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{Counter} -% \end{macro} -% \end{macro} -% \end{Counter} -% \end{macro} -% \end{Counter} -% \end{macro} -% \end{Counter} -% -% -% \subsection{Titel ohne Gleitumgebung} -% -% \begin{macro}{\captionof} -% \changes{v3.05}{2009/07/08}{Neue Anweisung}%^^A -% \changes{v3.09}{2011/03/21}{Verwendung des internen \cs{scr@caption}} -% \changes{v3.09a}{2011/04/13}{Berücksichtigung von -% \texttt{captions=tableheading} und \texttt{captions=figureheading}} -% \begin{macro}{\captionaboveof} -% \changes{v3.09}{2011/03/21}{Neue Anweisung}%^^A -% \begin{macro}{\captionbelowof} -% \changes{v3.09}{2011/03/21}{Neue Anweisung}%^^A -% Obwohl es inzwischen mehrere Pakete gibt, die diese Anweisung bereit -% stellen, kommt es doch immer wieder zu Fehlern, weil einige Anwender diese -% Pakete nicht nutzen. Also habe ich beschlossen, das selbst zu -% implementieren. Um die Kompatibilität mit \textsf{capt-of} nicht zu stören, -% wird die Definition vor dme Laden jenes Pakets zurück genommen. Mit dem -% Paket \textsf{caption} gibt es solche Probleme nicht, da dieses -% \cs{captionof} ohnehin per \cs{def} definiert. Allerdings berücksichtigt das -% \cs{captionof} von \textsf{caption} und \textsf{capt-of} eventuell die -% Einstellungen für darüber oder darunter nicht in gleicher Weise. +% \end{command} +% \end{command} +% \end{counter} +% \end{command} +% \end{command} +% \end{counter} +% \end{command} +% \end{counter} +% \end{command} +% \end{counter} +% +% +% \subsection{Caption without float} +% +% \begin{command}{\captionof} +% \changes{v3.05}{2009/07/08}{added} +% \changes{v3.09}{2011/03/21}{using internal \cs{scr@caption}} +% \changes{v3.09a}{2011/04/13}{handling of +% \opt{captions\quotechar=tableheading} and \opt{captions\quotechar=figureheading}} +% \begin{command}{\captionaboveof,\captionbelowof} +% \changes{v3.09}{2011/03/21}{added} +% We do not only provide a \cs{captionof} like \pkg{caption} or \pkg{capt-of} +% but also \cs{captionaboveof} and \cs{captionbelowof}. Users should not +% additionally use \pkg{capt-of}, but if they do, the definition of that +% package will be used instead (which is usually not, what the user want, but +% what they decided to do). % \begin{macrocode} \newcommand*{\captionof}[1]{\def\@captype{#1}% \begingroup\expandafter\expandafter\expandafter\endgroup @@ -1779,14 +1649,19 @@ \newcommand*{\captionbelowof}{\@captionabovefalse\captionof} \BeforePackage{capt-of}{\let\captionof\relax} % \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} +% \end{command}^^A \captionaboveof,\captionbelowof +% \end{command}^^A \captionof % % \begin{environment}{captionofbeside} -% \changes{v3.10}{2011/09/02}{Neue Umgebung}%^^A -% Analog zu \texttt{captionbeside} hier eine Umgebung mit Angabe des -% Gleitumgebungstyps als erstes Argument. +% \changes{v3.10}{2011/09/02}{added} +% The analogue environment to \cs{captionbeside} to be used outside +% floats. +% \begin{description} +% \item[ToDo:] Wouldn't it be a good idea to test for already defined +% \cs{@captype} inside \env{captionbeside} and then expect an additional first +% argument \meta{float}? In this case user could simply us \env{captionbeside} +% the same way as \env{captionofbeside}. +% \end{description} % \begin{macrocode} \newenvironment{captionofbeside}[1]{% \def\@captype{#1}% @@ -1798,54 +1673,55 @@ % \end{environment} % % -% \subsection{Standardbezeichner} +% \subsection{Names} % -% \begin{macro}{\figurename} -% \begin{macro}{\tablename} -% So heißen die Dinger: +% \begin{command}{\figurename,\tablename} +% \changes{v3.36}{2022/02/15}{explicit definition for English languages} +% The names to be used for the float labels. % \begin{macrocode} \newcommand*\figurename{Figure} +\providecaptionname{american,australian,british,canadian,english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\figurename{Figure} \newcommand*\tablename{Table} +\providecaptionname{american,australian,british,canadian,english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\tablename{Table} % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{command}^^A \figurename,\tablename % % -% \subsection{Abbildungsumgebung} +% \subsection{Defining the \env{figure} environment} % -% \begin{environment}{figure} -% \changes{v2.2c}{1995/05/25}{Abbildungsausgabe auf CJK umgestellt}%^^A -% \changes{v2.8h}{2001/07/19}{\cs{caption} wird explizit zu -% \cs{captionbelow}}%^^A -% \changes{v3.25}{2017/10/10}{Reimplementierung mit \textsf{tocbasic}}%^^A -% Zunächst werden \texttt{figure}s, also Abbildungen behandelt. -% \begin{Counter}{figure} -% \changes{v3.25}{2017/10/10}{Der Zähler wird implizit von -% \cs{DeclareNewTOC} definiert.}%^^A -% \end{Counter} -% Der ganze Rest kann mit \cs{DeclareNewTOC} erledigt werden. +% \begin{environment}{figure*,figure-,figure} +% \changes{v2.2c}{1995/05/25}{initial CJK support} +% \changes{v2.8h}{2001/07/19}{\cs{caption} is \cs{captionbelow}} +% \changes{v3.25}{2017/10/10}{re-implemented using \pkg*{tocbasic}} +% \changes{v3.36}{2022/02/22}{define additional non-float} +% \begin{counter}{figure} +% \changes{v3.25}{2017/10/10}{implicit by \cs{DeclareNewTOC}} +% \end{counter} +% We do the main job using \cs{DeclareNewTOC}: % \begin{macrocode} \DeclareNewTOC[% type=figure, float, + nonfloat, %<book|report> counterwithin=chapter, % \end{macrocode} % \begin{macro}{\fps@figure} -% Die Standardplatzierung für Abbildungen ist \emph{t}op, -% \emph{b}ottom, \emph{p}age. +% Default placement (by \cs{DeclareNewTOC}) \textbf{t}op, \textbf{b}ottom, +% \textbf{p}age. % \begin{macrocode} floatpos=tbp, +% \end{macrocode} % \end{macro} % \begin{macro}{\ftype@figure} -% Um die verschiedenen \emph{float}-Typen unterscheiden zu können, -% benötigen sie eine Nummer. Abbildungen bekommen hier willkürlich -% die Nummer 1. +% Numerical float type 1 (by \cs{DeclareNewTOC}). % \begin{macrocode} floattype=1, % \end{macrocode} % \end{macro} -% \changes{v3.11c}{2013/03/01}{fix: one \cs{caption} change removed}%^^A -% \changes{v3.20}{2016/04/07}{Interne Umdefinierung von \cs{caption}}%^^A +% \changes{v3.11c}{2013/03/01}{fix: one \cs{caption} change removed} +% \changes{v3.20}{2016/04/07}{internal redefinition of \cs{caption}} % \begin{macrocode} tocentryindent=1.5em, tocentrynumwidth=2.3em, @@ -1855,13 +1731,13 @@ } % \end{macrocode} % \begin{macro}{\ext@figure} -% Die Extension der Datei für das Abbildungsverzeichnis. +% Extension to be used (by \cs{DeclareNewTOC}) % \begin{macrocode} ]{lof} % \end{macrocode} % \end{macro} -% \begin{macro}{\thefigure} -% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil} +% \begin{command}{\thefigure} +% \changes{v2.97e}{2007/11/23}{using chapter number in main-matter only} % \changes{v3.27}{2019/06/26}{\cs{relax} replaced by percent} % \changes{v3.35}{2021/10/12}{use chapter number only of greater than zero} % \changes{v3.35}{2021/10/12}{redefine \cs{thefigure} only if compatibility is @@ -1878,65 +1754,51 @@ \fi %</article> % \end{macrocode} -% \end{macro} +% \end{command} % \begin{macro}{\fnum@figure} -% \begin{macro}{\figureformat} -% \changes{v2.3c}{1995/08/06}{neu}%^^A -% Die Ausgabe der Abbildungsnummer wird implizit von \cs{DeclareNewTOC} als -% \iffalse -%<*ignore> -% \fi -% \begin{macrocode} -\newcommand*{\fnum@figure}{\figureformat} -\newcommand*{\figureformat}{% - \figurename~\thefigure - \csname autodot\endcsname -} -% \end{macrocode} -% \iffalse -%</ignore> -% \fi -% definiert. -% \end{macro} +% \begin{command}{\figureformat} +% \changes{v2.3c}{1995/08/06}{added} +% The print format of the number (by \cs{DeclareNewTOC}). +% \end{command} % \end{macro} % \end{environment} % % -% \subsection{Tabellengleitumgebung} +% \subsection{Defining the \env{table} environment} +% +% Note: This is almost the same as defining the \env{figure} environment. So +% read the previous section first. % -% \begin{environment}{table} -% \changes{v2.2c}{1995/05/25}{Tabellenausgabe auf CJK umgestellt}%^^A -% \changes{v2.8h}{2001/07/19}{bei Tabellen kann der Default für -% \cs{caption} von Unter- auf Überschriften geändert werden} -% \changes{v3.25}{2017/10/10}{Reimplementierung mit \textsf{tocbasic}}%^^A -% Auch verschiebbare Tabellen sind möglich. Das Prinzip ist das -% gleiche wie bei den Abbildungen. -% \begin{Counter}{table} -% \changes{v3.25}{2017/10/10}{Der Zähler wird implizit von -% \cs{DeclareNewTOC} definiert.}%^^A -% \end{Counter} -% Der ganze Rest kann mit \cs{DeclareNewTOC} erledigt werden. +% \begin{environment}{table*,table-,table} +% \changes{v2.2c}{1995/05/25}{initial CJK support} +% \changes{v2.8h}{2001/07/19}{\cs{caption} is \cs{captionbelow}} +% \changes{v3.25}{2017/10/10}{re-implemented using \pkg*{tocbasic}} +% \changes{v3.36}{2022/02/22}{define additional non-float} +% \begin{counter}{table} +% \changes{v3.25}{2017/10/10}{implicit by \cs{DeclareNewTOC}} +% \end{counter} +% We do the main job using \cs{DeclareNewTOC}: % \begin{macrocode} \DeclareNewTOC[% type=table, float, + nonfloat, %<book|report> counterwithin=chapter, % \end{macrocode} % \begin{macro}{\fps@table} -% Die Standardplatzierung für Tabellen ist \emph{t}op, -% \emph{b}ottom, \emph{p}age. +% Default placement (by \cs{DeclareNewTOC}) \textbf{t}op, \textbf{b}ottom, +% \textbf{p}age. % \begin{macrocode} floatpos=tbp, +% \end{macrocode} % \end{macro} % \begin{macro}{\ftype@table} -% Um die verschiedenen \emph{float}-Typen unterscheiden zu können, -% benötigen sie eine Nummer. Tabellen bekommen hier willkürlich -% die Nummer 2. +% Numerical float type 2 (by \cs{DeclareNewTOC}). % \begin{macrocode} floattype=2, % \end{macrocode} % \end{macro} -% \changes{v3.20}{2016/04/07}{Interne Umdefinierung von \cs{caption}}%^^A +% \changes{v3.20}{2016/04/07}{internal redefinition of \cs{caption}} % \begin{macrocode} tocentryindent=1.5em, tocentrynumwidth=2.3em, @@ -1946,14 +1808,14 @@ } % \end{macrocode} % \begin{macro}{\ext@table} -% Die Extension der Datei für das Abbildungsverzeichnis. +% Extension to be used (by \cs{DeclareNewTOC}) % \begin{macrocode} ]{lot} % \end{macrocode} % \end{macro} -% \begin{macro}{\thetable} -% \changes{v2.97e}{2007/11/23}{Kapitelnummer nur im Hauptteil}%^^A -% \changes{v3.27}{2019/06/26}{\cs{relax} replaced by percent}%^^A +% \begin{command}{\thetable} +% \changes{v2.97e}{2007/11/23}{using chapter number in main-matter only} +% \changes{v3.27}{2019/06/26}{\cs{relax} replaced by percent} % \changes{v3.35}{2021/10/12}{use chapter number only of greater than zero} % \changes{v3.35}{2021/10/12}{redefine \cs{thefigure} only if compatibility is % less or equal 2.97d resp. less than 3.35} @@ -1968,42 +1830,30 @@ \renewcommand*\thetable{\@arabic\c@table} \fi %</article> +%</body> % \end{macrocode} -% \end{macro} +% \end{command} % \begin{macro}{\fnum@table} -% \begin{macro}{\tableformat} -% \changes{v2.3c}{1995/08/06}{neu}%^^A -% Die Ausgabe der Abbildungsnummer wird implizit von \cs{DeclareNewTOC} als -% \iffalse -%<*ignore> -% \fi -% \begin{macrocode} -\newcommand*{\fnum@table}{\tableformat} -\newcommand*{\tableformat}{% - \tablename~\thetable - \csname autodot\endcsname -} -% \end{macrocode} -% \iffalse -%</ignore> -% \fi -% definiert. -% \end{macro} +% \begin{command}{\tableformat} +% \changes{v2.3c}{1995/08/06}{added} +% The print format of the number (by \cs{DeclareNewTOC}). +% \end{command} % \end{macro} % \end{environment} % -% \iffalse -%</!letter> -%</class> -%</body> -% \fi -% +% \begin{macrocode} +%</class&!letter> +% \end{macrocode} +% % \Finale -% +% \PrintChanges +% \endinput -% -% end of file `scrkernel-floats.dtx' -%%% Local Variables: -%%% mode: doctex -%%% TeX-master: t -%%% End: +% Local Variables: +% mode: doctex +% ispell-local-dictionary: "en_US" +% eval: (flyspell-mode 1) +% TeX-master: t +% TeX-engine: luatex-dev +% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx")) +% End: |