summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrkernel-sections.dtx
diff options
context:
space:
mode:
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.dtx165
1 files changed, 116 insertions, 49 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 1f8077a88d1..7e11e57335e 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{3710}
+% \CheckSum{3788}
% \iffalse meta-comment
% ======================================================================
% scrkernel-sections.dtx
@@ -55,7 +55,7 @@
% Right brace \} Tilde \~}
%
% \iffalse
-%%% From File: $Id: scrkernel-sections.dtx 2477 2016-06-12 09:52:43Z kohm $
+%%% From File: $Id: scrkernel-sections.dtx 2565 2016-12-21 17:25:47Z 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: 2016-06-12 11:52:43 +0200 (Sun, 12 Jun 2016) $
+ \filedate$Date: 2016-12-21 18:25:47 +0100 (Wed, 21 Dec 2016) $
\def\filerevision$#1: #2 ${\gdef\filerevision{#2}}
- \filerevision$Revision: 2477 $
+ \filerevision$Revision: 2565 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-sections.dtx}%
@@ -825,16 +825,16 @@
\scr@istest#7=\@nil
\fi
\if@scr@tempswa
- \setkeys{KOMAarg.section}{tocentry={#8},head={#8},#7}%
+ \setkeys{KOMAarg.section}{tocentry={#8},head={#8},reference={#8},#7}%
\else
\ifcase \scr@osectarg\relax
- \setkeys{KOMAarg.section}{tocentry={#7},head={#7}}%
+ \setkeys{KOMAarg.section}{tocentry={#7},head={#7},reference={#7}}%
\or
- \setkeys{KOMAarg.section}{tocentry={#8},head={#7}}%
+ \setkeys{KOMAarg.section}{tocentry={#8},head={#7},reference={#8}}%
\or
- \setkeys{KOMAarg.section}{tocentry={#7},head={#8}}%
+ \setkeys{KOMAarg.section}{tocentry={#7},head={#8},reference={#7}}%
\or
- \setkeys{KOMAarg.section}{tocentry={#7},head={#7}}%
+ \setkeys{KOMAarg.section}{tocentry={#7},head={#7},reference={#7}}%
\fi
\fi
\let\IfUsePrefixLine\@secondoftwo
@@ -857,10 +857,14 @@
#6{\nobreak\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}%
-%<trace> \ClassInfo{\KOMAClassName}{tocentry=`\scr@ds@tocentry'}%
- \ifx\scr@ds@tocentry\@empty\else
+%<*trace>
+ \ClassInfo{\KOMAClassName}{%
+ head=`\detokenize\expandafter{\@currentheadentry}'\MessageBreak
+ tocentry=`\detokenize\expandafter{\@currenttocentry}'\MessageBreak
+ reference=`\detokenize\expandafter{\@currenttocentry}'}%
+%</trace>
+ \expandafter\csname #1mark\expandafter\endcsname\expandafter{\@currentheadentry}%
+ \ifx\@currenttocentry\@empty\else
\scr@ifundefinedorrelax{add#1tocentry}{%
\expandafter\global\expandafter\def
\csname add#1tocentry\endcsname##1##2{%
@@ -868,10 +872,10 @@
}%
}{}%
\ifnum \numexpr #2\relax>\c@secnumdepth
- \csname add#1tocentry\endcsname{}{\scr@ds@tocentry}%
+ \csname add#1tocentry\endcsname{}{\@currenttocentry}%
\else
\csname add#1tocentry\endcsname{\csname the#1\endcsname}{%
- \scr@ds@tocentry}%
+ \@currenttocentry}%
\fi
\fi
\else
@@ -883,11 +887,15 @@
% \begin{macrocode}
\def\@svsechd{%
#6{\nobreak\sectioncatchphraseformat{#1}{\glueexpr #3\relax}\@svsec{#8}}%
-%<trace> \ClassInfo{\KOMAClassName}{head=`\scr@ds@head'}%
- \expandafter\csname #1mark\expandafter\endcsname
- \expandafter{\scr@ds@head}%
-%<trace> \ClassInfo{\KOMAClassName}{tocentry=`\scr@ds@tocentry'}%
- \ifx\scr@ds@tocentry\@empty\else
+%<*trace>
+ \ClassInfo{\KOMAClassName}{%
+ head=`\detokenize\expandafter{\@currentheadentry}'\MessageBreak
+ tocentry=`\detokenize\expandafter{\@currenttocentry}'\MessageBreak
+ reference=`\detokenize\expandafter{\@currenttocentry}'}%
+%</trace>
+ \expandafter\csname #1mark\expandafter\endcsname
+ \expandafter{\@currentheadentry}%
+ \ifx\@currenttocentry\@empty\else
\scr@ifundefinedorrelax{add#1tocentry}{%
\expandafter\global\expandafter\def
\csname add#1tocentry\endcsname####1####2{%
@@ -895,10 +903,10 @@
}%
}{}%
\ifnum \numexpr #2\relax>\c@secnumdepth
- \csname add#1tocentry\endcsname{}{\scr@ds@tocentry}%
+ \csname add#1tocentry\endcsname{}{\@currenttocentry}%
\else
\csname add#1tocentry\endcsname{\csname the#1\endcsname}{%
- \scr@ds@tocentry}%
+ \@currenttocentry}%
\fi
\fi
}%
@@ -909,8 +917,16 @@
% \end{macrocode}
% \begin{macro}{\scr@ds@tocentry}
% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
+% \begin{macro}{\@currenttocentry}
+% \changes{v3.22}{2016/07/12}{\cs{scr@ds@tocentry} (semi-intern)
+% umbenannt}^^A
% \begin{macro}{\scr@ds@head}
% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
+% \begin{macro}{\@currentheadentry}
+% \changes{v3.22}{2016/07/12}{\cs{scr@ds@head} (semi-intern)
+% umbenannt}^^A
+% \begin{macro}{\@currentlabelname}
+% \changes{v3.22}{2016/07/12}{neu (semi-intern)}
% \begin{macro}{\if@scr@tempswa}
% \changes{v3.10}{2011/08/30}{neu (intern)}^^A
% \begin{macro}{\scr@istest}
@@ -920,10 +936,30 @@
% \begin{macrocode}
\DefineFamily{KOMAarg}
\DefineFamilyMember[.section]{KOMAarg}
-\DefineFamilyKey[.section]{KOMAarg}{tocentry}{\def\scr@ds@tocentry{#1}}
-\DefineFamilyKey[.section]{KOMAarg}{head}{\def\scr@ds@head{#1}}
-\newcommand*\scr@ds@tocentry{}
-\newcommand*\scr@ds@head{}
+\providecommand*\@currenttocentry{}
+\providecommand*\@currentheadentry{}
+\providecommand*\@currentlabelname{}
+\FamilyStringKey[.section]{KOMAarg}{tocentry}{\@currenttocentry}
+\FamilyStringKey[.section]{KOMAarg}{head}{\@currentheadentry}
+\DefineFamilyKey[.section]{KOMAarg}{reference}{%
+ \scr@ifundefinedorrelax{NR@gettitle}{%
+ \scr@ifundefinedorrelax{GetTitleString}{%
+ \def\@currentlabelname{#1}%
+ }{%
+ \GetTitleString{#1}%
+ \let\@currentlabelname\GetTitleStringResult
+ }%
+ }{%
+ \NR@gettitle{#1}%
+ }%
+ \scr@ifundefinedorrelax{TR@gettitle}{}{%
+ \expandafter\TR@gettitle\expandafter{\@currentlabelname}%
+ }%
+ \scr@ifundefinedorrelax{ztitlerefsetup}{}{%
+ \ztitlerefsetup{title=\@currentlabelname}%
+ }%
+ \FamilyKeyStateProcessed
+}
\newcommand*{\scr@istest}{}
\def\scr@istest#1=#2\@nil{%
\ifx\relax#2\relax\@scr@tempswafalse\else\@scr@tempswatrue\fi
@@ -932,7 +968,10 @@
% \end{macrocode}
% \end{macro}^^A \scr@istest
% \end{macro}^^A \if@scr@tempswa
+% \end{macro}^^A \@currentlabelname
+% \end{macro}^^A \@currentheadentry
% \end{macro}^^A \scr@ds@head
+% \end{macro}^^A \@currenttocentry
% \end{macro}^^A \scr@ds@tocentry
% \begin{macro}{\sectionlinesformat}
% \changes{v3.19}{2015/07/17}{neue Anweisung}^^A
@@ -2572,6 +2611,7 @@
% \changes{v2.95}{2006/07/04}{\cs{newcommand*} durch \cs{gdef} ersetzt}^^A
% \changes{v2.95}{2006/07/04}{Ausführung von \cs{appendixmore}^^A
% vereinfacht}^^A
+% \changes{v3.20}{2016/12/05}{neue eindeutige Warnung}
% \begin{macro}{\appendixmore}
% \cs{appendixmore} kann als \emph{hook} verwendet werden. Derzeit wird dieser
% allerdings noch recht stiefmütterlich behandelt und lediglich von Option
@@ -2579,7 +2619,26 @@
% \begin{macrocode}
%<*class>
%<*body>
-\newcommand*\appendix{\par%
+\newcommand*\appendix{%
+ \ifstr{\@currenvir}{appendix}{%
+ \ClassWarning{\KOMAClassName}{%
+ You are using
+ `\string\begin{appendix}...\string\end{appendix}'.\MessageBreak
+ You should note, that `\string\appendix' is a mostly
+ globally\MessageBreak
+ working command not an enviroment with only local\MessageBreak
+ effects. Therefore `\string\end{appendix}' will neither\MessageBreak
+ switch back to normal section numbering nor finish\MessageBreak
+ every other effect of `\string\begin{appendix}'.\MessageBreak
+ Nevertheless, some effects may end with\MessageBreak
+ `\string\end{appendix}' and the document may become\MessageBreak
+ inconsistent.\MessageBreak
+ Because of this, you should remove `\string\end{appendix}'\MessageBreak
+ and replace `\string\begin{appendix}' by command\MessageBreak
+ `\string\appendix'%
+ }%
+ }{}%
+ \par%
%<*article>
\setcounter{section}{0}%
\setcounter{subsection}{0}%
@@ -2798,16 +2857,16 @@
\scr@istest#2=\@nil
\fi
\if@scr@tempswa
- \setkeys{KOMAarg.section}{tocentry={#3},head={#3},#2}%
+ \setkeys{KOMAarg.section}{tocentry={#3},head={#3},reference={#3},#2}%
\else
\ifcase \scr@osectarg\relax
- \setkeys{KOMAarg.section}{tocentry={#2},head={#2}}%
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},reference={#2}}%
\or
- \setkeys{KOMAarg.section}{tocentry={#3},head={#2}}%
+ \setkeys{KOMAarg.section}{tocentry={#3},head={#2},reference={#3}}%
\or
- \setkeys{KOMAarg.section}{tocentry={#2},head={#3}}%
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#3},reference={#2}}%
\or
- \setkeys{KOMAarg.section}{tocentry={#2},head={#2}}%
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},reference={#2}}%
\fi
\fi
% \end{macrocode}
@@ -2824,12 +2883,12 @@
\@maybeautodot\thepart%
\expandafter\@maybeautodot\csname the#1\endcsname
\typeout{#1 \csname the#1\endcsname.}%
- \ifx\scr@ds@tocentry\@empty\else
+ \ifx\@currenttocentry\@empty\else
\scr@ifundefinedorrelax{add#1tocentry}{%
\addtocentrydefault{#1}%
}{%
\@nameuse{add#1tocentry}%
- }{\csname the#1\endcsname}{\scr@ds@tocentry}%
+ }{\csname the#1\endcsname}{\@currenttocentry}%
\fi
}{%
% \end{macrocode}
@@ -2846,7 +2905,7 @@
\endgroup
\fi
\typeout{#1 without number}%
- \ifx\scr@ds@tocentry\@empty\else
+ \ifx\@currenttocentry\@empty\else
% \end{macrocode}
% An dieser Stelle muss ggf. der \textsf{hyperref}-Hook für nicht nummerierte
% Inhaltsverzeichniseinträge ausgeführt werden.
@@ -2858,7 +2917,7 @@
\addtocentrydefault{#1}%
}{%
\@nameuse{add#1tocentry}%
- }{}{\scr@ds@tocentry}%
+ }{}{\@currenttocentry}%
\fi
}%
% \end{macrocode}
@@ -2897,7 +2956,7 @@
\expandafter\ifx\csname #1mark\endcsname\@gobble
\@mkboth{}{}%
\else
- \csname #1mark\expandafter\endcsname\expandafter{\scr@ds@head}%
+ \csname #1mark\expandafter\endcsname\expandafter{\@currentheadentry}%
\fi
\par
\endgroup
@@ -3544,16 +3603,16 @@
\scr@istest#2=\@nil
\fi
\if@scr@tempswa
- \setkeys{KOMAarg.section}{tocentry={#3},head={#3},#2}%
+ \setkeys{KOMAarg.section}{tocentry={#3},head={#3},reference={#3},#2}%
\else
\ifcase \scr@osectarg\relax
- \setkeys{KOMAarg.section}{tocentry={#2},head={#2}}%
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},reference={#2}}%
\or
- \setkeys{KOMAarg.section}{tocentry={#3},head={#2}}%
+ \setkeys{KOMAarg.section}{tocentry={#3},head={#2},reference={#3}}%
\or
- \setkeys{KOMAarg.section}{tocentry={#2},head={#3}}%
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#3},reference={#2}}%
\or
- \setkeys{KOMAarg.section}{tocentry={#2},head={#2}}%
+ \setkeys{KOMAarg.section}{tocentry={#2},head={#2},reference={#2}}%
\fi
\fi
% \end{macrocode}
@@ -3575,12 +3634,12 @@
\refstepcounter{#1}%
\expandafter\@maybeautodot\csname the#1\endcsname
\typeout{#1 \csname the#1\endcsname.}%
- \ifx\scr@ds@tocentry\@empty\else
+ \ifx\@currenttocentry\@empty\else
\scr@ifundefinedorrelax{add#1tocentry}{%
\addtocentrydefault{#1}%
}{%
\@nameuse{add#1tocentry}%
- }{\csname the#1\endcsname}{\scr@ds@tocentry}%
+ }{\csname the#1\endcsname}{\@currenttocentry}%
\fi
% \end{macrocode}
% Für alle nicht nummerieten Überschriften dieser Ebene trotzdem die
@@ -3595,7 +3654,7 @@
\endgroup
\fi
\typeout{#1 without number}%
- \ifx\scr@ds@tocentry\@empty\else
+ \ifx\@currenttocentry\@empty\else
% \end{macrocode}
% An dieser Stelle muss ggf. der \textsf{hyperref}-Hook für nicht nummerierte
% Inhaltsverzeichniseinträge ausgeführt werden.
@@ -3605,13 +3664,13 @@
\addtocentrydefault{#1}%
}{%
\@nameuse{add#1tocentry}%
- }{}{\scr@ds@tocentry}%
+ }{}{\@currenttocentry}%
\fi
\fi
% \end{macrocode}
% Jetzt kommt der Kolumnentitel an die Reihe.
% \begin{macrocode}
- \csname #1mark\expandafter\endcsname\expandafter{\scr@ds@head}%
+ \csname #1mark\expandafter\endcsname\expandafter{\@currentheadentry}%
% \end{macrocode}
% Und die Abstände in die andere Verzeichnisse.
% \changes{v2.8g}{2001/07/18}{per \cs{float@addtolists} wird nun
@@ -3786,9 +3845,13 @@
\newcommand*{\scr@@makechapterhead}[2]{%
% \end{macrocode}
% Der Absolutwert des Abstandes davor wird eingefügt.
+% \changes{v3.22}{2016/12/21}{\cs{@afterindentrue} wird bei positivem
+% \texttt{beforeskip} gesetzt}^^A
% \begin{macrocode}
\@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
- \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\else
+ \expandafter\ifnum\scr@v@is@ge{3.22}\@afterindenttrue\fi
+ \fi
\chapterheadstartvskip
% \end{macrocode}
% Dann die eigentliche Überschrift innerhalb einer Gruppe.
@@ -3877,10 +3940,14 @@
% angepasst}^^A
% \changes{v3.20}{2015/12/23}{\cs{parfillskip} auf \texttt{\cs{z@} plus
% 1fil} gesetzt}^^A
+% \changes{v3.22}{2016/12/21}{\cs{@afterindentrue} wird bei positivem
+% \texttt{beforeskip} gesetzt}^^A
% \begin{macrocode}
\newcommand*{\scr@@makeschapterhead}[2]{%
\@tempskipa=\glueexpr \csname scr@#1@beforeskip\endcsname\relax\relax
- \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\fi
+ \ifdim\@tempskipa<\z@\@tempskipa-\@tempskipa\else
+ \expandafter\ifnum\scr@v@is@ge{3.22}\@afterindenttrue\fi
+ \fi
\chapterheadstartvskip
{%
\setlength{\parindent}{\z@}\setlength{\parfillskip}{\z@ plus 1fil}%