summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-09-30 21:16:51 +0000
committerKarl Berry <karl@freefriends.org>2015-09-30 21:16:51 +0000
commit21923df0aa733309adbfcc3169c7ffc0e0ab8b1c (patch)
treef81789ab91c6edd088e331eac5983464e7f21c6b /Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx
parent197071e9b5aaa66a56c464229f4a9fc81c0c8b1f (diff)
koma-script (30sep15)
git-svn-id: svn://tug.org/texlive/trunk@38504 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.dtx292
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