diff options
author | Karl Berry <karl@freefriends.org> | 2015-04-24 23:19:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2015-04-24 23:19:31 +0000 |
commit | 0a00b3b492fd27dc12cddae602b2c43206a17d74 (patch) | |
tree | 40a09bf2208cc13bcd727626e1ee058e2caa68b1 /Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx | |
parent | 77b150bbd42aa48ba71627e09763785b26adfcfd (diff) |
koma-script (24apr15)
git-svn-id: svn://tug.org/texlive/trunk@37036 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx | 694 |
1 files changed, 451 insertions, 243 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx index adf02d98de6..444d38f3d22 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-typearea.dtx @@ -1,8 +1,8 @@ -% \CheckSum{2330} +% \CheckSum{2588} % \iffalse meta-comment % ====================================================================== % scrkernel-typearea.dtx -% Copyright (c) Markus Kohm, 2002-2014 +% Copyright (c) Markus Kohm, 2002-2015 % % This file is part of the LaTeX2e KOMA-Script bundle. % @@ -20,7 +20,7 @@ % This work consists of all files listed in manifest.txt. % ---------------------------------------------------------------------- % scrkernel-typearea.dtx -% Copyright (c) Markus Kohm, 2002-2014 +% Copyright (c) Markus Kohm, 2002-2015 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -55,11 +55,22 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: $Id: scrkernel-typearea.dtx 1770 2014-06-30 06:48:19Z kohm $ +%%% From File: $Id: scrkernel-typearea.dtx 2056 2015-03-30 08:24:20Z kohm $ %<package&identify>\NeedsTeXFormat{LaTeX2e}[1995/06/01] %<*driver> \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi -\ProvidesFile{scrkernel-typearea.dtx}[% +\begingroup + \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} + \filedate$Date: 2015-03-30 10:24:20 +0200 (Mon, 30 Mar 2015) $ + \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}} + \filerevision$Revision: 1872 $ + \edef\reserved@a{% + \noexpand\endgroup + \noexpand\ProvidesFile{scrkernel-typearea.dtx}[% + \filedate\space\filerevision\space + KOMA-Script source + } +\reserved@a %</driver> %<*driver|(package&identify)> %<package>\ProvidesPackage{typearea}[% @@ -134,7 +145,7 @@ % Zuerst einmal zeigen, was das Paket ist: % \begin{macrocode} \typeout{% - Package typearea, \csname ver@typearea.sty\endcsname^^J% + Package typearea, \csname ver@typearea.\@pkgextension\endcsname^^J% \@spaces\@spaces\@spaces\@spaces\space\space Copyright (C) Frank Neukam, 1992-1994^^J% \@spaces\@spaces\@spaces\@spaces\space\space @@ -159,9 +170,9 @@ % Auswertung der Optionen zu definieren. Ich mache das hier vor der % Deklaration der Optionen. % -% \begin{macro}{\SetDIVList} -% \changes{v2.1a}{1994/10/28}{neu} -% \changes{v2.6}{2000/01/04}{\cs{ta@divlist} enthält Werte für +% \begin{macro}{\SetDIVList} +% \changes{v2.1a}{1994/10/28}{neu}^^A +% \changes{v2.6}{2000/01/04}{\cs{ta@divlist} enthält Werte für % Schriftgrößen ab 1pt} % Der Befehl \cs{SetDIVList} tut nichts weiter als die innere Variable % für die schriftgrößenabhängige \emph{DIV}-Liste \cs{ta@divlist} neu @@ -170,19 +181,19 @@ % \begin{macrocode} \newcommand*\SetDIVList[1]{\def\ta@divlist{{}{}{}{}{}{}{}{}{}#1}} % \end{macrocode} -% \end{macro} +% \end{macro} % -% \begin{macro}{\SetXDIVList} -% \changes{v2.6}{2000/01/04}{neu} +% \begin{macro}{\SetXDIVList} +% \changes{v2.6}{2000/01/04}{neu}^^A % Da mit \cs{SetDIVList} aus Kompatibilitätsgründen nur Werte für % Größen ab 10\,pt gesetzt werden können, wird für Werte ab 1\,pt % ein neuer Befehl benötigt. % \begin{macrocode} \newcommand*\SetXDIVList[1]{\def\ta@divlist{#1}} % \end{macrocode} -% \end{macro} +% \end{macro} % -% \begin{Length}{\ta@bcor} +% \begin{Length}{\ta@bcor} % \changes{v2.2a}{1995/01/25}{Definition der Dimension wegen der % Option \texttt{BCOR} vorgezogen} % \changes{v2.7g}{2001/04/17}{\cs{newlength} and Stelle von @@ -192,27 +203,27 @@ % \begin{macrocode} \newlength{\ta@bcor} % \end{macrocode} -% \end{Length} +% \end{Length} % -% \begin{macro}{\ta@div} -% \changes{v2.2a}{1995/01/25}{Definition wegen der Option +% \begin{macro}{\ta@div} +% \changes{v2.2a}{1995/01/25}{Definition wegen der Option % \texttt{DIV} vorgezogen} % Zähler für \emph{DIV} reservieren. Dieser wird implizit zu 0 % initialisiert. % \begin{macrocode} \newcount\ta@div % \end{macrocode} -% \end{macro} +% \end{macro} % % Ab hier nun Teile für Klassen und Paket: % \begin{macrocode} %</package> % \end{macrocode} % -% \begin{macro}{\@BCOR} -% \begin{macro}{\@@BCOR} -% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch -% Mustererkennung ersetzt} +% \begin{macro}{\@BCOR} +% \begin{macro}{\@@BCOR} +% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch +% Mustererkennung ersetzt}^^A % Das Makro \cs{@BCOR} wird später benötigt, um die Option % \texttt{BCOR\emph{BCOR}} zu erkennen. Die Option wird über ihr % Muster erkannt. @@ -245,13 +256,13 @@ }{\scr@pti@nerr@r}% } % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % -% \begin{macro}{\@DIV} -% \begin{macro}{\@@DIV} -% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch -% Mustererkennung ersetzt} +% \begin{macro}{\@DIV} +% \begin{macro}{\@@DIV} +% \changes{v2.5}{1997/06/17}{Einzelzeichenscanner durch +% Mustererkennung ersetzt}^^A % Die grundsätzliche Funktion ist die gleiche wie bei \cs{@BCOR}, % \cs{@@BCOR}. % \begin{macrocode} @@ -271,13 +282,13 @@ \else\@BCOR\fi } % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % -% \begin{macro}{\@headlines} -% \begin{macro}{\@@headlines} -% \changes{v2.7g}{2001/04/17}{neue Mustererkennung für die Anzahl -% der Kopfzeilen} +% \begin{macro}{\@headlines} +% \begin{macro}{\@@headlines} +% \changes{v2.7g}{2001/04/17}{neue Mustererkennung für die Anzahl +% der Kopfzeilen}^^A % Das Macro \cs{@headlines} wird benötigt, um die Option % \texttt{headlines} zu erkennen. % \begin{macrocode} @@ -293,23 +304,23 @@ \else\@DIV\fi } % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % % Jetzt kommt ein Stück, das nur im Paket benötigt wird. % \begin{macrocode} %<*package> % \end{macrocode} % -% \begin{macro}{\x@paper} -% \begin{macro}{\x@@paper} -% \changes{v2.5}{1997/06/17}{neue Mustererkennung für die -% Papiergröße} +% \begin{macro}{\x@paper} +% \begin{macro}{\x@@paper} +% \changes{v2.5}{1997/06/17}{neue Mustererkennung für die +% Papiergröße}^^A % Diese Makros werden ebenfalls später benötigt, wenn die Papiergröße % festgelegt wird. -% \begin{macro}{\isopaper} -% \changes{v2.5}{1997/06/17}{neu} -% \changes{v2.95}{2002/12/03}{es sind auch Großbuchstaben erlaubt} +% \begin{macro}{\isopaper} +% \changes{v2.5}{1997/06/17}{neu}^^A +% \changes{v2.95}{2002/12/03}{es sind auch Großbuchstaben erlaubt}^^A % Da das Makro \cs{isopaper} zur Berechnung unterschiedlicher % ISO/DIN-Papierformate in der Mustererkennung für die Papiergröße % benötigt wird, wurde dieses Makro ebenfalls vorgezogen. @@ -406,7 +417,7 @@ \multiply\paperheight by186468 % \end{macrocode} % Jetzt noch die gewünschte Ausrichtung beachten. -% \changes{v2.97e}{2007/10/23}{gewünschte Papierausrichtung wird beachtet} +% \changes{v2.97e}{2007/10/23}{gewünschte Papierausrichtung wird beachtet}^^A % \begin{macrocode} \if@landscape \setlength{\@tempdima}{\paperwidth}% @@ -415,13 +426,13 @@ \fi } % \end{macrocode} -% \end{macro} -% \begin{macro}{\iso@paper} -% \changes{v2.95}{2002/12/03}{neu (intern)} +% \end{macro} +% \begin{macro}{\iso@paper} +% \changes{v2.95}{2002/12/03}{neu (intern)}^^A % Ein ganz ähnlicher interner Befehl erhält den gesamten Namen des % ISO-Papierformats als einziges Argument. -% \begin{macro}{\iso@@paper} -% \changes{v2.95}{2002/12/03}{neu (intern)} +% \begin{macro}{\iso@@paper} +% \changes{v2.95}{2002/12/03}{neu (intern)}^^A % Dieses Argument wird dann über einen weiteren internen Befehl per % Mustererkennung in den Kennbuchstaben und eine Zahl zerlegt. % \begin{macrocode} @@ -443,8 +454,8 @@ \fi } % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % % Jetzt wird es wieder für alle interessant: % \begin{macrocode} @@ -454,7 +465,7 @@ % Zurück zur Mustererkennung. Diese ist tatsächlich etwas einfacher % als die in den beiden Fällen zuvor. % \changes{v2.97e}{2007/10/23}{Optionen werden nach der neuen Syntax an -% typearea weitergeleitet} +% typearea weitergeleitet}^^A % \begin{macrocode} \newcommand*{\x@paper}{% \expandafter\x@@paper\CurrentOption paper\x@@paper% @@ -489,11 +500,11 @@ }% } % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % -% \begin{macro}{\scr@pti@nerr@r} -% \changes{v2.95}{2002/06/20}{\cs{OptionNotUsed} statt +% \begin{macro}{\scr@pti@nerr@r} +% \changes{v2.95}{2002/06/20}{\cs{OptionNotUsed} statt % \cs{PackageError}} % Falls die zuätzliche Option nicht \texttt{BCOR}, \texttt{DIV}, % \texttt{headlines} oder eine bekannte Papiergröße ist, ist die @@ -504,7 +515,7 @@ %<package> \@unknownoptionerror } % \end{macrocode} -% \end{macro} +% \end{macro} % % Jetzt wieder nur für Pakete: % \begin{macrocode} @@ -520,7 +531,7 @@ % \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit % \cs{FamilyKeyState}} % \begin{option}{footlines} -% \changes{v3.12}{2013/03/26}{neue Option} +% \changes{v3.12}{2013/03/26}{neue Option}^^A % Neben der Auswertung der \meta{Wert}\texttt{headlines} Form über % Pattern Matching wird hier auch noch eine \textsf{keyval}-Option % definiert, die bevorzugt zu verwenden ist. Für den Fuß wird überhaupt nur @@ -532,6 +543,8 @@ \endgroup \def\ta@hh{#1\baselineskip}% \FamilyKeyStateProcessed + \KOMA@kav@replacevalue{.typearea.\scr@pkgextension}{headlines}{#1}% + \KOMA@kav@replacevalue{.typearea.\scr@pkgextension}{headheight}{#1\baselineskip}% } \KOMA@key{footlines}{% \begingroup @@ -539,17 +552,19 @@ \endgroup \def\ta@fh{#1\baselineskip}% \FamilyKeyStateProcessed + \KOMA@kav@replacevalue{.typearea.\scr@pkgextension}{footlines}{#1}% + \KOMA@kav@replacevalue{.typearea.\scr@pkgextension}{footheight}{#1\baselineskip}% } % \end{macrocode} % \end{option} % \end{option} % % \begin{option}{headheight} -% \changes{v2.98c}{2008/04/06}{neue Option} +% \changes{v2.98c}{2008/04/06}{neue Option}^^A % \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit % \cs{FamilyKeyState}} % \begin{option}{footheight} -% \changes{v3.12}{2013/03/26}{neue Option} +% \changes{v3.12}{2013/03/26}{neue Option}^^A % Manchmal ist es nützlicher, wenn man die Höhe direkt setzen kann, statt sie % über die Anzahl der Grundlinien zu setzen. In dem Fall nimmt man einfach % diese Optionen. @@ -560,6 +575,8 @@ \endgroup \def\ta@hh{#1}% \FamilyKeyStateProcessed + \KOMA@kav@replacevalue{.typearea.\scr@pkgextension}{headheight}{#1}% + \KOMA@kav@removekey{.typearea.\scr@pkgextension}{headlines}% } \KOMA@key{footheight}{% \begingroup @@ -567,6 +584,8 @@ \endgroup \def\ta@fh{#1}% \FamilyKeyStateProcessed + \KOMA@kav@replacevalue{.typearea.\scr@pkgextension}{footheight}{#1}% + \KOMA@kav@removekey{.typearea.\scr@pkgextension}{footlines}% } % \end{macrocode} % \end{option} @@ -578,7 +597,7 @@ % \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{deprecated} +% \changes{v3.01a}{2008/11/21}{deprecated}^^A % Diese Optionen bestimmen, ob der Seitenkopf bereits zum Textbereich % gehört. % \begin{macro}{\if@hincl} @@ -605,7 +624,7 @@ % \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{deprecated} +% \changes{v3.01a}{2008/11/21}{deprecated}^^A % Diese Optionen bestimmen, ob die Fußzeilen noch zum Textbereich % gehören. % \begin{macro}{\if@fincl} @@ -627,14 +646,14 @@ % \end{option} % % \begin{option}{mpinclude} -% \changes{v2.8q}{2002/03/28}{neue Option} +% \changes{v2.8q}{2002/03/28}{neue Option}^^A % \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} % \begin{option}{mpexclude} -% \changes{v2.8q}{2002/03/28}{neue Option} +% \changes{v2.8q}{2002/03/28}{neue Option}^^A % \changes{v2.95}{2002/07/08}{Verwendung von \textsf{scrkeyvl}} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{deprecated} +% \changes{v3.01a}{2008/11/21}{deprecated}^^A % Es gibt Dokumente mit sehr ausführlichen Randnotizen, bei denen die % Randnotizen bei der Satzspiegelberechnung in den Satzspiegel % eingerechnet werden sollten. Diese Optionen bestimmen, ob dies der @@ -657,7 +676,7 @@ % \end{option} % % \begin{option}{BCOR} -% \changes{v2.2a}{1995/01/25}{neue Option} +% \changes{v2.2a}{1995/01/25}{neue Option}^^A % \changes{v2.95}{2002/12/04}{als \textsf{keyval}-Option % implementiert} % \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit @@ -667,16 +686,17 @@ % Laden des Pakets absolut keinen Sinn ergeben! % \begin{macrocode} \KOMA@key{BCOR}{% - \edef\@tempa{#1}\edef\@tempb{current}\ifx\@tempa\@tempb\else + \ifstr{#1}{current}{}{% \setlength{\ta@bcor}{#1}% - \fi + }% \FamilyKeyStateProcessed + \KOMA@kav@xreplacevalue{.typearea.\scr@pkgextension}{BCOR}{#1}% } % \end{macrocode} % Wenn allerdings der Satzspiegel bereits berechnet ist, dann muss er % hier stattdessen neu berechnet werden. -% \changes{v3.13}{2014/06/30}{fehlendes \cs{FamilyKeyStateProcessed} -% ergänzt}%^^A +% \changes{v3.13}{2014/06/30}{fehlendes \cs{FamilyKeyStateProcessed}^^A +% ergänzt}^^A % \begin{macrocode} \AtEndOfPackage{% \KOMA@key{BCOR}{\typearea[{#1}]{last}\FamilyKeyStateProcessed}% @@ -685,7 +705,7 @@ % \end{option} % % \begin{option}{DIV} -% \changes{v2.2a}{1995/01/25}{neue Option} +% \changes{v2.2a}{1995/01/25}{neue Option}^^A % \changes{v2.95}{2002/12/04}{als \textsf{keyval}-Option % implementiert} % \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit @@ -708,31 +728,32 @@ \fi \fi \FamilyKeyStateProcessed + \KOMA@kav@xreplacevalue{.typearea.\scr@pkgextension}{DIV}{#1}% } % \end{macrocode} % Wenn allerdings der Satzspiegel bereits berechnet ist, dann muss er % hier stattdessen neu berechnet werden. -% \changes{v3.13}{2014/06/30}{fehlendes \cs{FamilyKeyStateProcessed} -% ergänzt}%^^A +% \changes{v3.13}{2014/06/30}{fehlendes \cs{FamilyKeyStateProcessed}^^A +% ergänzt}^^A % \begin{macrocode} \AtEndOfPackage{% \KOMA@key{DIV}{\typearea[current]{#1}\FamilyKeyStateProcessed}% } % \end{macrocode} -% \end{option} +% \end{option} % % \begin{option}{DIVcalc} -% \changes{v2.4g}{1996/11/04}{neue Option} +% \changes{v2.4g}{1996/11/04}{neue Option}^^A % \changes{v2.95}{2002/12/04}{über Option \texttt{DIV} reimplementiert} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % \begin{option}{DIVclassic} -% \changes{v2.4n}{1997/05/28}{neue Option} +% \changes{v2.4n}{1997/05/28}{neue Option}^^A % \changes{v2.95}{2002/12/04}{über Option \texttt{DIV} reimplementiert} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % Dann gibt es da noch zwei alte Sonderfälle. % \begin{macrocode} \KOMA@DeclareDeprecatedOption[typearea]{DIVcalc}{DIV=calc} @@ -743,7 +764,7 @@ % % % \begin{option}{areasetadvanced} -% \changes{v3.11}{2012/04/17}{new internal option} +% \changes{v3.11}{2012/04/17}{new internal option}^^A % Switch to advanced version of \cs{areaset}. This does calculate margins % more like \cs{typearea}. Nevertheless, there's still a difference at the top % margin, because \cs{typerea} doesn't balance differences in calculated @@ -759,23 +780,29 @@ % % \begin{option}{oneside} % \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die -% Option an das Paket weiter}%^^A -% \changes{v3.01a}{2008/11/21}{standard statt obsolet}%^^A +% Option an das Paket weiter}^^A +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % \begin{option}{twoside} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} -% ersetzt}%^^A +% ersetzt}^^A % \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die -% Option an das Paket weiter}%^^A +% Option an das Paket weiter}^^A % \changes{v3.00}{2008/07/09}{die Option kennt zusätzlich den Wert -% \texttt{semi}}%^^A +% \texttt{semi}}^^A % \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit -% \cs{FamilyKeyState}}%^^A +% \cs{FamilyKeyState}}^^A % \changes{v3.13a}{2014/04/09}{Die Klasse setzt signalisiert ebenfalls -% \cs{FamilyKeyStateProcessed}}%^^A +% \cs{FamilyKeyStateProcessed}}^^A +% \changes{v3.17}{2015/03/17}{ab dieser Version werden \cs{flushbottom} und +% \cs{raggedbottom} automatisch gesetzt}^^A +% \changes{v3.17}{2015/03/17}{Voreinstellungen werden bereits hier +% gesetzt}^^A +% \changes{v3.17}{2015/03/18}{wenn möglich \cs{cleardoubleoddpage} +% verwenden}^^A % \begin{macro}{\if@semitwoside} -% \changes{v3.00}{2008/07/09}{neuer Schalter (intern)}%^^A +% \changes{v3.00}{2008/07/09}{neuer Schalter (intern)}^^A % \begin{macro}{\if@twoside} -% \changes{v3.00}{2008/07/09}{Schalter setzt auch \cs{if@semitwoside}}%^^A +% \changes{v3.00}{2008/07/09}{Schalter setzt auch \cs{if@semitwoside}}^^A % Einseitiger oder zweiseitiger Satzspiegel? % \begin{macrocode} \newif\if@semitwoside @@ -789,29 +816,62 @@ \KOMA@key{twoside}[true]{% %<class> \if@atdocument\else\PassOptionsToPackage{twoside=#1}{typearea}\fi% %<*package> - \if@atdocument\if@twoside\cleardoublepage\else\clearpage\fi\fi + \if@atdocument\if@twoside + \scr@ifundefinedorrelax{cleardoubleoddpage}{% + \cleardoublepage + }{% + \cleardoubleoddpage + }% + \else\clearpage\fi\fi +%</package> \ifstr{#1}{semi}{% \@twosidetrue - \@semitwosidetrue -%</package> +%<package> \@semitwosidetrue \FamilyKeyStateProcessed -%<*package> }{% \def\FamilyElseValue{, `semi'}% - \KOMA@set@ifkey{twoside}{@twoside}{#1}% + \KOMA@set@ifkey{twoside}{% +%<package> @twoside% +%<class> @tempswa% + }{#1}% }% - \if@twoside - \if@semitwoside - \@mparswitchfalse - \else - \@mparswitchtrue + \ifx\FamilyKeyState\FamilyKeyStateProcessed +%<*class> + \expandafter\ifnum\scr@v@is@ge{3.17}% +%<*!letter> + \if@tempswa\flushbottom + \else\if@twocolumn\flushbottom\else\raggedbottom\fi\fi +%</!letter> +%<letter> \raggedbottom \fi - \else - \@mparswitchfalse - \fi% - \csname recalctypearea\endcsname +%</class> + \KOMA@kav@xreplacevalue{.% +%<class> \KOMAClassFileName +%<package> typearea.\scr@pkgextension + }{twoside}{#1}% +%<*package> + \if@twoside + \if@semitwoside + \@mparswitchfalse + \else + \@mparswitchtrue + \fi + \else + \@mparswitchfalse + \fi% + \csname recalctypearea\endcsname %</package> + \fi } +%<*class> +%<book>\KOMAExecuteOptions{twoside=true} +%<!book>\KOMAExecuteOptions{twoside=false} +%</class> +%<*package> +\KOMA@kav@xadd{.typearea.\scr@pkgextension}{twoside}{% + \if@twoside true\else false\fi +} +%</package> \KOMA@DeclareStandardOption% %<package> [typearea]% {oneside}{twoside=false} @@ -826,18 +886,18 @@ % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} % \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die -% Option an das Paket weiter} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% Option an das Paket weiter}^^A +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % \begin{option}{twocolumn} % \changes{v2.95}{2002/12/04}{Option in das \textsf{typearea}-Paket % verlagert} % \changes{v2.97e}{2007/11/23}{auf vielfachen Wunsch reicht die Klasse die -% Option an das Paket weiter} +% Option an das Paket weiter}^^A % \changes{v2.98a}{2007/01/08}{es wird die richtige Option an das Paket -% weitergereicht} +% weitergereicht}^^A % \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit % \cs{FamilyKeyState}} -% \changes{v3.13a}{2014/04/09}{Signallisierung korrigiert} +% \changes{v3.13a}{2014/04/09}{Signallisierung korrigiert}^^A % Einspaltiger oder zweispaltiger Satz? % \begin{macrocode} %</package> @@ -845,19 +905,42 @@ %<class> \if@atdocument\else\PassOptionsToPackage{twocolumn=#1}{typearea}\fi% %<*package> \if@atdocument\clearpage\fi - \KOMA@set@ifkey{twocolumn}{@twocolumn}{#1}% - \ifx\FamilyKeyState %</package> - \FamilyKeyStateProcessed -%<*package> - \csname recalctypearea\endcsname + \KOMA@set@ifkey{twocolumn}{@twocolumn}{#1}% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \KOMA@kav@replacebool{.% +%<class> \KOMAClassFileName +%<package> typearea.\scr@pkgextension + }{twocolumn}{@twocolumn}% +%<package> \csname recalctypearea\endcsname +%<*class> + \expandafter\ifnum\scr@v@is@ge{3.17}% + \if@twocolumn\twocolumn\sloppy\flushbottom + \else\onecolumn\if@twoside\flushbottom\else\raggedbottom\fi\fi + \fi +%</class> \fi -%</package> } +%<*class> +\AtEndOfClass{% + \expandafter\ifnum\scr@v@is@lt{3.17}% +%<*!letter> + \if@twocolumn\twocolumn\sloppy\flushbottom + \else\onecolumn\if@twoside\flushbottom\else\raggedbottom\fi\fi +%</!letter> +%<letter> \raggedbottom + \fi +} +\KOMAExecuteOptions{twocolumn=false} +%</class> +%<*package> +\KOMA@kav@xadd{.typearea.\scr@pkgextension}{twocolumn}{% + \if@twocolumn true\else false\fi +} +%</package> \KOMA@DeclareStandardOption% %<package> [typearea]% {onecolumn}{twocolumn=false} -%<*package> % \end{macrocode} % \end{option} % \end{option} @@ -868,8 +951,8 @@ % Diese Optionen arbeiten in Abhänigkeit des Ausgabeformats. % % \begin{option}{pagesize} -% \changes{v2.7g}{2001/04/17}{neue Option} -% \changes{v2.95}{2002/08/27}{neu implementiert} +% \changes{v2.7g}{2001/04/17}{neue Option}^^A +% \changes{v2.95}{2002/08/27}{neu implementiert}^^A % \changes{v3.02c}{2009/02/14}{neuer Wert \texttt{false}} % \changes{v3.05a}{2010/03/18}{neuer Wert \texttt{dvipdfmx}} % \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit @@ -895,6 +978,7 @@ % werden gesetzt, falls sie definiert sind. % \end{labeling} % \begin{macrocode} +%<*package> \KOMA@key{pagesize}[auto]{% \begingroup \KOMA@set@ncmdkey{pagesize}{@tempa}{% @@ -922,6 +1006,7 @@ \endgroup \set@dvipdfmxpagesize \fi + \KOMA@kav@xreplacevalue{.typearea.\scr@pkgextension}{pagesize}{#1}% \edef\@pagesizelast{#1}% \else \endgroup @@ -931,22 +1016,22 @@ % \end{macrocode} % % \begin{macro}{\set@pdftexpagesize} -% \changes{v2.95}{2002/08/27}{neu (intern)} +% \changes{v2.95}{2002/08/27}{neu (intern)}^^A % \begin{macro}{\set@dvipspagesize} -% \changes{v2.95}{2002/08/27}{neu (intern)} +% \changes{v2.95}{2002/08/27}{neu (intern)}^^A % \changes{v3.02c}{2009/02/13}{\texttt{seascape} wird beachtet} -% \changes{v3.02c}{2009/02/14}{funktioniert auch im Dokument} +% \changes{v3.02c}{2009/02/14}{funktioniert auch im Dokument}^^A % \changes{v3.12}{2012/02/06}{nicht ausgeführtes % \cs{let}\cs{if@tempswa}\cs{if@dvips} funktioniert auch noch, wenn % letzteres nicht definiert ist} % \begin{macro}{\setnot@dvipspagesize} -% \changes{v2.95}{2002/08/27}{neu (intern)} +% \changes{v2.95}{2002/08/27}{neu (intern)}^^A % \begin{macro}{\set@dvipdfmxpagesize} -% \changes{v3.05a}{2010/03/18}{neu (intern)} +% \changes{v3.05a}{2010/03/18}{neu (intern)}^^A % \begin{macro}{\set@vtexpagesize} -% \changes{v2.95}{2002/08/27}{neu (intern)} +% \changes{v2.95}{2002/08/27}{neu (intern)}^^A % \begin{macro}{\scr@updatedvipspagesize} -% \changes{v3.02c}{2009/02/14}{neu (intern)} +% \changes{v3.02c}{2009/02/14}{neu (intern)}^^A % \changes{v3.12}{2013/05/10}{deaktiviert, wenn \cs{XeTeXversion} existiert} % Damit die Option \texttt{pagesize} überhaupt funktionieren kann, % werden einige interne Makros benötigt. @@ -979,7 +1064,7 @@ \if@seascape\special{! TeXDict begin /landplus90{true}store end }\fi }% }% - \ifnum \scr@compatibility>\@nameuse{scr@v@3.02b}\relax + \expandafter\ifnum\scr@ta@v@is@gt{3.02b}\relax \let\set@dvipspagesize=\@empty \else \let\set@dvipspagesize=\setnot@dvipspagesize @@ -1033,11 +1118,11 @@ \ifnotundefined{pdfpagewidth}{\pdfpagewidth=\paperwidth}{}% \ifnotundefined{pdfpageheight}{\pdfpageheight=\paperheight}{}% }% - \ifnum \scr@compatibility>\@nameuse{scr@v@3.02b}\relax + \expandafter\ifnum\scr@ta@v@is@gt{3.02b}\relax \renewcommand*{\set@dvipspagesize}{% % \end{macrocode} % \changes{v3.12}{2012/11/23}{nur im DVI- und PS-Fall das Papierformatupdate -% durchführen} +% durchführen}^^A % \changes{v3.12}{2012/02/06}{nicht ausgeführtes % \cs{let}\cs{if@tempswa}\cs{if@dvips} funktioniert auch noch, wenn % letzteres nicht definiert ist} @@ -1139,11 +1224,11 @@ % % % \begin{option}{dvips} -% \changes{v2.7g}{2001/04/17}{neue Option} -% \changes{v2.95}{2002/08/27}{neu implementiert} -% \changes{v2.98c}{2008/04/09}{Ersatz geändert} -% \changes{v2.98c}{2008/04/09}{Info statt Warnung} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v2.7g}{2001/04/17}{neue Option}^^A +% \changes{v2.95}{2002/08/27}{neu implementiert}^^A +% \changes{v2.98c}{2008/04/09}{Ersatz geändert}^^A +% \changes{v2.98c}{2008/04/09}{Info statt Warnung}^^A +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % Die Option ist obsolete und wird nun über die Option % \texttt{pagesize} implementiert. Obwohl die Verwendung von % \texttt{pagesize=automedia} zu einer Warnung führen kann, wird hier nur @@ -1153,14 +1238,14 @@ pagesize=automedia% } % \end{macrocode} -% \end{option} +% \end{option} % % \begin{option}{pdftex} -% \changes{v2.7g}{2001/04/17}{neue Option} -% \changes{v2.95}{2002/08/27}{neu implementiert} +% \changes{v2.7g}{2001/04/17}{neue Option}^^A +% \changes{v2.95}{2002/08/27}{neu implementiert}^^A % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % Die Option ist obsolete und wird nun über die Option % \texttt{pagesize} implementiert. % \begin{macrocode} @@ -1183,35 +1268,35 @@ % \begin{option}{a4paper} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % \begin{option}{a5paper} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % \begin{option}{b5paper} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % \begin{option}{letterpaper} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % \begin{option}{legalpaper} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % \begin{option}{executivepaper} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % \begin{option}{landscape} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % \begin{option}{portrait} % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt} -% \changes{v3.01a}{2008/11/21}{standard statt obsolet} +% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A % Die Formate, die auch bei den Standardklassen definiert sind, werden % als Sonderfall explizit definiert. Dadurch ist ein Wechsel der % Klasse bzw. die Verwendung von \textsf{typearea} mit den @@ -1238,8 +1323,8 @@ % \end{option} % % \begin{option}{paper} -% \changes{v2.95}{2002/12/03}{neu implementiert} -% \changes{v3.01b}{2008/12/09}{Höhe und Breite vertauscht} +% \changes{v2.95}{2002/12/03}{neu implementiert}^^A +% \changes{v3.01b}{2008/12/09}{Höhe und Breite vertauscht}^^A % \changes{v3.02c}{2009/02/12}{neuer Wert \texttt{seascape}} % \changes{v3.12}{2013/03/05}{Verwendung der Status-Signalisierung mit % \cs{FamilyKeyState}} @@ -1288,6 +1373,8 @@ \setlength\paperwidth {8.5in}% \fi \FamilyKeyStateProcessed + \KOMA@kav@removekey{.typearea.\scr@pkgextension}{paper}% + \KOMA@kav@add{.typearea.\scr@pkgextension}{paper}{letter}% }{% \ifstr{#1}{legal}{% \if@landscape @@ -1298,6 +1385,8 @@ \setlength\paperwidth {8.5in}% \fi \FamilyKeyStateProcessed + \KOMA@kav@removekey{.typearea.\scr@pkgextension}{paper}% + \KOMA@kav@add{.typearea.\scr@pkgextension}{paper}{legal}% }{% \ifstr{#1}{executive}{% \if@landscape @@ -1308,14 +1397,18 @@ \setlength\paperwidth {7.25in}% \fi \FamilyKeyStateProcessed + \KOMA@kav@removekey{.typearea.\scr@pkgextension}{paper}% + \KOMA@kav@add{.typearea.\scr@pkgextension}{paper}{executive}% }{% \iso@paper{#1}% \if@tempswa \FamilyKeyStateProcessed + \KOMA@kav@removekey{.typearea.\scr@pkgextension}{paper}% + \KOMA@kav@xadd{.typearea.\scr@pkgextension}{paper}{#1}% \else \expandafter\maybe@pair#1::\@nil \if@tempswa - \ifnum \scr@ta@compatibility<\@nameuse{scr@v@3.01b}\relax + \expandafter\ifnum \scr@ta@v@is@lt{3.01b}\relax \PackageWarningNoLine{typearea}{% You may have to exchange height and width!\MessageBreak Until KOMA-Script version 3.01b the semantic\MessageBreak @@ -1330,7 +1423,13 @@ \setlength\paperheight{\@tempb}% \fi \FamilyKeyStateProcessed - \else + \KOMA@kav@removekey{.typearea.\scr@pkgextension}{paper}% + \if@landscape + \KOMA@kav@xadd{.typearea.\scr@pkgextension}{paper}{\@tempa:\@tempb}% + \else + \KOMA@kav@xadd{.typearea.\scr@pkgextension}{paper}{\@tempb:\@tempa}% + \fi + \else \KOMA@unknown@keyval{paper}{#1}{% `letter', `legal', `executive', `a'<nr>, `b'<nr>, `c'<nr>, `d'<nr>,\MessageBreak @@ -1341,17 +1440,28 @@ }% }% }% + \ifx\FamilyKeyState\FamilyKeyStateProcessed + \if@landscape + \if@seascape + \KOMA@kav@add{.typearea.\scr@pkgextension}{paper}{seascape}% + \else + \KOMA@kav@add{.typearea.\scr@pkgextension}{paper}{landscape}% + \fi + \else + \KOMA@kav@add{.typearea.\scr@pkgextension}{paper}{portrait}% + \fi + \fi }% }% }% } % \end{macrocode} % \begin{macro}{\if@seascape} -% \changes{v3.02c}{2009/02/12}{neu} +% \changes{v3.02c}{2009/02/12}{neu}^^A % \begin{macro}{\@seascapetrue} -% \changes{v3.02c}{2009/02/12}{neu} +% \changes{v3.02c}{2009/02/12}{neu}^^A % \begin{macro}{\@seascapefalse} -% \changes{v3.02c}{2009/02/12}{neu} +% \changes{v3.02c}{2009/02/12}{neu}^^A % In diesem Schalter wird nur gespeichert, ob Breitformat ggf. umgekehrt % verwendet werden soll. Dies macht derzeit nur bei Verwendung von dvips einen % Unterschied! @@ -1373,8 +1483,8 @@ % \end{macro} % \end{macro} % \begin{macro}{\maybe@pair} -% \changes{v2.95}{2002/12/03}{neu (intern)} -% \changes{v2.97e}{2007/11/26}{funktioniert zum ersten Mal} +% \changes{v2.95}{2002/12/03}{neu (intern)}^^A +% \changes{v2.97e}{2007/11/26}{funktioniert zum ersten Mal}^^A % Testet, ob der nachfolgende Parameter die Form % "`\meta{erstes Argument}:\meta{zweites Argument}"' hat. % Wenn ja, wird \cs{@tempa} mit dem ersten und \cs{@tempb} mit dem @@ -1391,6 +1501,17 @@ % \end{macro} % \end{option} % +% \subsubsection{\textsf{geometry} Berücksichtigung]} +% +% \begin{option}{usegeometry} +% \changes{v3.17}{2015/02/07}{neue Option}^^A +% Mit dieser Option kann eingestellt werden, dass \cs{activateareas} die +% Einstellungen außerdem an das Paket \textsf{geometry} übergeben soll. +% \begin{macrocode} +\KOMA@ifkey{usegeometry}{@ta@usegeometry} +% \end{macrocode} +% \end{option} +% % \begin{macrocode} %</package> % \end{macrocode} @@ -1443,26 +1564,27 @@ % eingestellt. Diese Optionen können selbstverständlich durch % explizite Angaben überladen werden. % \changes{v2.3h}{1995/01/19}{\cs{relax} nach \cs{ProcessOptions} -% ergänzt.} +% ergänzt.}^^A % \changes{v2.96}{2006/08/18}{Optionen werden in Reihenfolge der Angabe statt -% in Reihenfolge der Deklaration abgearbeitet.} +% in Reihenfolge der Deklaration abgearbeitet.}^^A % \changes{v2.97c}{2007/04/19}{Verwendung von \cs{KOMAExecuteOptions} an % Stelle von \cs{KOMAoptions} und \cs{KOMAProcessOptions} an Stelle von -% \cs{ProcessOptions}} +% \cs{ProcessOptions}}^^A % \changes{v2.97c}{2007/04/19}{Optionen, die der Voreinstellung ohnehin -% entsprechen, werden nicht explizit gesetzt} +% entsprechen, werden nicht explizit gesetzt}^^A % \changes{v2.97c}{2007/07/18}{Option \texttt{twoside} wird explizit passend -% gesetzt} +% gesetzt}^^A % \changes{v3.12}{2013/11/11}{die voreingestellte Papiergröße kann via -% \cs{defaultpagesize} auch in \texttt{typearea.cfg} verändert werden} +% \cs{defaultpagesize} auch in \texttt{typearea.cfg} verändert werden}^^A +% \changes{v3.17}{2015/03/02}{Defaulteinstellung \texttt{pagesize}}^^A % \begin{macro}{\defaultpapersize} -% \changes{v3.12}{2013/11/11}{Neue Anweisung} +% \changes{v3.12}{2013/11/11}{Neue Anweisung}^^A % \begin{macrocode} \providecommand*{\defaultpapersize}{A4} % \end{macrocode} % \end{macro} % \begin{macrocode} -\KOMAExecuteOptions{paper=\defaultpapersize} +\KOMAExecuteOptions{paper=\defaultpapersize,pagesize} \if@twoside \if@semitwoside \KOMAExecuteOptions{twoside=semi} @@ -1478,24 +1600,24 @@ % % \subsection{Schriftgrößenabhängige Voreinstellungen für \emph{DIV}} % -% \begin{macro}{\ta@divlist} -% \changes{v2.0e}{1994/10/28}{neu (intern)} -% \changes{v2.6}{2000/01/04}{die Liste umfasst nun Werte ab 1\,pt -% statt ab 10\,pt.} -% \begin{macro}{\ta@divlistelse} -% \changes{v2.6}{2000/01/04}{neu (intern)} +% \begin{macro}{\ta@divlist} +% \changes{v2.0e}{1994/10/28}{neu (intern)}^^A +% \changes{v2.6}{2000/01/04}{die Liste umfasst nun Werte ab 1\,pt +% statt ab 10\,pt.}^^A +% \begin{macro}{\ta@divlistelse} +% \changes{v2.6}{2000/01/04}{neu (intern)}^^A % An dieser Stelle muss noch für die Standardeinstellung der % \textit{DIV}-Liste gesorgt werden, falls eine solche noch nicht % definiert wurde. % \begin{macrocode} \providecommand\ta@divlist{{}{}{}{}{}{}{}{}{}{8}{10}{12}} % \end{macrocode} -% \end{macro} +% \end{macro} % Wenn kein Defaultwert definiert ist, wird dieser Wert verwendet: % \begin{macrocode} \providecommand\ta@divlistelse{1} % \end{macrocode} -% \end{macro} +% \end{macro} % % % Das waren die Optionen für das Paket oder im ersten Durchlauf der @@ -1591,9 +1713,9 @@ % % \subsection{Einige interne Register} % -% \begin{Length}{\ta@hblk} -% \begin{Length}{\ta@vblk} -% \begin{Length}{\ta@temp} +% \begin{Length}{\ta@hblk} +% \begin{Length}{\ta@vblk} +% \begin{Length}{\ta@temp} % Diese Größsenparameter und werden intern für verschiedene Befehle % benötigt. (Die Zähler \cs{ta@bcor} und \cs{ta@div} werden bereits % bei der Optionenauswertung benötigt und sind deshalb vorgezogen.) @@ -1602,23 +1724,23 @@ \newlength{\ta@vblk} \newlength{\ta@temp} % \end{macrocode} -% \end{Length} -% \end{Length} -% \end{Length} +% \end{Length} +% \end{Length} +% \end{Length} % % % \subsection{Die Berechnung des Satzspiegels} % -% \begin{macro}{\typearea} +% \begin{macro}{\typearea} % Die Berechnung des Satzspiegels, wie sie in der Anleitung % beschrieben ist, findet mit Hilfe des Befehls \cs{typearea} statt, % der hier definiert wird. Die Berechnung selbst benötigt mehreren % Stufen. % -% \begin{macro}{\@typearea} -% \changes{v2.4n}{1997/05/28}{eigentliche Satzspiegelberechnung in +% \begin{macro}{\@typearea} +% \changes{v2.4n}{1997/05/28}{eigentliche Satzspiegelberechnung in % \cs{@typearea} ausgegliedert} -% \changes{v2.95}{2002/08/20}{\cs{selectfont} eingefügt} +% \changes{v2.95}{2002/08/20}{\cs{selectfont} eingefügt} % Die eigentliche Satzspiegelberechnung geschieht über das Hilfsmakro % \cs{@typearea}, das dann auch von \cs{typearea} genutzt wird. Dieses % Hilfsmakro benötigt keine Parameter, da diese bereits zuvor von @@ -1642,7 +1764,7 @@ % \end{macrocode} % Die Größe des Bereichs für die Randnotizen ist ebenfalls von der % Streifenbreite abhängig. -% \changes{v2.8q}{2002/03/28}{Textbreite berücksichtigt Option +% \changes{v2.8q}{2002/03/28}{Textbreite berücksichtigt Option % \texttt{mpinclude}} % \begin{macrocode} \if@mincl @@ -1680,7 +1802,7 @@ % \KOMAScript~3.12 dem inneren Rand zugeschlagen. Bei Kompatibilität zu % älteren Versionen wird hingegen immer der linke Rand verwendet. % \begin{macrocode} - \ifnum \scr@compatibility<\@nameuse{scr@v@3.12}\relax + \expandafter\ifnum\scr@ta@v@is@lt{3.12}\relax \evensidemargin=\oddsidemargin \else \advance\evensidemargin by1.5\ta@hblk @@ -1783,9 +1905,9 @@ \do{\advance\textheight by\baselineskip}% } % \end{macrocode} -% \end{macro} +% \end{macro} % -% \begin{macro}{\ta@modiv} +% \begin{macro}{\ta@modiv} % Dieses Hilfsmakro wird weiter unten benötigt. Es dividiert den % ersten Parameter durch den zweiten und liefert das gerundete % Ergebnis in \cs{ta@div} zurück. Für die Berechnung werden @@ -1806,7 +1928,7 @@ \setlength{\@tempdimb}{#1}% \divide\@tempdimb by\ta@div % \end{macrocode} -% \changes{v2.5a}{1997/06/22}{\cs{ifdim} statt \cs{ifnum}} +% \changes{v2.5a}{1997/06/22}{\cs{ifdim} statt \cs{ifnum}} % \begin{macrocode} \ifdim \@tempdima<\@tempdimb \advance\ta@div by\m@ne @@ -1814,20 +1936,20 @@ \fi } % \end{macrocode} -% \end{macro} +% \end{macro} % -% \begin{macro}{\ta@temp@goodwidth} +% \begin{macro}{\ta@temp@goodwidth} % Dieses Makro setzt die Hilfdimension \cs{ta@temp} auf den Wert einer % optimalen Zeilenbreite in der aktuellen Schrift. Voraussetzung für % diese Berechnung ist, dass Zeilenbreiten von ca. 66 bis 72 Zeichen % optimal sind. Zur Vereinfachung wird mit dem Mittelwert 69 % gerechnet. Eine solche Zeile besteht dann aus 66 durchschnittlichen % Klein- und 3 durchschnittlichen Großbuchstaben. -% \changes{v2.7i}{2001/05/17}{Berechnung ist robuster gegen +% \changes{v2.7i}{2001/05/17}{Berechnung ist robuster gegen % arithmetischen Überlauf bei sehr großen Schriften} -% \changes{v2.8q}{2002/03/06}{\cs{normalfont} \cs{normalsize} +% \changes{v2.8q}{2002/03/06}{\cs{normalfont} \cs{normalsize} % hinzugefügt} -% \changes{v2.95a}{2006/07/20}{Berechnung für große Schriften korrigiert} +% \changes{v2.95a}{2006/07/20}{Berechnung für große Schriften korrigiert}^^A % \begin{macrocode} \newcommand*\ta@temp@goodwidth{% \settowidth{\ta@temp}{\normalfont\normalsize @@ -1848,10 +1970,10 @@ \fi } % \end{macrocode} -% \end{macro} +% \end{macro} % -% \begin{macro}{\AfterCalculatingTypearea} -% \changes{v2.96a}{2006/11/29}{neu} +% \begin{macro}{\AfterCalculatingTypearea} +% \changes{v2.96a}{2006/11/29}{neu}^^A % Neuerdings besteht die Möglichkeit, auf Benutzerebene das Verhalten von % \cs{typearea} zu beeinflussen. In der Sternvariante wird dabei lokal % gearbeitet. @@ -1860,20 +1982,20 @@ \@ifstar \l@addto@macro \g@addto@macro \@typearea@end } % \end{macrocode} -% \begin{macro}{\@typearea@end} -% \changes{v2.96a}{2006/11/29}{wird wieder immer aber mit neuer Bedeutung -% definiert} +% \begin{macro}{\@typearea@end} +% \changes{v2.96a}{2006/11/29}{wird wieder immer aber mit neuer Bedeutung +% definiert}^^A % Das Makro \cs{@typearea@end} dient als Hook, um am Ende von \cs{typearea} % noch irgendwelche Änderungen vornehmen zu können. Dies geschieht ggf. noch % vor der Aktivierung der Einstellungen innerhalb eines Dokuments. % \begin{macrocode} \newcommand*{\@typearea@end}{} % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % -% \begin{macro}{\AfterSettingArea} -% \changes{v3.11}{2012/04/17}{new} +% \begin{macro}{\AfterSettingArea} +% \changes{v3.11}{2012/04/17}{new}^^A % The user may influence the result of \cs{areaset}. The star version works % local while the non-star version is global. % \begin{macrocode} @@ -1881,19 +2003,20 @@ \@ifstar \l@addto@macro \g@addto@macro \@areaset@end } % \end{macrocode} -% \begin{macro}{\@areaset@end} -% \changes{v3.11}{2012/04/17}{new} +% \begin{macro}{\@areaset@end} +% \changes{v3.11}{2012/04/17}{new}^^A % Macro \cs{@areaset@end} is a hook to make it possible to add some % instructions to the end of the \cs{areaset} command. This will be executed % before the activation of the settings inside a document. % \begin{macrocode} \newcommand*{\@areaset@end}{} % \end{macrocode} -% \end{macro} -% \end{macro} +% \end{macro} +% \end{macro} % -% \begin{macro}{\activateareas} -% \changes{v2.96a}{Neuer Name für alte Anweisung} +% \begin{macro}{\activateareas} +% \changes{v2.96a}{2006/11/29}{Neuer Name für alte Anweisung}^^A +% \changes{v3.17}{2015/02/07}{Beachte Option \texttt{usegeometry}}^^A % Dieses Makro wird verwendet, um mit einem gewaltigen Hack die Änderung des % Satzspiegels innerhalb eines Dokuments zu ermöglichen. Es stellt selbst % sicher, dass es nur innerhalb des Dokuments ausgeführt wird. @@ -1934,10 +2057,80 @@ \scr@ifundefinedorrelax{@pagesizelast}{}{% \KOMAoptions{pagesize=\@pagesizelast}% }% +% \end{macrocode} +% \changes{v3.17}{2015/03/18}{Anpassung der \texttt{parskip}-Einstellungen}^^A +% Ab Version~3.17 wird bei Änderung des Satzspiegels auch Absatzabstand, +% -Einzug und Endzeilenfreiraum angepasst. Dies geschieht hier, weil es erst +% nach \cs{begin{document}} notwendig ist. Zuvor erfolgt dies noch automatisch. +% \begin{macrocode} + \expandafter\ifnum\scr@ta@v@is@ge{3.17}% + \csname par@updaterelative\endcsname + \fi + \fi +% \end{macrocode} +% \changes{v3.17}{2015/02/07}{neuer Code für Option \texttt{usegeometry}} +% \begin{macrocode} + \edef\scr@geometryargs{% + bindingoffset=\the\ta@bcor, + lmargin=\the\dimexpr 1in+\oddsidemargin-\ta@bcor\relax, + textwidth=\the\textwidth, + \if@hincl + includehead,% + top=\the\dimexpr 1in+\topmargin\relax, + \else + includehead=false,% + top=\the\dimexpr 1in+\topmargin+\headheight+\headsep\relax, + \fi + headheight=\the\headheight, + headsep=\the\headsep, + textheight=\the\textheight, + \if@fincl + includefoot, + \else + includefoot=false, + \fi + footskip=\the\footskip, + \if@mincl + includemp, + \else + includemp=false, + \fi + marginparwidth=\the\marginparwidth, + marginparsep=\the\marginparsep + }% + \if@ta@usegeometry + \@ifundefined{Gm@save}{% + \if@atdocument\else + \edef\scr@geometryargs{% + paperwidth=\the\paperwidth,paperheight=\the\paperheight,% + \scr@geometryargs + }% + \PassOptionsToPackage{\scr@geometryargs}{geometry}% + \fi + }{% + \edef\Gm@restore@org{\Gm@restore}% + \if@atdocument + \expandafter\newgeometry\expandafter{\scr@geometryargs}% + \else + \edef\scr@geometryargs{% + paperwidth=\the\paperwidth,paperheight=\the\paperheight,% + \scr@geometryargs + }% + \expandafter\geometry\expandafter{\scr@geometryargs}% + \fi + }% \fi } % \end{macrocode} -% \end{macro} +% \begin{macro}{scr@geometryargs} +% \changes{v3.16}{2015/02/07}{neu (intern)}^^A +% Dieses Makro nimmt innerhalb von \cs{activateareas} die Optionen für +% \textsf{geometry} auf. Initialisiert wird es einfach leer. +% \begin{macrocode} +\newcommand*{\scr@geometryargs}{} +% \end{macrocode} +% \end{macro} +% \end{macro} % % \begin{macro}{\storeareas} % \changes{v3.10}{2011/09/13}{neue Anweisung}% @@ -1945,7 +2138,7 @@ % werden. Dieses Makro kann anschließend genutzt werden, um die % Einstellungen wieder her zu stellen. % \begin{macro}{\scr@grouplevel@test} -% \changes{v3.10}{2011/09/13}{neu (intern)} +% \changes{v3.10}{2011/09/13}{neu (intern)}^^A % \begin{macrocode} \newcommand*{\scr@grouplevel@test}[1]{% \ifcase\currentgrouptype\else @@ -1992,6 +2185,11 @@ \noexpand\def\noexpand\@lastdiv{\@lastdiv}% \noexpand\marginparsep=\the\marginparsep\space \noexpand\marginparwidth=\the\marginparwidth\space + \noexpand\def + \expandafter\noexpand\csname scr@kav@KOMA.typearea.\scr@pkgextension\endcsname{% + \unexpanded\expandafter\expandafter\expandafter{% + \csname scr@kav@KOMA.typearea.\scr@pkgextension\endcsname}% + }% }% }% \reserved@a @@ -2000,21 +2198,21 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\ta@divfor} +% \begin{macro}{\ta@divfor} % Der Standardseitenspiegel ist abhängig von den mit \cs{SetDIVList} % vorgegebenen Einstellungen. Dazu muss aus einer eventuell % vorhandenen inneren Liste \cs{ta@divlist} der von der Schriftgröße % abhängige \textit{DIV}-Wert ausgelesen werden. Dies geschieht mit % Hilfe des \cs{ta@divfor}-Befehls, der sich wiederum einiger interner % Befehle zur Listenbearbeitung bedient. -% \changes{v2.4g}{1996/11/04}{Satzspiegel wird nicht mehr direkt +% \changes{v2.4g}{1996/11/04}{Satzspiegel wird nicht mehr direkt % berechnet, sondern nur der \textit{DIV}-Wert aus der % Defaultliste ermittelt} -% \changes{v2.6}{2000/01/04}{Berücksichtigung der erweiterten -% Liste} -% \changes{v2.8q}{2002/03/28}{Berücksichtigung der Option -% `mpinclude'} -% \changes{v2.96}{2006/08/11}{Schriftgröße muss nicht in ganzen pt sein} +% \changes{v2.6}{2000/01/04}{Berücksichtigung der erweiterten +% Liste}^^A +% \changes{v2.8q}{2002/03/28}{Berücksichtigung der Option +% `mpinclude'}^^A +% \changes{v2.96}{2006/08/11}{Schriftgröße muss nicht in ganzen pt sein}^^A % \begin{macrocode} \newcommand*{\ta@divfor}[1]{% \if@mincl @@ -2071,7 +2269,7 @@ % \end{macrocode} % \end{macro} % -% \changes{v2.4g}{1996/11/04}{überflüssigen Kommentar gelöscht} +% \changes{v2.4g}{1996/11/04}{überflüssigen Kommentar gelöscht}^^A % \changes{v2.7g}{2001/04/17}{die neuen Werte \texttt{current}, % \texttt{default}, \texttt{calc}, \texttt{classic} werden % verstanden} @@ -2080,7 +2278,7 @@ % \changes{v2.96}{2006/08/21}{Warnung, wenn \cs{typearea} innerhalb einer % Gruppe verwendet wird} % \changes{v3.10}{2011/09/13}{Verwendung von \cs{scr@grouplevel@test}} -% \changes{v3.12}{2013/03/26}{konfigurierbare Höhe des Fußes} +% \changes{v3.12}{2013/03/26}{konfigurierbare Höhe des Fußes}^^A % % Die symbolischen Werte für das obligatorische Argument von % \cs{typearea} haben folgende Bedeutung: @@ -2125,7 +2323,7 @@ % neue Seite begonnen werden. Außerdem wird sichergestellt, dass die aktuelle % Schriftgröße die Grundschriftgröße ist und auch mit dem aktuellen % Durchschuss gerechnet wird. -% \changes{v2.95a}{2006/07/20}{Grundschriftgröße einstellen} +% \changes{v2.95a}{2006/07/20}{Grundschriftgröße einstellen}^^A % \begin{macrocode} \if@atdocument\newpage\fi \normalsize @@ -2135,8 +2333,8 @@ % der Berechnung wird als Höhe für den Kopf das 1,25-Fache des % Grundzeilenabstandes gewählt. Damit sollte auch noch genug Raum für die % optionale Trennlinie vorhanden sein. -% \changes{v2.4n}{1997/05/28}{berechnete Kopfhöhe vom -% Grundzeilenabstand abhängig} +% \changes{v2.4n}{1997/05/28}{berechnete Kopfhöhe vom +% Grundzeilenabstand abhängig}^^A % \begin{macrocode} \@ifundefined{ta@hh}{% \headheight=1.25\baselineskip @@ -2173,14 +2371,14 @@ \marginparsep=1cc \marginparpush=0.45\baselineskip % \end{macrocode} -% \changes{v2.4g}{1996/11/04}{\textit{DIV}=0 versucht den Wert aus +% \changes{v2.4g}{1996/11/04}{\textit{DIV}=0 versucht den Wert aus % der Default-Liste zu verwenden} % Vor der eigentlichen Berechnung des Satzspiegels wird nun zunächst % überprüft, ob der übergebene \textit{DIV}-Wert 0 ist. Da Werte von 0 % bis 3 nicht möglich sind (Minimum sind drei Teile Rand und ein Teil % Text), wird der Wert 0 dafür verwendet, den Defaultwert aus der % Liste zu ermitteln, falls ein solcher vorhanden ist. -% \changes{v2.5h}{1999/12/29}{Text der Warnung korrigiert} +% \changes{v2.5h}{1999/12/29}{Text der Warnung korrigiert}^^A % \begin{macrocode} \ifnum\ta@div=\z@ \@ifundefined{@ptsize}{% @@ -2226,7 +2424,7 @@ % \end{macrocode} % Wird vertikal mehr Platz benötigt, als vorhanden ist, wird eine % andere Berechnung versucht, die weiter unten erfolgt. -% \changes{v2.5a}{1997/06/22}{\cs{ifdim} statt \cs{ifnum}} +% \changes{v2.5a}{1997/06/22}{\cs{ifdim} statt \cs{ifnum}} % \begin{macrocode} \ifdim \ta@temp >\paperheight \PackageWarningNoLine{typearea}{% @@ -2262,7 +2460,7 @@ % Wurde bisher kein Wert gefunden oder ein \textit{DIV}-Wert von 1 bis % 2 angegeben, so wird nun ein möglichst optimaler \textit{DIV}-Wert % ermittelt. -% \changes{v2.4n}{1997/05/28}{optimale \textit{DIV}-Berechnung +% \changes{v2.4n}{1997/05/28}{optimale \textit{DIV}-Berechnung % verbessert} % \begin{macrocode} \ifnum\ta@div <4 @@ -2280,7 +2478,7 @@ % \end{macrocode} % Im Zweispaltenmodus besteht jede Zeile aus zwei solchen Spalten % zuzüglich dem Spaltenabstand: -% \changes{v2.8q}{2001/12/13}{\texttt{DIVcalc} liefert im +% \changes{v2.8q}{2001/12/13}{\texttt{DIVcalc} liefert im % zweispaltigen Satz (wie dokumentiert) breitere Spalten} % \begin{macrocode} \if@twocolumn @@ -2310,7 +2508,7 @@ \fi % \end{macrocode} % Nun kann wieder der \textit{DIV}-Wert ermittelt werden. -% \changes{v2.8q}{2002/03/28}{Berüchsichtigung von Option +% \changes{v2.8q}{2002/03/28}{Berüchsichtigung von Option % \texttt{mpinclude} bei der \textit{DIV}-Berechnung} % Im Falle der Option \texttt{mpinclude} gilt allgemein, dass % der Nenner mit $\frac{3}{3+m}$ zu multiplizieren ist. Dabei ist $m$ @@ -2338,7 +2536,7 @@ % hier ist wieder eine minimale Streifenbreite vorteilhaft. Die % Streifenbreite ergibt sich direkt aus dem oberen Rand. Wobei jedoch % noch das {\TeX}-Offset von 1\,in zu berücksichtigen ist. -% \changes{v2.5a}{1997/06/22}{\cs{ifdim} statt \cs{ifnum}} +% \changes{v2.5a}{1997/06/22}{\cs{ifdim} statt \cs{ifnum}} % \begin{macrocode} \setlength{\ta@temp}{-1in}% \addtolength{\ta@temp}{5mm}% @@ -2347,7 +2545,7 @@ % Ist der Minimalrand nicht eingehalten, so wird für diesen ein neuer % \textit{DIV}-Wert ermittelt. Dabei muss ebenfalls berücksichtigt % werden, ob Kopf- und Fußbereich zum Text oder zum Rand gehören. -% \changes{v2.5b}{1997/06/29}{bei der Mindestrandbetrachtung +% \changes{v2.5b}{1997/06/29}{bei der Mindestrandbetrachtung % \texttt{headinclude} und \texttt{footinclude} berücksichtigen} % \begin{macrocode} \setlength{\ta@temp}{15mm}% @@ -2372,21 +2570,21 @@ \@typearea % \end{macrocode} % \changes{v2.0e}{1994/10/28}{Seitenaufteilung wird in die log-Datei -% geschrieben} +% geschrieben}^^A % \changes{v2.4i}{1996/11/11}{Seitenaufteilung wird etwas später in -% die log-Datei geschrieben} +% die log-Datei geschrieben}^^A % \changes{v2.4i}{1996/11/11}{am Ende von \cs{typearea} wird noch % \cs{@typeare@end} ausgeführt} % \changes{v2.4j}{1996/12/04}{bei der Seitenaufteilung wird % \cs{textheight} nicht mehr doppelt, dafür zusätzlich % \cs{baselineskip} ausgegeben} % \changes{v2.5}{1997/06/17}{"`arithmetic overflow"' bei landscape -% behoben} -% \changes{v2.95}{2004/01/30}{Warnung im Zweispaltenmodus korrigiert} -% \changes{v3.00}{2008/10/08}{Layout-Infos werden per \cs{ta@layoutinfo} +% behoben}^^A +% \changes{v2.95}{2004/01/30}{Warnung im Zweispaltenmodus korrigiert}^^A +% \changes{v3.00}{2008/10/08}{Layout-Infos werden per \cs{ta@layoutinfo}^^A % in die \texttt{log}-Datei geschrieben} % \changes{v3.01b}{2008/12/09}{Warnungen vor ungünstigen Einstellungen -% geändert} +% geändert}^^A % Zum Schluss soll die Seitenaufteilung noch in die \texttt{log}-Datei % geschrieben werden. % \begin{macrocode} @@ -2441,6 +2639,10 @@ } \fi \ta@layoutinfo{\number\ta@div}{\the\@tempcnta}% + \KOMA@kav@removekey{.typearea.\scr@pkgextension}{DIV}% + \KOMA@kav@xadd{.typearea.\scr@pkgextension}{DIV}{\@lastdiv}% + \KOMA@kav@removekey{.typearea.\scr@pkgextension}{BCOR}% + \KOMA@kav@xadd{.typearea.\scr@pkgextension}{BCOR}{\the\ta@bcor}% \@typearea@end \activateareas \ifdim \dimexpr 1in+\topmargin @@ -2458,10 +2660,10 @@ \fi } % \end{macrocode} -% \end{macro} +% \end{macro} % % \begin{macro}{\ta@layoutinfo} -% \changes{v3.00}{2008/10/08}{neu (intern)} +% \changes{v3.00}{2008/10/08}{neu (intern)}^^A % Schreibt die Layout-Information in die \texttt{log}-Datei. Dabei ist das % erste Argument die Ausgabe für den DIV-Wert und das zweite Argument die % DIV-Abweichung. Letztere wird nur ausgegeben, wenn das Argument nicht leer @@ -2505,15 +2707,15 @@ % \end{macrocode} % \end{macro} % -% \begin{macro}{\recalctypearea} -% \changes{v2.95}{2002/12/04}{Neu} +% \begin{macro}{\recalctypearea} +% \changes{v2.95}{2002/12/04}{Neu}^^A % Dieses Anweisung dient der Neuberechnung des Satzspiegels mit den % zuletzt eingestellten Werten. Dieser Befehl existiert erst, nachdem % das Paket geladen wurde. % \begin{macrocode} \AtEndOfPackage{\newcommand*{\recalctypearea}{\typearea[current]{last}}} % \end{macrocode} -% \end{macro} +% \end{macro} % % \begin{macro}{\areaset} % \changes{v2.1b}{1994/12/31}{\cs{headheight} von \cs{@ptsize} @@ -2541,12 +2743,16 @@ % \end{macrocode} % Erst dann folgt die eigentlich Berechnung: % \changes{v2.96}{2006/09/12}{\cs{topskip} wird gesetzt} -% \changes{v3.00}{2008/10/08}{Layout-Infos werden per \cs{ta@layoutinfo} +% \changes{v3.00}{2008/10/08}{Layout-Infos werden per \cs{ta@layoutinfo}^^A % in die \texttt{log}-Datei geschrieben} % \begin{macrocode} \setlength{\textwidth}{#2}% \setlength{\textheight}{#3}% \def\@lastdiv{areaset}% + \KOMA@kav@removekey{.typearea.\scr@pkgextension}{DIV}% + \KOMA@kav@add{.typearea.\scr@pkgextension}{DIV}{areaset}% + \KOMA@kav@removekey{.typearea.\scr@pkgextension}{BCOR}% + \KOMA@kav@add{.typearea.\scr@pkgextension}{BCOR}{\the\ta@bcor}% \ta@hblk=\paperwidth \advance\ta@hblk by-\ta@bcor \advance\ta@hblk by-\textwidth @@ -2577,7 +2783,7 @@ % \KOMAScript~3.12 dem inneren Rand zugeschlagen. Bei Kompatibilität zu % älteren Versionen wird hingegen immer der linke Rand verwendet. % \begin{macrocode} - \ifnum \scr@compatibility<\@nameuse{scr@v@3.12}\relax + \expandafter\ifnum\scr@ta@v@is@lt{3.12}\relax \evensidemargin=\oddsidemargin \else \advance\evensidemargin by1.5\ta@hblk @@ -2617,7 +2823,7 @@ \fi \headsep=1.5\baselineskip % \end{macrocode} -% \changes{v3.12}{2013/03/26}{changes for height of foot} +% \changes{v3.12}{2013/03/26}{changes for height of foot}^^A % \begin{macrocode} \@ifundefined{footheight}{\newlength\footheight}{} \if@areasetadvanced @@ -2676,7 +2882,9 @@ \marginparpush=0.45\baselineskip \ta@layoutinfo{areaset}{}% % \end{macrocode} -% \changes{v3.11}{2012/04/17}{usage of \cs{@areaset@end}}% +% \changes{v3.11}{2012/04/17}{using \cs{@areaset@end}}^^A +% \changes{v3.16a}{2015/02/11}{using \cs{footheight} for calculation of +% page usage}^^A % Since version~3.11 we also support \cs{AfterSettingArea} analogous to % \cs{AfterCalculatingTypearea}: % \begin{macrocode} @@ -2685,7 +2893,7 @@ \ifdim \dimexpr 1in+\topmargin +\headheight+\headsep +\textheight - +\footskip+\dp\strutbox\relax + +\footskip+\footheight-\ht\strutbox\relax >\paperheight \PackageWarningNoLine{typearea}{% page content and margins higher than paper.\MessageBreak @@ -2696,7 +2904,7 @@ \fi } % \end{macrocode} -% \end{macro} +% \end{macro} % % % \subsection{Berechnung des Standardsatzspiegels} |