diff options
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx | 1336 |
1 files changed, 1336 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx b/Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx new file mode 100644 index 00000000000..3d20da6187a --- /dev/null +++ b/Master/texmf-dist/source/latex/koma-script/scrkfloa.dtx @@ -0,0 +1,1336 @@ +% \CheckSum{1043} +% \iffalse meta-comment +% ====================================================================== +% scrkfloa.dtx +% Copyright (c) Markus Kohm, 2002-2006 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3b of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3b or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in manifest.txt. +% ---------------------------------------------------------------------- +% scrkfloa.dtx +% Copyright (c) Markus Kohm, 2002-2006 +% +% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, +% Version 1.3b, verteilt und/oder veraendert werden. +% Die neuste Version dieser Lizenz ist +% http://www.latex-project.org/lppl.txt +% und Version 1.3b 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: scrkfloa.dtx +%<*driver> +% \fi +\ProvidesFile{scrkfloa.dtx}[2006/07/13 v2.95a KOMA-Script (floats)] +% \iffalse +\documentclass[halfparskip-]{scrdoc} +\usepackage[english,ngerman]{babel} +\usepackage[latin1]{inputenc} +\CodelineIndex +\RecordChanges +\GetFileInfo{scrkfloa.dtx} +\title{\KOMAScript{} \partname\ \texttt{\filename}% + \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} +\date{\filedate} +\author{Markus Kohm} + +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +%</driver> +% \fi +% +% \selectlanguage{ngerman} +% +% \changes{v2.95}{2002/06/25}{% +% erste Version aus der Aufteilung von \texttt{scrclass.dtx}} +% +% \section{Gleitumgebungen} +% +% \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. +% +% Die einzige Gleitumgebung, über die Briefe derzeit verfügen sind +% Randnotizen. +% +% \StopEventually{\PrintIndex\PrintChanges} +% +% \subsection{Optionen für Titel von Gleitumgebungen} +% +% \iffalse +%<*option> +% \fi +% +% \iffalse +%<*!letter> +% \fi +% +% \begin{option}{tablecaptionabove} +% \changes{v2.8h}{2001/07/19}{neue Option} +% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen +% verschoben} +% \begin{option}{tablecaptionbelow} +% \changes{v2.8h}{2001/07/19}{neue Option} +% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen +% verschoben} +% 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. +% \begin{macro}{\if@tablecaptionabove} +% \changes{v2.8h}{2001/07/19}{neu Option} +% \changes{v2.8k}{2001/08/15}{aus \texttt{typearea} in die Klassen +% verschoben} +% \begin{macro}{\@tablecaptionabovetrue} +% \begin{macro}{\@tablecaptionabovefalse} +% Die Einstellung wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@tablecaptionabove\@tablecaptionabovefalse +\DeclareOption{tablecaptionabove}{\@tablecaptionabovetrue} +\DeclareOption{tablecaptionbelow}{\@tablecaptionabovefalse} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% \end{option} +% +% \begin{option}{origlongtable} +% \changes{v2.8l}{2001/08/16}{neue Option} +% Wenn das \textsf{longtable}-Paket geladen ist, werden die +% Tabellentitel dafür normalerweise von den Klassen umdefiniert. Dies +% geschieht automatisch nicht, wenn das \textsf{caption2}-Paket +% geladen ist. Es geschieht ausserdem nicht, wenn diese Option gesetzt +% ist. +% \begin{macro}{\if@komalongtable} +% \changes{v2.8l}{2001/08/16}{neue Option} +% \begin{macro}{\@komalongtabletrue} +% \begin{macro}{\@komalongtablefalse} +% Die Einstellung wird in einem Schalter gespeichert. +% \begin{macrocode} +\newif\if@komalongtable\@komalongtabletrue +\DeclareOption{origlongtable}{\@komalongtablefalse} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{option} +% +% \begin{option}{onelinecaption} +% \changes{v2.8q}{2001/11/17}{neue Option} +% \begin{option}{noonelinecaption} +% \changes{v2.8q}{2001/11/17}{neue Option} +% Genau wie beim \textsf{caption2}-Paket gibt es Optionen, mit denen +% die Sonderbehandlung für einzeilige Tabellen- und Abbildungstitel +% ein- und ausgeschaltet werden werden können. +% \begin{macro}{\ifonelinecaptions} +% \changes{v2.8q}{2001/11/17}{neuer Schalter} +% \begin{macro}{\onelinecaptionstrue} +% \begin{macro}{\onelinecaptionsfalse} +% Die Entscheidung wird in einem Schalter gespeichert. In der +% Hoffnung, beim Laden von \textsf{caption2} Speicher zu sparen, wird +% der gleiche Name verwendet, den auch \textsf{caption2} +% verwendet. Trotzdem sollte man diesen Schalter als internen Schalter +% betrachten. +% \begin{macrocode} +\newif\ifonelinecaptions\onelinecaptionstrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% Da für diese Option nicht der gleiche Name verwendet wird, wie bei +% \textsf{caption2}, wird von den Optionen nicht nur der Schalter +% entsprechend gesetzt, sondern auch die korrespondierende Option an +% \textsf{caption2} weitergeleitet. Der gleiche Name konnte schlecht +% verwendet werden, weil er bei einer Klasse auch nicht ansatzweise +% als selbsterklärend bezeichnet werden kann. +% \begin{macrocode} +\DeclareOption{onelinecaption}{\onelinecaptionstrue + \PassOptionsToPackage{oneline}{caption2}% +} +\DeclareOption{noonelinecaption}{\onelinecaptionsfalse + \PassOptionsToPackage{nooneline}{caption2}% +} +% \end{macrocode} +% \end{option} +% \end{option} +% +% +% \iffalse +%</!letter> +%</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} +% \begin{macrocode} +\newcommand\marginline[1]{% + \marginpar[\raggedleft{#1}]{\raggedright #1}% +} +% \end{macrocode} +% \end{macro} +% +% \iffalse +%<*!letter> +% \fi +% +% \subsection{Definitionen für Titel von Gleitumgebungen} +% +% \begin{macro}{\caption} +% \changes{v2.2c}{1995/05/25}{Fließtitel auf CJK umgestellt} +% 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: +% \begin{macrocode} +\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} +% Trennung von Label und Text: +% \begin{macrocode} +\newcommand*{\captionformat}{:\ } +% \end{macrocode} +% \end{macro} +% \begin{macro}{\if@captionabove} +% \changes{v2.8h}{2001/07/19}{neu} +% Ob es sich 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{macrocode} +\newif\if@captionabove\@captionabovefalse +% \end{macrocode} +% \end{macro} +% \begin{macro}{\scr@caption} +% \changes{v2.8h}{2001/07/19}{neu (intern)} +% \begin{macro}{\captionabove} +% \changes{v2.8h}{2001/07/19}{neu} +% \begin{macro}{\captionbelow} +% \changes{v2.8h}{2001/07/19}{neu} +% 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. +% \begin{macrocode} +\newcommand{\scr@caption}{} +\AtBeginDocument{\let\scr@caption\caption} +% \end{macrocode} +% \end{macro} +% 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} +% +% +% \begin{environment}{captionbeside} +% \changes{v2.8q}{2001/11/22}{neu} +% 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. +% +% \begin{macro}{\scap@pos} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% Hier wird gespeichert, ob die Beschreibung links oder rechts vom +% Rest stehen soll. Voreingestellt ist rechts davon. +% \begin{macrocode} +\newcommand*{\scap@pos}{r} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@valign} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% Hier wird gespeichert, ob 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}. +% \begin{macrocode} +\newcommand*{\scap@valign}{b} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@caption} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% Die Beschreibung, die der Umgebung als Parameter übergeben wird, +% muss zwischengespeichert werden. Hier wird lediglich das Makro +% dafür reserviert. +% \begin{macrocode} +\newcommand*{\scap@caption}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@width} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% Die Breite, die Tabelle bzw. Abbildung einschließlich Beschreibung +% und insgesamt haben dürften. Voreingestellt ist die gesamte +% verfügbare Breite. +% \begin{macrocode} +\newcommand*{\scap@width}{\linewidth} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@move} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% Der Wert, um den die Tabelle bzw. Abbildung einschließlich +% Beschreibung nach rechts bzw. außen verschoben werden. +% Voreingestellt ist keine Verschiebung. +% \begin{macrocode} +\newcommand*{\scap@move}{\z@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scap@currentlabel} +% \changes{v2.8q}{2001/11/24}{neu (intern)} +% 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. +% \begin{macrocode} +\newcommand*{\scap@currentlabel}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ifscap@alt} +% \changes{v2.8q}{2001/11/22}{neuer Schalter} +% \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. +% \begin{macrocode} +\newif\ifscap@alt +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@captionbeside} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% \begin{macro}{\@@captionbeside} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% \begin{macro}{\@@@captionbeside} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% \begin{macro}{\@@@@captionbeside} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% 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. +% \begin{macrocode} +\newcommand*{\@captionbeside}{} +\long\def\@captionbeside[#1]#2{% + \@ifnextchar [%] + {\@@captionbeside[{#1}]{#2}} + {\c@pti@nb@sid@[{#1}]{#2}}% +} +\newcommand*{\@@captionbeside}{} +\long\def\@@captionbeside[#1]#2[#3]{% + \def\scap@pos{#3}% + \@ifnextchar [%] + {\@@@captionbeside[{#1}]{#2}} + {\c@pti@nb@sid@[{#1}]{#2}}% +} +\newcommand*{\@@@captionbeside}{} +\long\def\@@@captionbeside[#1]#2[#3]{% + \def\scap@width{#3}% + \@ifnextchar [%] + {\@@@@captionbeside[{#1}]{#2}} + {\setlength{\@tempdima}{#3}% + \addtolength{\@tempdima}{-\linewidth}% + \setlength{\@tempdima}{-.5\@tempdima}% + \edef\scap@move{\the\@tempdima}% + \c@pti@nb@sid@[{#1}]{#2}}% +} +\newcommand*{\@@@@captionbeside}{} +\long\def\@@@@captionbeside[#1]#2[#3]{% + \def\scap@move{#3}% + \@ifstar + {\scap@alttrue\c@pti@nb@sid@[{#1}]{#2}} + {\scap@altfalse\c@pti@nb@sid@[{#1}]{#2}}% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\c@pti@nb@sid@b@x} +% \changes{v2.8q}{2001/11/22}{neu (intern)} +% Es wird noch eines der kostbaren Boxregister benötigt. +% \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)} +% Hier wird nun die Umgebung eigentlich geöffnet, während zuvor nur +% die Parameter ausgewertet wurden. +% \begin{macrocode} +\newcommand{\c@pti@nb@sid@}{} +\long\def\c@pti@nb@sid@[#1]#2{% + \def\scap@caption{\captionbelow[{#1}]{#2}}% + \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. +% \begin{macrocode} +\newenvironment*{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}} +% \begin{macrocode} + \end{lrbox}% + \settowidth{\@tempdima}{\usebox\c@pti@nb@sid@b@x}% + \setlength{\@tempdimb}{\scap@width}% + \addtolength{\@tempdimb}{-\@tempdima}% + \addtolength{\@tempdimb}{-\columnsep}% + \ifdim \@tempdimb<2em + \ClassWarning{\KOMAClassName}{% + caption beside will be very, very small.\MessageBreak + In most cases this will result in overfull and + underfull\MessageBreak + \string\hbox\space messages% + }% + \fi + \onelinecaptionsfalse + \setcapwidth[r]{\@tempdimb}% + \let\@tempa\scap@pos + \setlength{\@tempdimc}{\scap@move}% + \if i\scap@pos\def\@tempa{l}\fi + \if o\scap@pos\def\@tempa{r}\fi + \if@twoside + \ifthispageodd{}{% + \if o\scap@pos\def\@tempa{l}\fi + \if i\scap@pos\def\@tempa{r}\fi + \ifscap@alt + \addtolength{\@tempdimc}{\scap@width}% + \addtolength{\@tempdimc}{-\linewidth}% + \setlength{\@tempdimc}{-\@tempdimc}% + \fi + }% + \fi + \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} +% \begin{macrocode} + \if l\@tempa + \rlap{% + \parbox[\scap@valign]{\@tempdimb}{\scap@caption + \global\let\scap@currentlabel\@currentlabel}% + \nobreak\hskip\columnsep + \parbox[\scap@valign]{\wd\c@pti@nb@sid@b@x}{\usebox\c@pti@nb@sid@b@x}% + }% + \else + \rlap{% + \parbox[\scap@valign]{\wd\c@pti@nb@sid@b@x}{\usebox\c@pti@nb@sid@b@x}% + \nobreak\hskip\columnsep + \parbox[\scap@valign]{\@tempdimb}{\scap@caption + \global\let\scap@currentlabel\@currentlabel}% + }% + \fi + \par + \aftergroup\let\aftergroup\@currentlabel + \aftergroup\scap@currentlabel +} +% \end{macrocode} +% \end{environment} +% +% +% \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{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}. +% \begin{macrocode} +\newcommand*{\scr@fnt@caption}{\capfont} +\newcommand*{\scr@fnt@captionlabel}{\caplabelfont} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \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} +% \changes{v2.5g}{1999/10/09}{neben den komplett hängenden +% Titeln sind nun auch nicht hängende oder teilweise hängende +% möglich} +% 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: +% \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} +% \begin{macro}{\if@capbreak} +% \changes{v2.8j}{2001/07/30}{neu} +% 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 +% \cs{def}\cs{cap@indent}} +% \changes{v2.8q}{2001/11/17}{wird nach dem Laden von +% \textsf{caption2} umdefiniert} +% 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. +% \begin{macrocode} +\newcommand*{\setcapindent}{\@ifstar{\@@setcapindent}{\@setcapindent}} +\newcommand*{\@setcapindent}[1]{% + \setlength{\@tempdima}{#1}% + \ifdim\@tempdima>\hsize + \addtolength{\@tempdima}{-\hsize}\@capbreaktrue + \else + \@capbreakfalse + \fi + \edef\cap@indent{\the\@tempdima}% + \dofullc@pfalse +} +\newcommand*{\@@setcapindent}[1]{% + \setlength{\@tempdima}{#1}% + \edef\cap@indent{\the\@tempdima}% + \dofullc@pfalse\@capbreaktrue +} +\AfterPackage{caption2}{% + \renewcommand*{\setcapindent}{% + \ClassWarning{\KOMAClassName}{% + You're using package caption2.\MessageBreak + Because of this you should also use \string\captionstyle\space + and\MessageBreak + set length \string\captionindent\space instead if + using\MessageBreak + \string\setcapindent + }% + \captionstyle{indent}% + \@ifstar{\setlength{\captionindent}}{\setlength{\captionindent}}% + }% +} +% \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} +% Andererseits soll es auch möglich sein, nachträglich wieder den +% automatischen Einzug einzuschalten. Dafür gibt es ein weiteres +% Makro. +% \begin{macrocode} +\newcommand*{\setcaphanging}{\dofullc@ptrue\@capbreakfalse} +\AfterPackage{caption2}{% + \renewcommand*{\setcaphanging}{% + \ClassWarning{\KOMAClassName}{% + You're using package caption2.\MessageBreak + Because of this you should also use + \string\captionstyle\MessageBreak + instead of \string\setcaphang + } + \captionstyle{hang}% + }% +} +% \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} +% \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} +% \begin{macrocode} +\newcommand{\@makecaption}[2]{% + \if@captionabove + \vskip\belowcaptionskip + \else + \vskip\abovecaptionskip + \fi + \@@makecaption\@firstofone{#1}{#2}% + \if@captionabove + \vskip\abovecaptionskip + \else + \vskip\belowcaptionskip + \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)} +% \begin{macro}{\cap@left} +% \changes{v2.8q}{2001/11/17}{neu (intern)} +% \begin{macro}{\cap@right} +% \changes{v2.8q}{2001/11/17}{neu (intern)} +% 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{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}} +% Hier wird \cs{cap@width} gesetzt. Dabei werden optional auch +% \cs{cap@left} und \cs{cap@right} angepasst. +% \begin{macrocode} +\newcommand*{\setcapwidth}[2][]{% + \begingroup% + \setlength{\@tempdima}{#2}% + \edef\@tempa{\endgroup\def\noexpand\cap@width{\the\@tempdima}}% + \@tempa + \begingroup + \edef\@tempa{#1}% + \def\@tempb{c}\ifx\@tempa\@tempb + \endgroup + \def\cap@margin{\let\cap@left=\hfill\let\cap@right=\hfill}% + \else + \def\@tempb{l}\ifx\@tempa\@tempb + \endgroup + \def\cap@margin{\let\cap@left=\relax\let\cap@right\hfill}% + \else + \def\@tempb{r}\ifx\@tempa\@tempb + \endgroup + \def\cap@margin{\let\cap@left=\hfill\let\cap@right=\relax}% + \else + \def\@tempb{i}\ifx\@tempa\@tempb + \endgroup + \def\cap@margin{% + \let\cap@left=\relax + \let\cap@right=\hfill + \if@twoside + \ifthispageodd{}{% + \let\cap@left=\hfill + \let\cap@right=\relax + }% + \fi + }% + \else + \def\@tempb{o}\ifx\@tempa\@tempb + \endgroup + \def\cap@margin{% + \let\cap@left=\hfill + \let\cap@right=\relax + \if@twoside + \ifthispageodd{}{% + \let\cap@left=\relax + \let\cap@right=\hfill + }% + \fi + }% + \else + \ifx \@tempa\@empty\else + \ClassError{\KOMAClassName}{% + unknown optional position argument% + }{% + You've used `#1' as position argument at + \string\setcaptionwidth,\MessageBreak + but only ONE of `c', `l', `r', `i`, `o` ist + allowed.\MessageBreak + Argument will be ignored, if you'll continue.% + }% + \fi + \endgroup + \fi\fi\fi\fi\fi +} +% \end{macrocode} +% Falls \textsf{caption2} geladen wird, ändert sich die Funktion. Das +% optionale Argument wird dann ignorriert. +% \begin{macrocode} +\AfterPackage{caption2}{% + \renewcommand*{\setcapwidth}[2][]{% + \ClassWarning{\KOMAClassName}{% + Ignorring optional argument of \string\setcapwidth!\MessageBreak + You're using package caption2.\MessageBreak + Because of this you should also use + \string\setcaptionwidth\MessageBreak + instead of \string\setcapwidth\MessageBreak + }% + \setcaptionwidth{#2}% + }% +}% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\cap@margin} +% \changes{v2.8q}{2001/11/17}{neu (intern)} +% 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. +% \begin{macrocode} +\newcommand*{\cap@margin}{} +\let\cap@margin=\relax% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\setcapmargin} +% \changes{v2.8q}{2001/11/17}{neu} +% \begin{macro}{\@setcapmargin} +% \changes{v2.8q}{2001/11/17}{neu (intern)} +% \changes{v2.9a}{2002/06/27}{\cs{ifthispageodd} statt +% \cs{if@thispageodd}} +% \begin{macro}{\@@setcapmargin} +% \changes{v2.8q}{2001/11/17}{neu (intern)} +% 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. +% \begin{macrocode} +\newcommand*{\setcapmargin}{\@ifstar{\@setcapmargin}{\@@setcapmargin}} +\newcommand*{\@setcapmargin}[2][\@tempdimb]{% + \def\cap@margin{% + \onelinecaptionsfalse + \begingroup + \setlength{\@tempdima}{\hsize}% + \setlength{\@tempdimb}{#2}% + \addtolength{\@tempdima}{-\@tempdimb}% + \setlength{\@tempdimc}{#1}% + \addtolength{\@tempdima}{-\@tempdimc}% + \edef\@tempa{\endgroup + \def\noexpand\cap@width{\the\@tempdima}% + \noexpand\if@twoside + \noexpand\ifthispageodd{% + \def\noexpand\cap@left{\noexpand\hspace*{\the\@tempdimc}}% + \def\noexpand\cap@right{\noexpand\hspace*{\the\@tempdimb}}% + }{% + \def\noexpand\cap@right{\noexpand\hspace*{\the\@tempdimc}}% + \def\noexpand\cap@left{\noexpand\hspace*{\the\@tempdimb}}% + }% + \noexpand\else + \def\noexpand\cap@left{\noexpand\hspace*{\the\@tempdimc}}% + \def\noexpand\cap@right{\noexpand\hspace*{\the\@tempdimb}}% + \noexpand\fi + }% + \@tempa + }% +} +\newcommand*{\@@setcapmargin}[2][\@tempdimb]{% + \def\cap@margin{% + \onelinecaptionsfalse + \begingroup + \setlength{\@tempdima}{\hsize}% + \setlength{\@tempdimb}{#2}% + \addtolength{\@tempdima}{-\@tempdimb}% + \setlength{\@tempdimc}{#1}% + \addtolength{\@tempdima}{-\@tempdimc}% + \edef\@tempa{\endgroup + \def\noexpand\cap@width{\the\@tempdima}% + \def\noexpand\cap@left{\noexpand\hspace*{\the\@tempdimc}}% + \def\noexpand\cap@right{\noexpand\hspace*{\the\@tempdimb}}% + }% + \@tempa + }% +} +% \end{macrocode} +% Wenn \textsf{caption2} geladen ist, ändert sich die Bedeutung. +% \begin{macrocode} +\AfterPackage{caption2}{% + \renewcommand*{\@setcapmargin}[2][\@tempdimb]{% + \setlength{\@tempdimb}{#2}% + \setlength{\@tempdima}{#1}% + \ifdim\@tempdima\@tempdimb\else + \ClassWarning{\KOMAClassName}{% + Can set only centered caption!\MessageBreak + You're using package caption2.\MessageBreak + Because of this you should also use + \string\setcaptionmargin\MessageBreak + instead of \string\setcapmargin + }% + \fi + \addtolength{\@tempdimb}{\@tempdimb}% + \setcaptionmargin{.5\@tempdimb}}% + \let\@@setcapmargin=\@setcapmargin +} +% \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} +% \begin{macrocode} +\newcommand{\@@makecaption}[3]{% + \cap@margin + \ifonelinecaptions + \@tempcnta=\value{mpfootnote}\@tempcntb=\value{footnote}% + \let\scr@tmp@footnotetext=\@footnotetext + \let\@footnotetext=\@gobble + \sbox\@tempboxa{% + {\capfont\strut\ignorespaces + #1{{\caplabelfont#2\captionformat}}% + #3}% + }% + \let\@footnotetext=\scr@tmp@footnotetext + \let\scr@tmp@footnotetext=\undefined + \setcounter{footnote}{\@tempcntb}% + \setcounter{mpfootnote}{\@tempcnta}% + \else + \sbox\@tempboxa{\hspace*{2\cap@width}}% + \fi + \begingroup% + \setlength{\@tempdima}{\cap@width}% + \ifdim \wd\@tempboxa >\@tempdima + \hb@xt@\hsize{% + \setbox\@tempboxa\vbox{\hsize=\cap@width +% \end{macrocode} +% Im Fall, dass nun also mehrzeilig gesetzt werden muss, ist zu +% unterscheiden, ob wie bisher voll hängend gearbeitet werden soll +% oder nicht. In ersterem Fall machen wir das, wie bisher, allerdings +% wird der \cs{capfont} früher aktiviert, damit darin auch globale +% Größsenänderungen für den Titel Platz finden. Außerdem wird die +% geänderte Parameterübergabe berücksichtigt. +% \begin{macrocode} + \ifdofullc@p + {\capfont\@hangfrom{\strut\ignorespaces + #1{{\caplabelfont#2\captionformat}}}% + {#3\par}}% +% \end{macrocode} +% Im zweiten Fall ist nun zu unterscheiden, ob nach dem Label ein +% Umbruch erfolgen soll oder nicht. Dabei ist der Einzug zu beachten. +% Ist der Einzug negativ, so findet ebenfalls ein Umbruch statt und +% nur die erste Folgezeile wird eingezogen. +% \begin{macrocode} + \else% + \ifdim\cap@indent<\z@ + {\capfont\strut\ignorespaces + #1{{\caplabelfont #2\captionformat\par}}% + \noindent\hspace*{-\cap@indent}#3\par}% + \else% + \if@capbreak + {\capfont\strut\ignorespaces + #1{{\caplabelfont #2\captionformat\par}}% + \noindent\@hangfrom{\hspace*{\cap@indent}}{#3\par}}% + \else + {\capfont\@hangfrom{\strut\hspace*{\cap@indent}}% + {\hspace{-\cap@indent}\ignorespaces#1% + {{\caplabelfont#2\captionformat}}#3\par}}% + \fi + \fi + \fi + }% + \setlength{\@tempdima}{\ht\@tempboxa}% + \addtolength{\@tempdima}{\dp\@tempboxa}% + \addtolength{\@tempdima}{-\ht\strutbox}% + \ht\@tempboxa\ht\strutbox + \dp\@tempboxa\@tempdima + \strut\cap@left + \box\@tempboxa + \cap@right\strut + }% + \else + \global \@minipagefalse +% \end{macrocode} +% Im einzeiligen Fall wird nun die Box wie oben erneut erzeugt und gleich +% gesetzt. Im Prinzip ginge das auch direkt ohne erst eine Box zu erzeugen. +% \begin{macrocode} + \sbox\@tempboxa{% + {\capfont\strut\ignorespaces + #1{{\caplabelfont#2\captionformat}}% + #3}% + }% + \hb@xt@\hsize{\strut\cap@left\box\@tempboxa\cap@right\strut}% + \fi + \endgroup +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \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)} +% 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. Wird das +% \textsf{caption2}-Paket nach \textsf{longtable} geladen, so wird +% automatisch die Definition von \textsf{caption2} verwendet. Wird +% \textsf{caption2} vor \textsf{longtable} geladen, so liegt +% voraussichtlich eine Fehlbedienung vor, auf die hingewiesen wird. +% \begin{macrocode} +\AfterPackage{longtable}{% + \@ifpackageloaded{caption2}{\@komalongtablefalse + \ClassWarning{\KOMAClassName}{% + you've loaded package caption2 before package\MessageBreak + longtable!\MessageBreak + Because of this package caption2 isn't able to + control\MessageBreak + \string\caption\space at longtables. After loading package + caption2\MessageBreak + KOMA-Script also doesn't control \string\caption.\MessageBreak + I think, you should load package caption after + package\MessageBreak + longtable and use the new interface% + }% + }{}% + \if@komalongtable + \renewcommand{\LT@makecaption}[3]{% + \noalign{% + \if@captionabove + \vskip\belowcaptionskip + \else + \vskip\abovecaptionskip + \fi + }% + \LT@mcol\LT@cols c{% + \hbox to\z@{\hss\parbox[t]\linewidth{% + \@@makecaption{#1}{#2}{#3}% + \endgraf + \if@captionabove + \vskip\abovecaptionskip + \else + \vskip\belowcaptionskip + \fi + }% + \hss + }% + }% + }% + \newcommand*{\scr@LT@array}{}% + \let\scr@LT@array=\LT@array + \renewcommand*{\LT@array}{% + \let\scr@caption=\LT@caption + \def\captionabove{\noalign{\global\@captionabovetrue}% + \scr@caption}% + \def\captionbelow{\noalign{\global\@captionabovefalse}% + \scr@caption}% + \if@tablecaptionabove + \let\LT@caption=\captionabove + \else + \let\LT@caption=\captionbelow + \fi + \scr@LT@array + }% + \ClassInfo{\KOMAClassName}{% + longtable captions redefined% + }% + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fs@komaabove} +% \changes{v2.8j}{2001/07/30}{neu (intern)} +% \begin{macro}{\fs@komabelow} +% \changes{v2.8j}{2001/07/30}{neu (intern)} +% \begin{macro}{\floatc@komascript} +% \changes{v2.8j}{2001/07/30}{neu (intern)} +% 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! +% \begin{macrocode} +\newcommand*{\fs@komaabove}{% + \let\@fs@capt\floatc@komascript + \let\@fs@pre\@empty + \def\@fs@mid{\vskip\abovecaptionskip}% + \let\@fs@post\@empty + \let\@fs@iftopcapt\iftrue} +\newcommand*{\fs@komabelow}{% + \let\@fs@capt\floatc@komascript + \let\@fs@pre\@empty + \def\@fs@mid{\vskip\abovecaptionskip}% + \let\@fs@post\@empty + \let\@fs@iftopcapt\iffalse} +\newcommand{\floatc@komascript}{\@@makecaption\@firstofone} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{Verteilung der Gleitumgebungen} +% +% \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{macrocode} +\setcounter{topnumber}{2} +\renewcommand*\topfraction{.7} +\setcounter{bottomnumber}{1} +\renewcommand*\bottomfraction{.3} +\setcounter{totalnumber}{3} +\renewcommand*\textfraction{.2} +\renewcommand*\floatpagefraction{.5} +\setcounter{dbltopnumber}{2} +\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{Standardbezeichner} +% +% \begin{macro}{\figurename} +% \begin{macro}{\tablename} +% So heißen die Dinger: +% \begin{macrocode} +\newcommand*\figurename{Figure} +\newcommand*\tablename{Table} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsection{Abbildungsumgebung} +% +% \begin{environment}{figure} +% \changes{v2.2c}{1995/05/25}{Abbildungsausgabe auf CJK umgestellt} +% \changes{v2.8h}{2001/07/19}{\cs{caption} wird explizit zu +% \cs{captionbelow}} +% Zunächst werden \texttt{figure}s, also Abbildungen behandelt. +% \begin{Counter}{figure} +% \begin{macro}{\thefigure} +% \begin{macro}{\figureformat} +% \changes{v2.3c}{1995/08/06}{neu} +% Dafür wird ein neuer Zähler benötigt, der bei der Buch- und der +% Bericht-Klasse mit \cs{chapter} zurückgesetzt wird und auch den +% Kapitelzähler mit enthält. +% \begin{macrocode} +%<book|report>\newcounter{figure}[chapter] +%<article>\newcounter{figure} +\renewcommand*\thefigure{% +%<book|report> \thechapter.% + \@arabic\c@figure +} +\newcommand*{\figureformat}{% + \figurename~\thefigure% +%<report|book> \autodot% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{Counter} +% \begin{macro}{\fps@figure} +% Die Standardplatzierung für Abbildungen ist \emph{t}op, +% \emph{b}ottom, \emph{p}age. +% \begin{macrocode} +\newcommand*{\fps@figure}{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. +% \begin{macrocode} +\newcommand*{\ftype@figure}{1} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ext@figure} +% Die Extension der Datei für das Abbildungsverzeichnis. +% \begin{macrocode} +\newcommand*{\ext@figure}{lof} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\fnum@figure} +% Die Ausgabe der Abbildungsnummer. +% \begin{macrocode} +\newcommand*{\fnum@figure}{\figureformat} +% \end{macrocode} +% \end{macro} +% Jetzt aber zurück zur Umgebung. Wie üblich gibt es eine Version mit +% und eine Version ihne Stern. Zur unterschiedlichen Bedeutung bei +% zweispaltigem Satz siehe \texttt{classes.dtx} und \texttt{source2e}. +% \begin{macrocode} +\newenvironment{figure}{% + \let\caption\captionbelow\@float{figure}% +}{% + \end@float +} +\newenvironment{figure*}{% + \let\caption\captionbelow\@dblfloat{figure}% +}{% + \end@dblfloat +} +% \end{macrocode} +% \end{environment} +% +% +% \subsection{Tabellengleitumgebung} +% +% \begin{environment}{table} +% \changes{v2.2c}{1995/05/25}{Tabellenausgabe auf CJK umgestellt} +% \changes{v2.8h}{2001/07/19}{bei Tabellen kann der Default für +% \cs{caption} von Unter- auf Überschriften geändert werden} +% Auch verschiebbare Tabellen sind möglich. Das Prinzip ist das +% gleiche wie bei den Abbildungen. +% \begin{Counter}{table} +% \begin{macro}{\thetable} +% \begin{macro}{\tableformat} +% \changes{v2.3c}{1995/08/06}{neu} +% \begin{macrocode} +%<article>\newcounter{table} +%<book|report>\newcounter{table}[chapter] +\renewcommand*\thetable{% +%<book|report> \thechapter.% + \@arabic\c@table +} +\newcommand*{\tableformat}{% + \tablename~\thetable% +%<report|book> \autodot% +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{Counter} +% \begin{macro}{\fps@table} +% \begin{macrocode} +\newcommand*{\fps@table}{tbp} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ftype@table} +% Allerdings wird für Tabellen willkürlich Nummer 2 verwendet. +% \begin{macrocode} +\newcommand*{\ftype@table}{2} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\ext@table} +% Natürlich haben sie auch eine andere Extension. +% \begin{macrocode} +\newcommand*{\ext@table}{lot} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\fnum@table} +% Die Ausgabe der Nummer kann ebenfalls abweichen. +% \begin{macrocode} +\newcommand*{\fnum@table}{\tableformat} +% \end{macrocode} +% \end{macro} +% Ob es \cs{caption} in der Voreinstellung eine Tabellenüberschrift +% oder eine Tabellenunterschrift erzeugt, hängt hier von den Optionen +% ab. +% \begin{macrocode} +\newenvironment{table}{% + \if@tablecaptionabove\let\caption\captionabove + \else\let\caption\captionbelow\fi + \@float{table}% +}{% + \end@float +} +\newenvironment{table*}{% + \if@tablecaptionabove\let\caption\captionabove + \else\let\caption\captionbelow\fi + \@dblfloat{table}% +}{% + \end@dblfloat +} +% \end{macrocode} +% \end{environment} +% +% \iffalse +%</!letter> +%</body> +% \fi +% +% \Finale +% +\endinput +% +% end of file `scrkfloa.dtx' +%%% Local Variables: +%%% mode: doctex +%%% TeX-master: t +%%% End: |