diff options
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 | 292 |
1 files changed, 249 insertions, 43 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 5211cf04d65..ca18472affb 100644 --- a/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx +++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx @@ -1,4 +1,4 @@ -% \CheckSum{3697} +% \CheckSum{3854} % \iffalse meta-comment % ====================================================================== % scrkernel-sections.dtx @@ -55,7 +55,7 @@ % Right brace \} Tilde \~} % % \iffalse -%%% From File: $Id: scrkernel-sections.dtx 2131 2015-06-10 18:17:51Z kohm $ +%%% From File: $Id: scrkernel-sections.dtx 2195 2015-09-09 06:01:54Z kohm $ % The runs of run-time file generation: %<preidentify>%%% (run: preidentify) % - everything that is needed before selfidentification of resulting files @@ -78,9 +78,9 @@ \ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi \begingroup \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} - \filedate$Date: 2015-06-10 20:17:51 +0200 (Wed, 10 Jun 2015) $ + \filedate$Date: 2015-09-09 08:01:54 +0200 (Wed, 09 Sep 2015) $ \def\filerevision$#1: #2 ${\gdef\filerevision{#2}} - \filerevision$Revision: 2131 $ + \filerevision$Revision: 2195 $ \edef\reserved@a{% \noexpand\endgroup \noexpand\ProvidesFile{scrkernel-sections.dtx}% @@ -593,6 +593,7 @@ \fi \@ifstar {% \csname scr@preto@ssect@hook\endcsname + \def\scr@s@ct@@nn@m@{#1}% \@ssect{\glueexpr #3\relax}{\glueexpr #4\relax}{\glueexpr #5\relax}{#6}% }{% \csname scr@preto@sect@hook\endcsname @@ -731,6 +732,8 @@ % \changes{v3.18}{2015/05/22}{Verwendung von \cs{numexpr} für Argument 2}^^A % \changes{v3.18}{2015/05/22}{Verwendung von \cs{gluexpr} für Argument % 3--5}^^A +% \changes{v3.19}{2015/07/17}{Verwendung von \cs{sectionlinesformat} und +% \cs{sectioncatchphraseformat}}^^A % Damit auch alle mit \cs{@startsection} definierten Gliederungsebenen % bei der Entscheidung berücksichtigt werden, muss ein internes Makro % des \LaTeX-Kerns erweitert werden. Für die Ebenen \cs{part} und @@ -773,7 +776,7 @@ \ifx\@sect\@tempa\else \ClassWarning{\KOMAClassName}{% Unexpected definition of \string\@sect!\MessageBreak - Please send an information about this to\MessageBreak + Please send information about this to\MessageBreak the KOMA-Script maintainer!\MessageBreak Maybe LaTeX will be broken by the redefinition\MessageBreak of \string\@sect\space}% @@ -809,9 +812,8 @@ \@tempskipa \glueexpr #5\relax\relax \ifdim \@tempskipa>\z@ \begingroup - #6{% - \@hangfrom{\hskip \glueexpr #3\relax\@svsec}% - \interlinepenalty \@M #8\@@par}% + #6{\interlinepenalty \@M + \sectionlinesformat{#1}{\glueexpr #3\relax}\@svsec{#8}\@@par}% \endgroup %<trace> \ClassInfo{\KOMAClassName}{head=`\scr@ds@head'}% \expandafter\csname #1mark\expandafter\endcsname\expandafter{\scr@ds@head}% @@ -832,8 +834,7 @@ \fi \else \def\@svsechd{% - #6{\hskip \glueexpr #3\relax - \@svsec #8}% + #6{\sectioncatchphraseformat{#1}{\glueexpr #3\relax}\@svsec{#8}}% %<trace> \ClassInfo{\KOMAClassName}{head=`\scr@ds@head'}% \expandafter\csname #1mark\expandafter\endcsname \expandafter{\scr@ds@head}% @@ -880,15 +881,122 @@ \ifx\relax#2\relax\@scr@tempswafalse\else\@scr@tempswatrue\fi } \newif\if@scr@tempswa -%</body> % \end{macrocode} % \end{macro}^^A \scr@istest % \end{macro}^^A \if@scr@tempswa % \end{macro}^^A \scr@ds@head % \end{macro}^^A \scr@ds@tocentry +% \begin{macro}{\sectionlinesformat} +% \changes{v3.19}{2015/07/17}{neue Anweisung}^^A +% Diese Anweisung definiert das Format der eigentlichen Überschriften im Stil +% \texttt{section}, wenn mit Überschriftenzeilen gearbeitet +% wird. Fonteinstellungen sind zu diesem Zeitpunkt bereits erfolgt. Die +% Argumente sind: +% \begin{description} +% \item[\meta{Ebene} --] der Name der Gliederungebene +% \item[\meta{Einzug} --] ein eventuell zu verwendender horizontaler +% Einzug. +% \item[\meta{Gliederungsnummer} --] die bereits fertig formatierte +% Gliederungsnummer oder leer, falls keine Gliederungsnummer auszugeben ist. +% \item[\meta{Text} --] der Text der Überschrift. +% \end{description} +% Der Anwender ist selbst verantwortlich, dass innerhalb der Überschrift kein +% Seitenumbruch erfolgen kann. Nach der Überschrift wird jedoch zwangsweise +% ein \cs{@@par} ausgeführt, so dass sichergestellt ist, dass mit einem +% internen Absatz abgeschlossen wird. +% \begin{macrocode} +\newcommand{\sectionlinesformat}[4]{% + \@hangfrom{\hskip #2#3}{#4}% +} +% \end{macrocode} +% \end{macro}^^A \sectionlinesformat +% \begin{macro}{\sectioncatchphraseformat} +% \changes{v3.19}{2015/07/17}{neue Anweisung}^^A +% Diese Anweisung definiert das Format der eigentlichen Überschriften im +% Stil \texttt{section}, wenn mit Spitzmarken gearbeitet +% wird. Fonteinstellungen sind zu diesem Zeitpunkt bereits erfolgt. Die +% Argumente sind: +% \begin{description} +% \item[\meta{Ebene} --] der Name der Gliederungebene +% \item[\meta{Einzug} --] ein eventuell zu verwendender horizontaler +% Einzug. +% \item[\meta{Gliederungsnummer} --] die bereits fertig formatierte +% Gliederungsnummer oder leer, falls keine Gliederungsnummer auszugeben +% ist. +% \item[\meta{Text} --] der Text der Überschrift. +% \end{description} +% Der Anwender ist selbst verantwortlich, dass innerhalb der Überschrift kein +% Seitenumbruch erfolgen kann. +% \begin{macrocode} +\newcommand{\sectioncatchphraseformat}[4]{% + \hskip #2#3#4% +} +% \end{macrocode} +% \end{macro}^^A \sectioncatchphraseformat % \end{macro}^^A \@sect % \end{macro}^^A \scr@sect % +% \begin{macro}{\@ssect} +% \changes{v3.19}{2015/07/17}{Vollständige Neudefinition zur Realisierung +% der Erweiterung für die Formatieurng der Überschrift}^^A +% Das wird für Überschriften ohne Nummer verwendet. Im Prinzip machen wir hier +% dasselbe wie zuvor. +% \begin{macrocode} +\def\@tempa#1#2#3#4#5{% + \@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup + #4{% + \@hangfrom{\hskip #1}% + \interlinepenalty \@M #5\@@par}% + \endgroup + \else + \def\@svsechd{#4{\hskip #1\relax #5}}% + \fi + \@xsect{#3}} +\ifx\@ssect\@tempa\else + \ClassWarning{\KOMAClassName}{% + Unexpected definition of \string\@ssect!\MessageBreak + Please send information about this to\MessageBreak + the KOMA-Script maintainer!\MessageBreak + Maybe LaTeX will be broken by the redefinition\MessageBreak + of \string\@ssect\space}% +\fi +%<trace>\ClassInfo{\KOMAClassName}{redefining LaTeX kernel macro +%<trace> \string\@ssect} +\def\@ssect#1#2#3#4#5{% + \scr@ifundefinedorrelax{scr@s@ct@@nn@m@}{% + \ClassWarning{\KOMAClassName}{incompatible usage of + \string\@ssect\space detected.\MessageBreak + You've used the KOMA-Script implementation of + \string\@ssect\MessageBreak + from within a non compatible caller, that does not\MessageBreak + \string\scr@s@ct@@nn@m@\space locally.\MessageBreak + This could result in several error messages}% + \def\scr@s@ct@@nn@m@{\string\scr@s@ct@@nn@m@}% + }{}% + \@tempskipa #3\relax + \ifdim \@tempskipa>\z@ + \begingroup + #4{\interlinepenalty \@M + \expandafter\sectionlinesformat\expandafter{\scr@s@ct@@nn@m@}% + {\glueexpr #1\relax}\@empty{#5}\@@par}% + \endgroup + \else + \edef\@svsechd{% + \unexpanded{#4}{% + \noexpand\sectioncatchphraseformat{\scr@s@ct@@nn@m@}% + \unexpanded{{\glueexpr #1\relax}\@empty{#5}}% + }% + }% + \fi + \let\scr@s@ct@@nn@m@\relax + \@xsect{\glueexpr #3\relax}% +} +%</body> +% \end{macrocode} +% \end{macro}^^A \@ssect +% % \begin{macro}{\IfUsePrefixLine} % \changes{v3.18}{2015/06/09}{außerhalb von Gliederungsbefehlsstilen % definiert}^^A @@ -1489,6 +1597,15 @@ }% }\reserved@a }% +% \end{macrocode} +% \changes{v3.19}{2015/09/09}{neue Eigenschaft \texttt{counterwithout}} +% \begin{description}\item[\texttt{counterwithout}] Der Zähler dieser Ebene +% soll nicht länger abhängen vom angegebenen Zähler. +% \end{description} +% \begin{macrocode} + \FamilyStringKey[.dsc]{KOMAarg}{counterwithout}{\scr@local@counterwithout}% + \let\scr@local@counterwithout\relax +% \end{macrocode} % \begin{description}\item[\texttt{counterwithin}] Der Zähler dieser Ebene % soll abhängen vom angegebenen Zähler. % \end{description} @@ -1586,6 +1703,13 @@ % Ausgabe anpassen: % \begin{macrocode} \@ifundefined{c@#2}{\newcounter{#2}}{}% + \ifx\scr@local@counterwithout\relax + \else\ifx\scr@local@counterwithout\@empty + \else + \@removefromreset{#2}{\scr@local@counterwithout}% + \fi + \@namedef{the#2}{\arabic{#2}}% + \fi \ifx\scr@local@counterwithin\relax \else\ifx\scr@local@counterwithin\@empty \@namedef{the#2}{\arabic{#2}}% @@ -2416,6 +2540,8 @@ % \changes{v2.8d}{2001/07/05}{\cs{partpagestyle} statt \texttt{plain}}^^A % \changes{v2.8p}{2001/09/27}{Präambel über der Überschrift hinzugefügt}^^A % \changes{v3.13a}{2014/09/11}{Verwendung von \cs{SecDef}}^^A +% \changes{v3.19}{2015/08/25}{Seitenstil nur ändern wenn definiert und nicht +% leer}^^A % Die Anweisung definiert den Gliederungsüberschriften-Stil % \texttt{part}. Dazu bekommt sie als einziges explizites Argument den % \meta{Namen} der Gliederungsüberschrift. Weitere Argumente wie ein @@ -2429,7 +2555,11 @@ %<article> \par %<*book|report> \if@openright\cleardoublepage\else\clearpage\fi - \thispagestyle{\@nameuse{#1pagestyle}}% + \scr@ifundefinedorrelax{#1pagestyle}{}{% + \ifstr{#1pagestyle}{}{}{% + \thispagestyle{\@nameuse{#1pagestyle}}% + }% + }% \if@twocolumn \onecolumn \@tempswatrue @@ -3219,11 +3349,11 @@ \newcommand*{\scr@chapter@afterskip}{\z@} \let\scr@chapter@afterskip\z@ \newcommand*{\scr@chapter@innerskip}{\z@} -\let\scr@chapter@sectionindent\z@ +\let\scr@chapter@innerskip\z@ \newcommand*{\scr@chapter@style}{chapter} % \end{macrocode} % \end{macro}^^A \scr@chapter@style -% \end{macro}^^A \scr@chapter@sectionindent +% \end{macro}^^A \scr@chapter@innerskip % \end{macro}^^A \scr@chapter@beforeskip % \end{macro}^^A \scr@chapter@afterskip % \begin{macrocode} @@ -3239,6 +3369,8 @@ % % \begin{macro}{\scr@startchapter} % \changes{v3.18}{2015/05/22}{neue Anweisung (für Paketautoren)} +% \changes{v3.19}{2015/08/25}{Seitenstil nur ändern wenn definiert und nicht +% leer}^^A % Diese Anweisung legt fest, wie der konkrete Aufruf für Überschriften des % Stils \texttt{chapter} lautet. Einziges Argument ist dabei der Name der % Gliederungsebene, beispielsweise \texttt{chapter}. Alle anderen benötigten @@ -3251,7 +3383,11 @@ %<*body> \newcommand*{\scr@startchapter}[1]{% \if@openright\cleardoublepage\else\clearpage\fi - \thispagestyle{\@nameuse{#1pagestyle}}% + \scr@ifundefinedorrelax{#1pagestyle}{}{% + \ifstr{#1pagestyle}{}{}{% + \thispagestyle{\@nameuse{#1pagestyle}}% + }% + }% \global\@topnum\z@ \@afterindentfalse \expandafter\SecDef\csname @#1\expandafter\endcsname\csname @s#1\endcsname @@ -3529,40 +3665,58 @@ % \begin{macrocode} {% \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}% - \normalfont\sectfont\nobreak\nobreak - \usefontofkomafont{#1}% -%<book> \if@mainmatter - \def\IfUseNumber{\ifnumbered{#1}}% -%<book> \else\let\IfUseNumber\@secondoftwo\fi +% \end{macrocode} +% \changes{v3.19}{2015/08/02}{Verwendung von \cs{chapterlinesformat} und +% \cs{chapterlineswithprefixformat}}^^A +% \changes{v3.19}{2015/08/02}{Verwendung von Element \texttt{disposition} an +% Stelle von Befehl \cs{sectfont}}^^A +% Ab Version~3.19 wurde der Code weitgehend umgebaut, um die Befehle +% \cs{chapterlinesformat} für die hängende Version und +% \cs{chapterlinesandprefixformat} für die Version mit Präfixzeile zu +% verwenden. Dadurch entfällt dann auch die Verwendung von +% \cs{usefontofkomafont}. Ich bin mir bewusst, dass dadurch diverse Hacks +% bezüglich der Kapitelüberschriften nicht mehr funktionieren. Dafür kann man +% diese Hacks nun durch saubere Lösungen ersetzen. +% \begin{macrocode} + \def\IfUseNumber{\ifnumbered{#1}}% +%<book> \if@mainmatter\else\let\IfUseNumber\@secondoftwo\fi + \def\IfUseNumber{\ifnumbered{#1}}% \if@chapterprefix - \raggedchapter \let\IfUsePrefixLine\@firstoftwo - \let\@tempa\@firstofone \else \let\IfUsePrefixLine\@secondoftwo - \let\@tempa\@hangfrom \fi - \@tempa{% - \IfUseNumber{% - \usekomafont{#1}{% + \normalfont\usekomafont{disposition}{% + \usekomafont{#1}{% + \settoheight{\@tempskipa}{% + {\usekomafont{#1prefix}{% + \vrule \@width\z@ \@height\csname scr@#1@innerskip\endcsname}}% + }% + \raggedchapter + \IfUseNumber{% \IfUsePrefixLine{% - {\usekomafont{#1prefix}{% - \csname #1format\endcsname - \setlength{\@tempskipa}{% - \csname scr@#1@innerskip\endcsname - }% - \chapterheadmidvskip - }}% + \chapterlineswithprefixformat{#1}% + {{\usekomafont{#1prefix}{\csname #1format\endcsname% + \setlength{\@tempskipa}{\csname scr@#1@innerskip\endcsname}% + \chapterheadmidvskip}}}% + {\interlinepenalty \@M#2\@@par}% }{% - \csname #1format\endcsname + \chapterlinesformat{#1}% + {\csname #1format\endcsname}% + {\interlinepenalty \@M#2\@@par}% + }% + }{% + \IfUsePrefixLine{% + \chapterlineswithprefixformat{#1}% + {}% + {\interlinepenalty \@M#2\@@par}% + }{% + \chapterlinesformat{#1}% + {}% + {\interlinepenalty \@M#2\@@par}% }% }% - }{}% - }% - {% - \IfUsePrefixLine{}{\raggedchapter}% - \interlinepenalty \@M - \usekomafont{#1}{#2}\par + }% }% }% \nobreak\par\nobreak @@ -3586,6 +3740,8 @@ % angepasst}^^A % \changes{v3.15}{2014/12/09}{\cs{raggedchapter} ersetzt % \cs{raggedsection}}^^A +% \changes{v3.19}{2015/08/02}{an die Änderungen bei \cs{scr@@makechapterhead} +% angepasst}^^A % \begin{macrocode} \newcommand*{\scr@@makeschapterhead}[2]{% \@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax @@ -3593,17 +3749,67 @@ \chapterheadstartvskip {% \setlength{\parindent}{\z@}\setlength{\parfillskip}{\fill}% - \normalfont\sectfont\nobreak\nobreak\usekomafont{#1}{}% - \raggedchapter \interlinepenalty \@M \usekomafont{#1}{#2}\par + \let\IfUseNumber\secondoftwo + \if@chapterprefix + \let\IfUsePrefixLine\@firstoftwo + \else + \let\IfUsePrefixLine\@secondoftwo + \fi + \normalfont\usekomafont{disposition}{% + \usekomafont{#1}{% + \raggedchapter + \IfUsePrefixLine{% + \chapterlineswithprefixformat{#1}% + {}% + {\interlinepenalty \@M#2\@@par}% + }{% + \chapterlinesformat{#1}% + {}% + {\interlinepenalty \@M#2\@@par}% + }% + }% + }% }% \nobreak\par\nobreak - \@tempskipa=\glueexpr \csname scr@#1@afterskip\endcsname\relax + \@tempskipa=\glueexpr \csname scr@#1@afterskip\endcsname\relax\relax \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi \chapterheadendvskip } % \end{macrocode} % \end{macro}^^A \scr@@makeschapterhead % +% \begin{macro}{\chapterlinesformat} +% \changes{v3.19}{2015/08/02}{neue Anweisung} +% \begin{macro}{\chapterlineswithprefixformat} +% \changes{v3.19}{2015/08/02}{neue Anweisung} +% Diese Anweisung definiert das Format der eigentlichen Überschriften im Stil +% \texttt{section}, wenn mit Überschriftenzeilen gearbeitet +% wird. Fonteinstellungen sind zu diesem Zeitpunkt bereits erfolgt. Die +% Argumente sind: +% \begin{description} +% \item[\meta{Befehlsname} --] der Name der Gliederungsebene, normalerweise +% \texttt{chapter}. +% \item[\meta{Gliederungsnummer} --] die bereits fertig formatierte +% Gliederungsnummer (bei \cs{chapterlineswithprefixformat} einschließlich +% des nachfolgenden vertikalen Abstands) oder leer, falls keine +% Gliederungsnummer auszugeben ist. +% \item[\meta{Text} --] der Text der Überschrift. +% \end{description} +% Der Anwender ist selbst verantwortlich, dass innerhalb der Überschrift kein +% Seitenumbruch erfolgen kann. Nach der Überschrift wird jedoch zwangsweise +% ein \cs{@@par} ausgeführt, so dass sichergestellt ist, dass mit einem +% internen Absatz abgeschlossen wird. +% \begin{macrocode} +\newcommand{\chapterlinesformat}[3]{% + \@hangfrom{#2}{#3}% +} +\newcommand{\chapterlineswithprefixformat}[3]{% + #2#3% +} +% \end{macrocode} +% \end{macro}^^A \chapterlineswithprefixformat +% \end{macro}^^A \chapterlinesformat +% % \begin{macro}{\use@chapter@o@preamble} % \changes{v3.15}{2014/12/08}{Anpassung an geänderte Abstandsbehandlung}^^A % \changes{v3.15a}{2015/02/02}{Korrektur, zur Verhinderung falscher |