summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/koma-script/scrkernel-language.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/koma-script/scrkernel-language.dtx')
-rw-r--r--Master/texmf-dist/source/latex/koma-script/scrkernel-language.dtx99
1 files changed, 87 insertions, 12 deletions
diff --git a/Master/texmf-dist/source/latex/koma-script/scrkernel-language.dtx b/Master/texmf-dist/source/latex/koma-script/scrkernel-language.dtx
index 595934ee27f..a6c5f45ded2 100644
--- a/Master/texmf-dist/source/latex/koma-script/scrkernel-language.dtx
+++ b/Master/texmf-dist/source/latex/koma-script/scrkernel-language.dtx
@@ -1,8 +1,8 @@
-% \CheckSum{1996}
+% \CheckSum{2080}
% \iffalse meta-comment
% ======================================================================
% scrkernel-language.dtx
-% Copyright (c) Markus Kohm, 2002-2015
+% Copyright (c) Markus Kohm, 2002-2016
%
% 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-language.dtx
-% Copyright (c) Markus Kohm, 2002-2015
+% Copyright (c) Markus Kohm, 2002-2016
%
% Dieses Werk darf nach den Bedingungen der LaTeX Project Public Lizenz,
% Version 1.3c, verteilt und/oder veraendert werden.
@@ -55,13 +55,13 @@
% Right brace \} Tilde \~}
%
% \iffalse
-%%% From File: $Id: scrkernel-language.dtx 2151 2015-07-03 09:25:42Z kohm $
+%%% From File: $Id: scrkernel-language.dtx 2429 2016-04-12 12:10:19Z kohm $
%<*driver>
% \fi
\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi
\begingroup
\def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}}
- \filedate$Date: 2015-07-03 11:25:42 +0200 (Fri, 03 Jul 2015) $
+ \filedate$Date: 2016-04-12 14:10:19 +0200 (Tue, 12 Apr 2016) $
\def\filerevision$#1: #2 ${\gdef\filerevision{r#2}}
\filerevision$Revision: 1638 $
\edef\reserved@a{%
@@ -188,6 +188,8 @@
%
% \begin{macro}{\defcaptionname}
% \changes{3.12}{2013/07/29}{neu}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
% Für eine Reihe von Sprachen (durch Komma separierte Liste in \#1)
% wird ein Makro (\#2) auf einen bestimmten Inhalt (\#3) definiert. Die
% Sternversion verwendet dabei zwingend \cs{extras\meta{Sprache}}, während
@@ -196,7 +198,7 @@
% Befehl in der Dokumentpräambel aufgerufen wird, wird er verzögert.
% \begin{macrocode}
\newcommand*{\defcaptionname}{%
- \@ifstar\scr@def@scaptionname\scr@def@captionname
+ \kernel@ifstar\scr@def@scaptionname\scr@def@captionname
}
% \end{macrocode}
% \begin{macro}{\scr@def@scaptionname}
@@ -258,12 +260,39 @@
\newcommand*{\scr@def@activateactivelanguageaftergroup}[2]{%
\@onelevel@sanitize\languagename
\@tempswafalse
+%<trace> \typeout{compare `\languagename' and `\scr@reserved@a'}%
\ifx\languagename\scr@reserved@a
\@tempswatrue
\else
- \ifcsname l@\scr@reserved@a\endcsname
- \expandafter\ifnum\csname l@\scr@reserved@a\endcsname=\language
- \@tempswatrue
+% \end{macrocode}
+% \changes{v3.20}{2016/01/05}{Sonderbehandlung für \textsf{polyglossia}}^^A
+% Bei Verwendung von \textsf{polyglossia} gibt es die Besonderheit, dass alle
+% Deutschen Sprachen als \texttt{german} definiert sind. Die Unterscheidung
+% zwischen Deutsch, Österreichisch und Schweizerisch geschieht über zwei
+% boolsche Schalter. Für die Unterscheidung alte oder neue Rechtschreibung
+% existiert ein weiterer Schalter. Mit ein paar trickreichen Vergleichen kann
+% man das zusätzlich behandeln. Natürlich muss es so gemacht werden, dass es
+% mit babel trotzdem noch funktioniert.
+% \begin{macrocode}
+ \edef\scr@reserved@b{\detokenize{german}}%
+ \ifx\languagename\scr@reserved@b
+ \edef\scr@reserved@b{%
+ \expandafter\ifx\csname if@german@oldspelling\expandafter\endcsname
+ \csname iffalse\endcsname n\fi
+ \expandafter\ifx\csname if@austrian@locale\expandafter\endcsname
+ \csname iftrue\endcsname austrian\else
+ \expandafter\ifx\csname if@swiss@locale\expandafter\endcsname
+ \csname iftrue\endcsname swiss\else german\fi\fi
+ }%
+%<trace> \typeout{compare also `\scr@reserved@a' and `\scr@reserved@b'}%
+ \@onelevel@sanitize\scr@reserved@b
+ \ifx\scr@reserved@a\scr@reserved@b \@tempswatrue\fi
+ \fi
+ \if@tempswa\else
+ \ifcsname l@\scr@reserved@a\endcsname
+ \expandafter\ifnum\csname l@\scr@reserved@a\endcsname=\language
+ \@tempswatrue
+ \fi
\fi
\fi
\fi
@@ -364,6 +393,46 @@
% \end{macro}^^A \scr@def@captionname
% \end{macro}^^A \defcaptionname
%
+% \changes{v3.20}{2016/01/05}{Neue Sonderbehandlung für
+% \texttt{polyglossia}}^^A
+% Bei Verwendung von \textsf{polyglossia} haben wir nun bei den Sprachen
+% \texttt{austrian}, \texttt{swiss}, \texttt{ngerman}, \texttt{naustrian} und
+% \texttt{nswiss} das Problem, dass diese dort alle in \cs{captionsgerman}
+% vermischt sind. Es werden also also beim Umschalten eventuell gar nicht die
+% richtigen Befehle ausgeführt. Das lässt sich beispielsweise beheben, indem
+% in \cs{init@extra@german} dafür gesorgt wid, dass eben diese doch noch
+% ausgeführt werden:
+% \begin{macrocode}
+\AfterPackage*{polyglossia}{%
+ \scr@ifundefinedorrelax{init@extras@german}{%
+ \AfterFile{gloss-german.ldf}%
+ }{%
+ \@firstofone
+ }%
+ {%
+ \providecommand*\captionsngerman{}%
+ \providecommand*\captionsaustrian{}%
+ \providecommand*\captionsnaustrian{}%
+ \providecommand*\captionsswiss{}%
+ \providecommand*\captionsnswiss{}%
+ \csgappto{init@extras@german}{%
+ \if@austrian@locale
+ \csuse{captions\if@german@oldspelling\else n\fi austrian}%
+ \else
+ \if@swiss@locale
+ \csuse{captions\if@german@oldspelling\else n\fi swiss}%
+ \else
+ \if@german@oldspelling\else \csuse{captionsngerman}\fi
+ \fi
+ \fi
+ }%
+ }%
+}
+% \end{macrocode}
+% Ich bin mir natürlich bewusst, dass dieser Code auch nur wieder ein Hack
+% ist. Ideal ist das so nicht. Aber sehr viel sauberer geht es mit
+% \textsf{polyglossia} unter Beibehaltung der Kompatibilität auch nicht mehr.
+%
% \begin{macro}{\providecaptionname}
% \changes{v2.8q}{2001/11/08}{neu}^^A
% \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte
@@ -375,13 +444,15 @@
% \changes{v3.02c}{2009/02/17}{undefined test improved}^^A
% \changes{v3.12}{2013/07/30}{Neuimplementierung nach dem Muster von
% \cs{defcaptionname}}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
% Wie \cs{defcaptionname}, allerdings wird nur definiert, wenn die Sprache \#1
% bereits existiert, aber der Begriff \#2 nicht existiert. Unter dieser
% Einschränkung verwendet die Sternvariante \cs{extras\meta{Sprache}}, während
% die Normalvariante \cs{captions\meta{Sprache}} verwendet.
% \begin{macrocode}
\newcommand*{\providecaptionname}{%
- \@ifstar\scr@provide@scaptionname\scr@provide@captionname
+ \kernel@ifstar\scr@provide@scaptionname\scr@provide@captionname
}
% \end{macrocode}
% \begin{macro}{\scr@provide@scaptionname}
@@ -521,6 +592,8 @@
% \changes{v3.02c}{2009/02/17}{undefined test improved}^^A
% \changes{v3.12}{2013/07/30}{Neuimplementierung nach dem Muster von
% \cs{defcaptionname}}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
% Wie \cs{defcaptionname} mit folgender Änderung: Existiert die
% Sprache und der Begriff, so wird ein Fehler ausgegeben. Existiert die
% Sprache aber nicht der Begriff, so wird er definiert. Existiert die Sprache
@@ -529,7 +602,7 @@
% \cs{captions\meta{Sprache}} verwendet.
% \begin{macrocode}
\newcommand*{\newcaptionname}{%
- \@ifstar\scr@new@scaptionname\scr@new@captionname
+ \kernel@ifstar\scr@new@scaptionname\scr@new@captionname
}
% \end{macrocode}
% \begin{macro}{\scr@new@scaptionname}
@@ -657,6 +730,8 @@
% \changes{v3.02c}{2009/02/17}{undefined test improved}^^A
% \changes{v3.12}{2013/07/30}{Neuimplementierung nach dem Muster von
% \cs{defcaptionname}}^^A
+% \changes{v3.20}{2016/04/12}{\cs{@ifstar} durch \cs{kernel@ifstar}
+% ersetzt}^^A
% Wie \cs{defcaptionname} mit folgender Änderung: Existiert die
% Sprache nicht, so ist dies ein Fehler. Existiert die Sprache nicht aber der
% Begriff, so ist dies ebenfalls ein Fehler. Existieren Sprache und Begriff,
@@ -666,7 +741,7 @@
% \cs{extras\meta{Sprache}} definiert war, und sonst \cs{extras\meta{Sprache}}.
% \begin{macrocode}
\newcommand*{\renewcaptionname}{%
- \@ifstar\scr@renew@scaptionname\scr@renew@captionname
+ \kernel@ifstar\scr@renew@scaptionname\scr@renew@captionname
}
% \end{macrocode}
% \begin{macro}{\scr@renew@scaptionname}