diff options
author | Karl Berry <karl@freefriends.org> | 2016-05-11 21:26:48 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-05-11 21:26:48 +0000 |
commit | 39c10427f8eee057dc28928380060a585e1e017b (patch) | |
tree | 6750074338d5e6b808cfca3671e2ab9763c328ae /Master/texmf-dist/source/latex/koma-script/scrkernel-language.dtx | |
parent | a49931ca8756327265b8929a7a147045bf2b3506 (diff) |
koma-script (11may16)
git-svn-id: svn://tug.org/texlive/trunk@41038 c570f23f-e606-0410-a88d-b1316a301751
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.dtx | 99 |
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} |