summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx235
1 files changed, 163 insertions, 72 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx
index ec3a6f2ea1e..3115e727f4a 100644
--- a/Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx
+++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-miscellaneous.dtx
@@ -1,4 +1,4 @@
-% \CheckSum{639}
+% \CheckSum{659}
% \iffalse meta-comment
% ======================================================================
% scrkernel-miscellaneous.dtx
@@ -55,7 +55,7 @@
% Right brace \} Tilde \~}
%
% \iffalse
-%%% From File: $Id: scrkernel-miscellaneous.dtx 2658 2017-06-25 14:32:43Z kohm $
+%%% From File: $Id: scrkernel-miscellaneous.dtx 2712 2017-11-21 09:27:02Z kohm $
%<init>%%% (run: init)
%<option>%%% (run: option)
%<execoption>%%% (run: execoption)
@@ -65,9 +65,9 @@
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2017-06-25 16:32:43 +0200 (Sun, 25 Jun 2017) $
+ \filedate$Date: 2017-11-21 10:27:02 +0100 (Tue, 21 Nov 2017) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
- \filerevision$Revision: 2658 $
+ \filerevision$Revision: 2712 $
\edef\reserved@a{%
\noexpand\endgroup
\noexpand\ProvidesFile{scrkernel-miscellaneous.dtx}%
@@ -154,6 +154,10 @@
% \fi
% \subsection{Test auf die eine \KOMAScript-Klasse}
%
+% Hier haben wir zunächst ein paar Definitionen speziell für das Paket
+% \textsf{scrletter}, die genau dann benötigt werden, wenn das Paket nicht mit
+% einer \KOMAScript-Klasse verwendet wird.
+%
% \begin{macrocode}
%<*package&letter>
\scr@ifundefinedorrelax{KOMAClassName}{%
@@ -195,42 +199,23 @@
% \end{macrocode}
%
% \begin{macro}{\scr@renewforletter}
-% \changes{v3.20}{2014/04/10}{neu Anweisung}^^A
+% \changes{v3.20}{2014/04/10}{neu Anweisung}^^A
+% \changes{v3.25}{2017/11/15}{als unbenutzt entfernt}^^A
% Wird wie \cs{renewcommand} verwendet, verzögert die Umdefinierung aber bis
% zu einem optionalen Zeitpunkt. Dazu wird intern
% \cs{scrletter@extra@\meta{macro}} definiert.
% \begin{macro}{\@renewforletter}
-% \changes{v3.20}{2014/04/10}{neu Anweisung (intern)}^^A
+% \changes{v3.20}{2014/04/10}{neu Anweisung (intern)}^^A
+% \changes{v3.25}{2017/11/15}{als unbenutzt entfernt}^^A
% \begin{macro}{\do@renewforletter@list}
-% \changes{v3.20}{2014/04/10}{neu Anweisung (intern)}^^A
+% \changes{v3.20}{2014/04/10}{neu Anweisung (intern)}^^A
+% \changes{v3.25}{2017/11/15}{als unbenutzt entfernt}^^A
% Die do-Liste der später umzudefinierenden Anweisungen.
% \begin{macro}{\do@renewforletter}
-% \changes{v3.20}{2014/04/10}{neu Anweisung (intern)}^^A
+% \changes{v3.20}{2014/04/10}{neu Anweisung (intern)}^^A
+% \changes{v3.25}{2017/11/15}{als unbenutzt entfernt}^^A
% Definiert die in der do-Liste gespeicherten Anweisungen um.
% \begin{macrocode}
-\newcommand*{\scr@renewforletter}{%
- \kernel@ifstar {\@renewforletter*}%
- {\@renewforletter{}}%
-}
-\newcommand*{\@renewforletter}[2]{%
- \g@addto@macro\do@renewforletter@list{\do#2}%
- \edef\reserved@a{%
- \noexpand\newcommand\noexpand#1\expandafter\noexpand
- \csname scrletter@extra@\string#2\endcsname
- }%
- \expandafter\reserved@a
-}
-\newcommand*{\do@renewforletter@list}{}
-\newcommand*{\do@renewforletter}{%
- \begingroup
- \def\do##1{%
- \aftergroup\let\aftergroup##1
- \expandafter\aftergroup\csname scrletter@extra@\string##1\endcsname
- }%
- \do@renewforletter@list
- \endgroup
- \let\do@renewforletter@list\@empty
-}
%</package&letter>
% \end{macrocode}
% \end{macro}
@@ -246,17 +231,18 @@
% \subsection{Optionen für Entwürfe}
%
% \begin{option}{draft}
-% \changes{v2.95}{2002/12/05}{mit \textsl{keyval} reimplementiert}^^A
-% \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}^^A
+% \changes{v2.95}{2002/12/05}{mit \textsl{keyval} reimplementiert}^^A
+% \changes{v3.17}{2015/03/12}{interne Speicherung der Werte}^^A
+% \changes{v3.25}{2017/11/21}{Beachtung von Option \texttt{overfullrule}}^^A
% \begin{option}{final}
-% \changes{v2.95}{2002/12/05}{obsolete Option}^^A
-% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
-% ersetzt}
-% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A
-% \changes{v3.02c}{2008/02/17}{optionales Argument im Fall von
-% \textsf{scrextend} gesetzt}
-% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
-% \cs{FamilyKeyStateProcessed}}%
+% \changes{v2.95}{2002/12/05}{obsolete Option}^^A
+% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine}
+% ersetzt}
+% \changes{v3.01a}{2008/11/21}{standard statt obsolet}^^A
+% \changes{v3.02c}{2008/02/17}{optionales Argument im Fall von
+% \textsf{scrextend} gesetzt}
+% \changes{v3.12}{2013/03/05}{Nutzung der Status-Signalisierung mit
+% \cs{FamilyKeyStateProcessed}}%
% Der einzige Unterschied zwischen Entwürfen und Endversionen ist aus
% Sicht der Klassen, ob Zeilenüberhänge mit einem schwarzen Balken
% angezeigt werden sollen oder nicht.
@@ -270,12 +256,20 @@
%<class> \KOMAClassFileName
%<package&extend> scrextend.\scr@pkgextension
}{draft}{@tempswa}%
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{overfullrule}{@tempswa}%
\setlength{\overfullrule}{5pt}%
\else
\KOMA@kav@replacebool{.%
%<class> \KOMAClassFileName
%<package&extend> scrextend.\scr@pkgextension
}{draft}{@tempswa}%
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{overfullrule}{@tempswa}%
\setlength{\overfullrule}{\z@}%
\fi
\fi
@@ -291,8 +285,52 @@
{final}{draft=false}
%</class|extend>
% \end{macrocode}
-% \end{option}
-% \end{option}
+% \begin{option}{overfullrule}
+% \changes{v3.25}{2017/11/21}{new option}^^A
+% \selectlanguage{english}^^A
+% Because option \texttt{draft} can result in unwanted effects I've added a
+% new option to explicite only change the overfull rule setting. However for
+% \textsf{scrextend} and the \KOMAScript{} classes the result is the same.
+% \begin{macrocode}
+%<*class|extend>
+\KOMA@key{overfullrule}[true]{%
+ \KOMA@set@ifkey{overfullrule}{@tempswa}{#1}%
+ \ifx\FamilyKeyState\FamilyKeyStateProcessed
+ \if@tempswa
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{draft}{@tempswa}%
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{overfullrule}{@tempswa}%
+ \setlength{\overfullrule}{5pt}%
+ \else
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{draft}{@tempswa}%
+ \KOMA@kav@replacebool{.%
+%<class> \KOMAClassFileName
+%<package&extend> scrextend.\scr@pkgextension
+ }{overfullrule}{@tempswa}%
+ \setlength{\overfullrule}{\z@}%
+ \fi
+ \fi
+}
+%<class>\KOMA@kav@add{.\KOMAClassFileName}{overfullrule}{false}
+%<*package&extend>
+\KOMA@kav@xadd{.scrextend.\scr@pkgextension}{overfullrule}{%
+ \ifdim\overfullrule>\z@ true\else false\fi
+}
+%</package&extend>
+%</class|extend>
+% \end{macrocode}
+% \selectlanguage{ngerman}^^A
+% \end{option}^^A overfullrule
+% \end{option}^^A final
+% \end{option}^^A draft
%
%
% \subsection{Optionen für Gleichungen}
@@ -695,12 +733,13 @@
% \subsection{Definitionen für tiefer gestellten Text}
%
% \begin{macro}{\textsubscript}
-% \changes{v2.8h}{2001/07/19}{neu}%
+% \changes{v2.8h}{2001/07/19}{neu}^^A
% \begin{macro}{\@textsubscript}
-% \changes{v2.8h}{2001/07/19}{neu (intern)}%
-% \changes{v3.10}{2011/09/05}{\cs{providecommand} statt \cs{newcommand},
-% damit das auch noch funktioniert, wenn \textsf{scrextend} nach
-% \textsf{fixltx2e} geladen wird}%
+% \changes{v2.8h}{2001/07/19}{neu (intern)}^^A
+% \changes{v3.10}{2011/09/05}{\cs{providecommand} statt \cs{newcommand},
+% damit das auch noch funktioniert, wenn \textsf{scrextend} nach
+% \textsf{fixltx2e} geladen wird}^^A
+% \changes{v3.25}{2017/11/15}{wird nur noch definiert, wenn nicht vorhanden}^^A
% Im \LaTeX-Kern wird zwar ein Makro \cs{textsuperscript} definiert,
% um Texte hochstellen zu können, die entsprechende Anweisung zum
% Tiefstellen fehlt jedoch. Das wird hier nachgeholt, wobei nahezu
@@ -708,8 +747,16 @@
% wird.
% \begin{macrocode}
%<*class|extend>
-\DeclareRobustCommand*\textsubscript[1]{%
- \@textsubscript{\selectfont#1}%
+\scr@ifundefinedorrelax{textsubscript}{%
+ \DeclareRobustCommand*\textsubscript[1]{%
+ \@textsubscript{\selectfont#1}%
+ }%
+}{%
+ \scr@ifundefinedorrelax{textsubscript }{%
+ \DeclareRobustCommand*\textsubscript[1]{%
+ \@textsubscript{\selectfont#1}%
+ }%
+ }{}%
}
\providecommand*{\@textsubscript}[1]{%
{\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}%
@@ -720,6 +767,26 @@
% \end{macro}
%
%
+% \subsection{Unsichtbare Stütze}
+% \label{sec:strut}
+%
+% \begin{macro}{\scr@endstrut}
+% \changes{v3.25}{2017/11/15}{neu (intern)}^^A
+% Wird am Ende eines vermutlich horizontalen Materials eine unsichtbare Stütze
+% der Art \cs{strut} eingebaut, werden Leerzeichen, die davor stehen plötzlich
+% zu Leerzeichen in der Ausgabe, auch wenn das gar nicht erwünscht wird. Das
+% kann man verhindern, indem man \cs{unskip} davor setzt. Dummer Weise hat
+% eine solche Stütze dann aber das Problem, dass das letzte Wort davor nicht
+% mehr getrennt wird. Verrückter Weise kann man das wiederum mit \cs{nobreak}
+% lösen. Das sollte dann auch nur im horizontalen Modus gemacht werden.
+% \begin{macrocode}
+%<*class|letter|extend>
+\providecommand*{\scr@endstrut}{\unskip\ifhmode\nobreak\strut\fi}
+%</class|letter|extend>
+% \end{macrocode}
+% \end{macro}
+%
+%
%
% \subsection{Warnung vor Paketen}
% \label{sec:packagewarning}
@@ -782,13 +849,6 @@
`cleardoublepage' with one of it's\MessageBreak
several values}
% \end{macrocode}
-% \textsf{parskip} ist nur ein Notfallpaket für Klassen, die selbst keinen
-% Absatzabstand unterstützen.
-% \begin{macrocode}
-\scr@package@not@recommended{parskip}{%
- option\MessageBreak
- `parskip' with one of it's several values}
-% \end{macrocode}
% \textsf{fancyhdr} verwendet veraltete Font-Befehle und beachtet die
% Font-Einstellungen und diverse andere Befehle und Optionen von \KOMAScript{}
% nicht.
@@ -804,6 +864,31 @@
`\string\addtokomafont' for the page style elements need\MessageBreak
explicite user intervention to work}
% \end{macrocode}
+% \changes{v3.23}{2017/02/04}{Verwendung von \textsf{minitoc} kann nicht
+% empfohlen werden}^^A
+% \textsf{minitoc} definiert u.\,a. \cs{@sect} hart um und zerstört so diverse
+% Erweiterungen von \KOMAScript. Es ist nicht abschließend untersucht, was das
+% Paket noch alles zerstört. Derzeit gibt es nur einen Workaround für das
+% genannte Problem mit \cs{@sect} (siehe:
+% Abschnitt~\ref{sec:packageworkarounds}).
+% \begin{macrocode}
+\scr@package@not@recommended{minitoc}{}
+% \end{macrocode}
+% \textsf{parskip} ist nur ein Notfallpaket für Klassen, die selbst keinen
+% Absatzabstand unterstützen.
+% \begin{macrocode}
+\scr@package@not@recommended{parskip}{%
+ option\MessageBreak
+ `parskip' with one of it's several values}
+% \end{macrocode}
+% \changes{v3.16}{2015/01/21}{Verwendung von \textsf{titleps} kann nicht
+% empfohlen werden}^^A
+% \textsf{titleps} beachtet die Font-Einstellungen und diverse andere Befehle
+% und Optionen von \KOMAScript{} nicht.
+% \begin{macrocode}
+\scr@package@not@recommended{titleps}{%
+ package `scrlayer-scrpage'}
+% \end{macrocode}
% \textsf{titlesec} beschädigt diverse \KOMAScript{} Erweiterungen und
% benötigt eigene Workarounds (siehe Abschnitt~\ref{sec:packageworkarounds}),
% so dass es einfach nicht gut mit \KOMAScript{} harmoniert.
@@ -815,22 +900,28 @@
the extended optional argument of the section\MessageBreak
commands}
% \end{macrocode}
-% \changes{v3.16}{2015/01/21}{Verwendung von \textsf{titleps} kann nicht
-% empfohlen werden}^^A
-% \textsf{titleps} beachtet die Font-Einstellungen und diverse andere Befehle
-% und Optionen von \KOMAScript{} nicht.
-% \begin{macrocode}
-\scr@package@not@recommended{titleps}{%
- package `scrlayer-scrpage'}
-% \end{macrocode}
-% \changes{v3.23}{2017/02/04}{Verwendung von \textsf{minitoc} kann nicht
-% empfohlen werden}^^A
-% \textsf{minitoc} definiert u.\,a. \cs{@sect} hart um und zerstört so diverse
-% Erweiterungen von \KOMAScript. Es ist nicht abschließend untersucht, was das
-% Paket noch alles zerstört. Derzeit gibt es nur einen Workaround für das
-% genannte Problem mit \cs{@sect}.
+% \selectlanguage{english}^^A
+% \changes{v3.25}{2017/11/21}{Usage of \textsf{tocbibind} not recommended}^^A
+% \textsf{tocbibind} does several things, that break \KOMAScript, i.e.:
+% \begin{itemize}
+% \item usage of \cs{MakeUppercase} within running heads,
+% \item usage of hard codes \texttt{toc} for the ToC entries,
+% \item hard redefinition of \texttt{thebibliography},
+% \item hard redefinition of \texttt{theindex},
+% \item hard redefinition of \cs{tableofcontents},
+% \item hard redefinition of \cs{listoftables},
+% \item hard redefinition of \cs{listoffigures},
+% \item hard redefinition of \cs{@makechapterhead}
+% \end{itemize}
% \begin{macrocode}
-\scr@package@not@recommended{minitoc}{}
+\scr@package@not@recommended{tocbibind}{%
+ options like `listof=totoc'\MessageBreak
+ or `bibliography=totoc', or commands like\MessageBreak
+ `\string\setuptoc{toc}{totoc}' instead of this package,\MessageBreak
+ because it breaks several KOMA-Script features of\MessageBreak
+ the list of figures, list of tables, bibliography,\MessageBreak
+ index and the running head%
+}
%</class>
% \end{macrocode}
% \end{macro}^^A \scr@package@not@recommended