diff options
author | Karl Berry <karl@freefriends.org> | 2014-12-06 23:18:10 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-12-06 23:18:10 +0000 |
commit | 4832d732052d6e2b43b5e3ff45aa31bfbc0cbdc2 (patch) | |
tree | 968a3b4cdf4631c0272fc725330ea28a554c8471 /Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx | |
parent | 59d9a998c6236de39603cb2ea077c5371e06b842 (diff) |
koma-script (6dec14)
git-svn-id: svn://tug.org/texlive/trunk@35754 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx | 266 |
1 files changed, 227 insertions, 39 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx index ac28717e035..bd91213ba06 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx @@ -1,8 +1,8 @@ -% \CheckSum{2255} +% \CheckSum{2443} % \iffalse meta-comment % ====================================================================== % scrkernel-sections.dtx -% Copyright (c) Markus Kohm, 2002-2013 +% Copyright (c) Markus Kohm, 2002-2014 % % 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-sections.dtx -% Copyright (c) Markus Kohm, 2002-2013 +% Copyright (c) Markus Kohm, 2002-2014 % % Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz, % Version 1.3c, verteilt und/oder veraendert werden. @@ -55,11 +55,18 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: $Id: scrkernel-sections.dtx 1552 2013-12-16 16:51:32Z mjk $ +%%% From File: $Id: scrkernel-sections.dtx 1788 2014-09-11 13:41:04Z kohm $ %<*driver> % \fi -\ProvidesFile{scrkernel-sections.dtx}[2013/12/16 v3.12 KOMA-Script - (disposition)] +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\begingroup + \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} + \filedate$Date: 2014-09-11 15:41:04 +0200 (Thu, 11 Sep 2014) $ + \def\filerevision$#1: #2 ${\gdef\filerevision{#2}} + \filerevision$Revision: 1788 $ +\endgroup +\ProvidesFile{scrkernel-sections.dtx}[\filedate\space\filerevision\space + KOMA-Script (disposition)] % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} @@ -169,7 +176,7 @@ % \end{option} % \iffalse %</book|report> -%% \fi +% \fi % % % \begin{option}{numbers} @@ -929,6 +936,158 @@ % \end{macrocode} % \end{macro} % \end{macro} +% \begin{macro}{\@startsection} +% \changes{v3.13a}{2014/09/11}{Vollständige Neudefinition zur Optimierung +% der Erweiterung für das optionale Argument}%^^A +% \begin{macro}{\scr@startsection} +% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}%^^A +% \begin{macro}{\scr@saved@startsection} +% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}%^^A +% \begin{macrocode} +\newcommand*{\scr@saved@startsection}[6]{% + \if@noskipsec \leavevmode \fi + \par + \@tempskipa #4\relax + \@afterindenttrue + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa \@afterindentfalse + \fi + \if@nobreak + \everypar{}% + \else + \addpenalty\@secpenalty\addvspace\@tempskipa + \fi + \@ifstar + {\@ssect{#3}{#4}{#5}{#6}}% + {\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}% +} +\ifx\@startsection\scr@saved@startsection + \newcommand*{\scr@startsection}[6]{% + \if@noskipsec \leavevmode \fi + \par + \@tempskipa #4\relax + \@afterindenttrue + \ifdim \@tempskipa <\z@ + \@tempskipa -\@tempskipa \@afterindentfalse + \fi + \csname scr@startsection@hook\endcsname + \if@nobreak + \everypar{}% + \else + \addpenalty\@secpenalty\addvspace\@tempskipa + \fi + \@ifstar + {\csname scr@preto@ssect@hook\endcsname\@ssect{#3}{#4}{#5}{#6}}% + {\csname scr@preto@sect@hook\endcsname + \scr@section@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}% + } +\else + \ClassWarningNoLine{\KOMAClassName}{`\string\@startsection' has been + changed.\MessageBreak + \KOMAClassName\space needs it's own Definition of + `\string\@startsection'\MessageBreak + to provide extended features for the optional argument\MessageBreak + of `\string\section` etc.\MessageBreak + Generally it defines `\string\@startsection` completely new\MessageBreak + to achieve this. Because of the unexpected definition\MessageBreak + an alternative approach will be used.\MessageBreak + If this fails and if there isn't a new release of\MessageBreak + KOMA-Scriptt that fixes the problem, please\MessageBreak + send a report to the KOMA-Script author.\MessageBreak + Note, that this alternative approach does not\MessageBreak + execute `\string\scr@startsection@hook', \MessageBreak + `\string\scr@preto@ssect@hook', or `\string\scr@preto@sect@hook'% + }% + \let\scr@saved@startsection\@startsection + \newcommand*{\scr@startsection}[6]{% + \@ifstar + {\scr@saved@startsection{#1}{#2}{#3}{#4}{#5}{#6}*}% + {\scr@section@dblarg{\scr@saved@startsection{#1}{#2}{#3}{#4}{#5}{#6}}}% + } +\fi +% \end{macrocode} +% \begin{macro}{\At@startsection} +% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren} +% Mit Hilfe dieser Anweisung kann Code in die Ausführung von \KOMAScript's +% eigenem \cs{scr@startsection} an der Stelle eingefügt werden, an der +% \cs{if@afterindent} und \cs{@tempskipa} bereits korrekt eingestellt sind, +% aber noch bevor \emph{pentaly} und Abstand gesetzt wurden bzw. \cs{everypar} +% gelöscht wurde. +% \begin{macrocode} +\newcommand*{\At@startsection}[1]{% + \@ifundefined{scr@startsection@hook}{\let\scr@startsection@hook\@empty}{}% + \l@addto@macro{\scr@startsection@hook}{#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Before@ssect} +% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren} +% Mit Hilfe dieser Anweisung kann Code in die Ausführung von \KOMAScript's +% eigenem \cs{scr@startsection} unmittelbar vor dem Aufruf von \cs{@ssect} +% eingefügt werden. +% \begin{macrocode} +\newcommand*{\Before@ssect}[1]{% + \@ifundefined{scr@preto@ssect@hook}{\let\scr@preto@ssect@hook\@empty}{}% + \l@addto@macro{\scr@preto@ssect@hook}{#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\Before@sect} +% \changes{v3.14}{2014/09/11}{Neue Anweisung für Paketautoren} +% Mit Hilfe dieser Anweisung kann Code in die Ausführung von \KOMAScript's +% eigenem \cs{scr@startsection} unmittelbar vor dem Aufruf von \cs{@sect} +% eingefügt werden. +% \begin{macrocode} +\newcommand*{\Before@sect}[1]{% + \@ifundefined{scr@preto@sect@hook}{\let\scr@preto@sect@hook\@empty}{}% + \l@addto@macro{\scr@preto@sect@hook}{#1}% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\scr@section@dblarg} +% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}%^^A +% \begin{macro}{\scr@section@xdblarg} +% \changes{v3.13a}{2014/09/11}{Neue interne Anweisung}%^^A +% \begin{macrocode} +\newcommand{\scr@section@dblarg}[1]{% + \kernel@ifnextchar[%] + {#1}% + {\scr@section@xdblarg{#1}}% +} +\newcommand{\scr@section@xdblarg}[2]{% + \begingroup + \edef\reserved@a{% + \unexpanded{\endgroup\let\scr@osectarg\z@#1[{#2}]{#2}\def\scr@osectarg}% + {\scr@osectarg}}% + \reserved@a +} +% \end{macrocode} +% \end{macro}%^^A \scr@section@xdblarg +% \end{macro}%^^A \scr@section@dblarg +% \end{macro}%^^A \scr@saved@startsection +% \end{macro}%^^A \scr@startsection +% \begin{macrocode} +\renewcommand*{\@startsection}{% + \ifnum \scr@osectarg=\z@ + \expandafter\scr@saved@startsection + \else + \expandafter\scr@startsection + \fi +} +% \end{macrocode} +% \end{macro}%^^A \@startsection +% \begin{macro}{\SecDef} +% \changes{v3.13a}{2014/09/11}{neue Anweisung} +% \begin{macro}{\secdef} +% \changes{v3.13a}{2014/09/11}{Vollständige Neudefinition zur Optimierung +% der Erweiterung für das optionale Argument}%^^A +% \begin{macrocode} +\newcommand*{\SecDef}[2]{\@ifstar{#2}{\scr@section@dblarg{#1}}} +\CheckCommand*{\secdef}[2]{\@ifstar{#2}{\@dblarg{#1}}} +\let\secdef\SecDef +% \end{macrocode} +% \end{macro}%^^A \secdef +% \end{macro}%^^A \SecDef % \begin{macro}{\scr@sect} % \changes{v3.10}{2011/08/30}{entfällt} % \begin{macro}{\@sect} @@ -1454,6 +1613,7 @@ % hinzugefügt} % \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} % behebt einen Bug im color Paket} +% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}} % \begin{macro}{\@part} % \changes{v2.4b}{1996/03/29}{\cs{size@partnumer} durch % \cs{size@partnumber} ersetzt} @@ -1548,7 +1708,7 @@ \newcommand\part{\par \partheadstartvskip% \@afterindentfalse - \secdef\@part\@spart + \SecDef\@part\@spart } %</article> %<*report|book> @@ -1563,7 +1723,7 @@ \partheadstartvskip \vbox to\z@{\vss\use@preamble{part@o}\strut\par}% \vskip-\baselineskip\nobreak% - \secdef\@part\@spart + \SecDef\@part\@spart } %</report|book> \newcommand*{\@part}{} @@ -1672,6 +1832,7 @@ % \texttt{plain}} % \changes{v2.95a}{2006/07/10}{support of preamble added} % \changes{v3.11b}{2012/07/29}{missing negativ \cs{vskip} added} +% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}} % \begin{macro}{\@addpart} % \changes{v2.8c}{2001/06/29}{neu (intern)} % \changes{v2.8l}{2001/08/17}{erst eintragen, dann ausgeben} @@ -1704,7 +1865,7 @@ \vbox to\z@{\vss\use@preamble{part@o}\strut\par}% \vskip-\baselineskip\nobreak% %</report|book> - \secdef\@addpart\@saddpart + \SecDef\@addpart\@saddpart } \newcommand*{\@addpart}{} \def\@addpart[#1]#2{% @@ -1774,6 +1935,7 @@ % \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}}%^^A % \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale % Argument der Gliederungsbefehle}%^^A +% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}} % \begin{macro}{\@makechapterhead} % \changes{v2.7b}{2001/01/05}{Kapitel können grundsätzlich mit % einer Präambel versehen werden} @@ -1866,7 +2028,7 @@ \thispagestyle{\chapterpagestyle}% \global\@topnum\z@ \@afterindentfalse - \secdef\@chapter\@schapter + \SecDef\@chapter\@schapter } % \end{macrocode} % \changes{v3.06}{2010/06/02}{einschalten des \texttt{tocbasic}-Features @@ -2069,6 +2231,7 @@ % \changes{v3.08}{2010/11/01}{Verwendung von \cs{addchaptertocentry}} % \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale % Argument der Gliederungsbefehle} +% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}} % \KOMAScript{} bietet in \textsf{scrbook} und \textsf{scrreprt} den % zusätzlichen Gliederungsbefehl \cs{addchap}. Es handelt sich dabei % um einen mit \cs{chapter*} vergleichbaren Befehl, bei dem jedoch der @@ -2121,7 +2284,7 @@ \thispagestyle{\chapterpagestyle}% \global\@topnum\z@ \@afterindentfalse - \secdef\@addchap\@saddchap% + \SecDef\@addchap\@saddchap% }% \newcommand*{\@addchap}{}% \def\@addchap[#1]#2{% @@ -2214,6 +2377,7 @@ % \cs{markright} ersetzt} % \changes{v2.7a}{2001/01/04}{\cs{addsec} für eine bessere % Unterstützung von \textsf{hyperref} geändert} +% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}} % \begin{macro}{\@addsec} % \changes{v3.10}{2011/08/30}{Verwendung von \cs{addsectiontocentry}} % \changes{v3.10}{2011/08/30}{Integration der Erweiterung für das optionale @@ -2227,7 +2391,7 @@ % Kolumnentitel korrigiert wird und ein Eintrag ins Inhaltsverzeichnis % erfolgt (nicht in der Stern-Variante). % \begin{macrocode} -\newcommand*\addsec{\secdef\@addsec\@saddsec} +\newcommand*\addsec{\SecDef\@addsec\@saddsec} \newcommand*{\@addsec}{} \def\@addsec[#1]#2{\section*{#2}% \ifnum \scr@osectarg=\z@ @@ -2307,6 +2471,7 @@ % \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig % von Option \texttt{version})} % \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}} % \begin{macro}{\subsection} % \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor % \cs{size@subsection} aufgerufen} @@ -2315,6 +2480,7 @@ % \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig % von Option \texttt{version})} % \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}} % \begin{macro}{\subsubsection} % \changes{v2.3d}{1995/08/19}{wird bei \texttt{scrartcl} nun % ebenfalls numeriert und ins Inhaltsverzeichnis geschrieben} @@ -2325,6 +2491,7 @@ % \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig % von Option \texttt{version})} % \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}} % \begin{macro}{\paragraph} % \changes{v2.8p}{2001/09/22}{\cs{sectfont} wird nun vor % \cs{size@paragraph} aufgerufen} @@ -2337,6 +2504,7 @@ % \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} % behebt einen Bug im color Paket} % \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% \changes{v3.13a}{2014/09/11}{Verwendung von \cs{scr@startsection}} % Die Standardgliederungsbefehle \cs{section} bis \cs{subparagraph} % sind mit der im Kernel dafür vorgesehenen Schnittstelle % definiert. Im Unterschied zu den Standardklassen erfolgt die @@ -2346,7 +2514,7 @@ % variabilisiert werden. Vielleicht in einer späteren Version. % \begin{macrocode} \newcommand\section{% - \@startsection{section}{\sectionnumdepth}{\z@}% + \scr@startsection{section}{\sectionnumdepth}{\z@}% {-3.5ex \@plus -1ex \@minus -.2ex}% {2.3ex \@plus.2ex}% {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax @@ -2354,7 +2522,7 @@ \raggedsection\normalfont\sectfont\nobreak\size@section}% } \newcommand\subsection{% - \@startsection{subsection}{\subsectionnumdepth}{\z@}% + \scr@startsection{subsection}{\subsectionnumdepth}{\z@}% {-3.25ex\@plus -1ex \@minus -.2ex}% {1.5ex \@plus .2ex}% {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax @@ -2363,7 +2531,7 @@ }% } \newcommand\subsubsection{% - \@startsection{subsubsection}{\subsubsectionnumdepth}{\z@}% + \scr@startsection{subsubsection}{\subsubsectionnumdepth}{\z@}% {-3.25ex\@plus -1ex \@minus -.2ex}% {1.5ex \@plus .2ex}% {\ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax @@ -2372,13 +2540,13 @@ }% } \newcommand\paragraph{% - \@startsection{paragraph}{\paragraphnumdepth}{\z@}% + \scr@startsection{paragraph}{\paragraphnumdepth}{\z@}% {3.25ex \@plus1ex \@minus.2ex}% {-1em}% {\raggedsection\normalfont\sectfont\nobreak\size@paragraph}% } \newcommand\subparagraph{% - \@startsection{subparagraph}{\subparagraphnumdepth}{\parindent}% + \scr@startsection{subparagraph}{\subparagraphnumdepth}{\parindent}% {3.25ex \@plus1ex \@minus .2ex}% {-1em}% {\raggedsection\normalfont\sectfont\nobreak\size@subparagraph}% @@ -2391,12 +2559,15 @@ % \end{macro} % \begin{macro}{\minisec} % \changes{v2.8q}{2002/02/28}{\cs{nobreak} nach \cs{sectfont} -% behebt einen Bug im color Paket} +% behebt einen Bug im color Paket}%^^A % \changes{v2.9o}{2003/01/31}{\cs{nobreak} nach dem Gruppenende -% behebt einen Bug im color Paket} +% behebt einen Bug im color Paket}%^^A % \changes{v2.96a}{2006/11/30}{Standardwert für \cs{parfillskip} (abhängig -% von Option \texttt{version})} -% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} entfernt} +% von Option \texttt{version})}%^^A +% \changes{v2.96a}{2006/12/03}{alle nicht benötigten \cs{nobreak} +% entfernt}%^^A +% \changes{v3.13a}{2014/08/07}{Absicherung der Abstände bei +% aufeinanderfolgenden Überschriften entsprechend \cs{@startsection}}%^^A % \begin{KOMAfont}{minisec} % \changes{v2.96a}{2006/12/03}{\texttt{minisec} ist ein eigenes % Fontelement} @@ -2404,7 +2575,19 @@ % immer ohne Nummer und ohne Eintrag ins Inhaltsverzeichnis erfolgt. % \begin{macrocode} \newkomafont{minisec}{} -\newcommand\minisec[1]{\@afterindentfalse \vskip 1.5ex +\newcommand\minisec[1]{% + \ifnum \scr@compatibility<\@nameuse{scr@v@3.13a}\relax + \@afterindentfalse \vskip 1.5ex + \else + \if@noskipsec \leavevmode \fi + \par + \@afterindentfalse + \if@nobreak + \everypar{}% + \else + \addpenalty\@secpenalty\addvspace{1.5ex}% + \fi + \fi {\parindent \z@ \ifnum \scr@compatibility>\@nameuse{scr@v@2.96}\relax \setlength{\parfillskip}{\z@ plus 1fil}\fi @@ -2606,9 +2789,10 @@ % \begin{macro}{\set@@@preamble} % \changes{v2.8p}{2001/09/25}{neu (intern)} % \begin{macro}{\set@@@@preamble} -% \changes{v2.8p}{2001/09/25}{neu (intern)} -% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt} -% \changes{v3.12}{2012/10/16}{b mit derselben Funktion wie u erlaubt} +% \changes{v2.8p}{2001/09/25}{neu (intern)}%^^A +% \changes{v2.8q}{2001/11/27}{fehlende Klammern ergänzt}%^^A +% \changes{v3.12}{2012/10/16}{b mit derselben Funktion wie u erlaubt}%^^A +% \changes{v3.12a}{2014/02/14}{b korrigiert}%^^A % Da mehrere optionale Argumente nach einem obligatorischen Argument % auszuwerten sind, werden diverse Hilfsmakros benötigt. % \begin{macrocode} @@ -2657,7 +2841,7 @@ \set@preamble@vpos{0}{#2}% \fi% \if \@tempa b% - \set@preamble@vpox{0}{#2}% + \set@preamble@vpos{0}{#2}% \fi \if \@tempa o% \set@preamble@vpos{1}{#2}% @@ -2800,21 +2984,25 @@ % \end{macro} % \end{macro} % -% \begin{macro}{\setpartpreamble} -% \changes{v2.8f}{2001/07/12}{neu} -% \changes{v2.8p}{2001/09/27}{Verwendung von \cs{use@preamble}} -% \begin{macro}{\part@preamble@u} -% \changes{v2.8p}{2001/09/27}{neu (intern)} -% \changes{v2.8p}{2001/09/27}{Ersatz für \cs{part@preamble}} -% \begin{macro}{\part@preamble@o} -% \changes{v2.8p}{2001/09/27}{neu (intern)} +% \begin{macro}{\setpartpreamble} +% \changes{v2.8f}{2001/07/12}{neu}%^^A +% \changes{v2.8p}{2001/09/27}{Verwendung von \cs{use@preamble}}%^^A +% \begin{macro}{\part@u@preamble} +% \changes{v2.8p}{2001/09/27}{neu (intern)}%^^A +% \changes{v2.8p}{2001/09/27}{Ersatz für \cs{part@preamble}}%^^A +% \changes{v3.12a}{2014/02/14}{flaschen (\cs{part@preamble@u}) Namen +% korrigiert}%^^A +% \begin{macro}{\part@o@preamble} +% \changes{v2.8p}{2001/09/27}{neu (intern)}%^^A +% \changes{v3.12a}{2014/02/14}{flaschen Namen (\cs{part@preamble@o}) +% korrigiert}%^^A % Analog zu den Kapitel gibt es Befehle für eine Teil-Präambel. % \begin{macrocode} \newcommand*{\setpartpreamble}{\set@preamble{part}} -\newcommand*{\part@preamble@u}{} -\let\part@preamble@u\relax -\newcommand*{\part@preamble@o}{} -\let\part@preamble@o\relax +\newcommand*{\part@u@preamble}{} +\let\part@u@preamble\relax +\newcommand*{\part@o@preamble}{} +\let\part@o@preamble\relax % \end{macrocode} % \end{macro} % \end{macro} |