diff options
Diffstat (limited to 'macros/latex/contrib/koma-script/scrkernel-language.dtx')
-rw-r--r-- | macros/latex/contrib/koma-script/scrkernel-language.dtx | 1790 |
1 files changed, 1790 insertions, 0 deletions
diff --git a/macros/latex/contrib/koma-script/scrkernel-language.dtx b/macros/latex/contrib/koma-script/scrkernel-language.dtx new file mode 100644 index 0000000000..7311e411f7 --- /dev/null +++ b/macros/latex/contrib/koma-script/scrkernel-language.dtx @@ -0,0 +1,1790 @@ +% \iffalse meta-comment +% ====================================================================== +% scrkernel-language.dtx +% Copyright (c) Markus Kohm, 2002-2022 +% +% This file is part of the LaTeX2e KOMA-Script bundle. +% +% This work may be distributed and/or modified under the conditions of +% the LaTeX Project Public License, version 1.3c of the license. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3c or later is part of all distributions of LaTeX +% version 2005/12/01 or later and of this work. +% +% This work has the LPPL maintenance status "author-maintained". +% +% The Current Maintainer and author of this work is Markus Kohm. +% +% This work consists of all files listed in MANIFEST.md. +% ====================================================================== +%%% From File: $Id: scrkernel-language.dtx 3874 2022-06-05 10:38:02Z kohm $ +%<option>%%% (run: option) +%<body>%%% (run: body) +%<*dtx> +\ifx\ProvidesFile\undefined\def\ProvidesFile#1[#2]{}\fi +\begingroup + \def\filedate$#1: #2-#3-#4 #5${\gdef\filedate{#2/#3/#4}} + \filedate$Date: 2022-06-05 12:38:02 +0200 (So, 05. Jun 2022) $ + \def\filerevision$#1: #2 ${\gdef\filerevision{r#2}} + \filerevision$Revision: 3874 $ + \edef\reserved@a{% + \noexpand\endgroup + \noexpand\ProvidesFile{scrkernel-language.dtx} + [\filedate\space\filerevision\space + KOMA-Script (language)]% + }% +\reserved@a +\documentclass[USenglish]{koma-script-source-doc} +\usepackage{babel} +\setcounter{StandardModuleDepth}{2} +\begin{document} +\DocInput{scrkernel-language.dtx} +\end{document} +%</dtx> +% \fi +% +% \changes{v2.95}{2002/07/01}{new by splitting \file{scrclass.dtx}} +% \changes{v3.36}{2022/02/25}{switch over from \cls*{scrdoc} to +% \cls*{koma-script-source-doc}} +% \changes{v3.36}{2022/02/25}{whole implementation documentation in English} +% +% \GetFileInfo{scrkernel-language.dtx} +% \title{Easy Changing of Language-Depending Terms with +% \href{https://komascript.de}{\KOMAScript} \pkg*{scrbase}} +% \author{\href{mailto:komascript@gmx.info}{Markus Kohm}} +% \date{Revision \fileversion{} of \filedate} +% \maketitle +% \begin{abstract} +% Changing or defining language-depending terms is meanwhile easy, if +% \pkg{babel} has been loaded. But before it has been loaded or if another +% language package is used, it is not as easy as it should be. \KOMAScript{} +% provides several commands to make it easy. +% \end{abstract} +% \tableofcontents +% +% \section{User Manual} +% +% You can find the user documentation the commands implemented here in the +% \KOMAScript{} manual, either the German \file{scrguide} or the English +% \file{scrguien}. +% +% \MaybeStop{\PrintIndex} +% +% +% \subsection{Commands and macros for language depending terms} +% +% These commands and macros provide very basic features and therefore has been +% moved to \pkg*{scrbase} with \KOMAScript~3.00. +% +% \begin{macrocode} +%<*package&base&body> +% \end{macrocode} +% +% \begin{command}{\defcaptionname*,\defcaptionname} +% \changes{3.12}{2013/07/29}{added} +% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}} +% With +% \begin{quote} +% \cs{defcaptionname}\marg{language list}\marg{name command}\marg{term} +% \end{quote} +% you can define \meta{name command} for all languages given in the +% comma-separated \meta{language list} to be \meta{term}. Note: \meta{name +% command} has to be a command without arguments. For commands with arguments +% you have to use the mechanisms of, e.g., \pkg{babel} directly. If the +% \meta{name command} is already defined in \cs{extras\meta{language}}, the +% new definition will also be added to this macro. Otherwise it will be added +% to \cs{captions\meta{language}}. The star variant \cs{defcaptionname*} +% always used \cs{extras\meta{language}}. +% \begin{macrocode} +\newcommand*{\defcaptionname}{% + \kernel@ifstar\scr@def@scaptionname\scr@def@captionname +} +% \end{macrocode} +% \begin{macro}{\scr@def@scaptionname} +% \changes{v3.12}{2013/07/30}{added} +% Because we are not using \pkg{xparse} we need an extra macro for the star +% variant. The arguments are the same as for \cs{defcaptionname}. +% \begin{macrocode} +\newcommand*{\scr@def@scaptionname}[3]{% +% \end{macrocode} +% Because several language packages define \cs{captions\meta{language}} in +% |\begin{document}|, we also delay the definition, if the command is used in +% the document preamble. +% \begin{macrocode} + \if@atdocument + \expandafter\@firstofone + \else + \scr@ifactivelanguageisoneof{#1}{\def#2{#3}}{}% + \expandafter\AtBeginDocument + \fi + {% +% \end{macrocode} +% Do a local loop over all languages in the \meta{language list}. +% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}} +% \begin{macrocode} + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \@for\scr@reserved@a:=\scr@reserved@a\do{% +% \end{macrocode} +% Inside the loop add definition of \meta{name command} to \meta{term} to +% \cs{extras\meta{language}}. +% \begin{macrocode} + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at \string\defcaptionname}% + \else + \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname extras\scr@reserved@a\endcsname{% + \def#2{#3}% + }% +% \end{macrocode} +% The redefinition of \cs{reserved@b} to not only close the group but also +% activate the new term if \meta{language} (\cs{reserved@a}) is the current +% language: +% \begin{macrocode} + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \begin{macro}{\scr@def@activateactivelanguageaftergroup} +% \changes{v3.12}{2013/07/30}{added} +% \changes{v3.27}{2019/07/10}{immediate activation from within document +% preamble} +% If the language in \cs{reserved@a} is the current language in +% \cs{languagename} or if the language number of the language in +% \cs{reserved@a} is the current language number \cs{language}, the definition +% of \texttt{\#1} as \texttt{\#2} is added to \cs{reserved@b}. +% \begin{macrocode} +\newcommand*{\scr@def@activateactivelanguageaftergroup}[2]{% + \@onelevel@sanitize\languagename + \@tempswafalse +%<trace> \typeout{comparing `\languagename' and `\scr@reserved@a'}% + \ifx\languagename\scr@reserved@a + \@tempswatrue + \else +% \end{macrocode} +% \changes{v3.20}{2016/01/05}{special treatment of \pkg{polyglossia}} +% With \pkg{polyglossia} all German languages are language +% \texttt{german}. The distinction of German, Swiss and Austrian is done with +% two boolean switches \cs{if@austrian@locale} and +% \cs{if@swiss@local}. Additionally the distinction of old and current German +% is done with boolean switch \cs{if@german@oldspelling}. We cannot use the +% switches directly, because of the special handling of such switches and +% because they are only defined with \pkg{polyglossia}. So we compare them +% with \cs{iffalse} or \cs{iftrue} instead. +% \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{comparing 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 + \if@tempswa + \def\reserved@b{\endgroup + \PackageInfo{scrbase}{activating \languagename\space \string#1}% + \def#1{#2}% + }% + \fi +} +% \end{macrocode} +% \begin{macro}{\scr@ifactivelanguageisoneof} +% \changes{v3.27}{2019/07/10}{added} +% \begin{quote} +% \cs{scr@ifactivelanguageisoneof}\marg{language list}\meta{then +% code}\meta{else code} +% \end{quote} +% If the current language is one of the comma-separated \meta{language list}, +% the \meta{then code} is executed otherwise \meta{else code}. +% \begin{macrocode} +\newcommand*{\scr@ifactivelanguageisoneof}[1]{% + \begingroup + \@tempswafalse + \@onelevel@sanitize\languagename + \edef\reserved@a{#1}% + \@for \reserved@a:=\reserved@a\do{% + \scr@trim@spaces\reserved@a + \@onelevel@sanitize\reserved@a + \ifx\languagename\reserved@a + \@tempswatrue + \else + \edef\reserved@b{\detokenize{german}}% + \ifx\languagename\reserved@b + \edef\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 + }% + \@onelevel@sanitize\reserved@b + \ifx\reserved@a\reserved@b \@tempswatrue\fi + \fi + \if@tempswa\else + \ifcsname l@\reserved@a\endcsname + \expandafter\ifnum \csname l@\reserved@a\endcsname=\language + \@tempswatrue + \fi + \fi + \fi + \fi + }% + \if@tempswa + \aftergroup\@firstoftwo + \else + \aftergroup\@secondoftwo + \fi + \endgroup +} +% \end{macrocode} +% \end{macro}^^A \scr@ifactivelanguageisoneof +% \end{macro}^^A \scr@def@activateactivelanguageaftergroup +% \end{macro}^^A \scr@def@scaptionname +% \begin{macro}{\scr@def@captionname} +% \changes{v3.12}{2013/07/30}{added} +% \changes{v3.27}{2019/07/10}{immediate activation from within document +% preamble} +% The non-star variant of \cs{defcaptionname} with the same arguments. +% \begin{macrocode} +\newcommand*{\scr@def@captionname}[3]{% +% \end{macrocode} +% Because several language packages define \cs{captions\meta{language}} in +% |\begin{document}|, we also delay the definition, if the command is used in +% the document preamble. +% \begin{macrocode} + \if@atdocument + \expandafter\@firstofone + \else + \scr@ifactivelanguageisoneof{#1}{\def#2{#3}}{}% + \expandafter\AtBeginDocument + \fi + {% +% \end{macrocode} +% Do a local loop over all languages in the \meta{language list}. +% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}} +% \begin{macrocode} + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \@for\scr@reserved@a:=\scr@reserved@a\do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at \string\defcaptionname}% + \else +% \end{macrocode} +% Test, if \meta{name command} is already defined in \cs{extras\meta{language}}. +% \begin{macrocode} + \@tempswafalse + \begingroup + \@tempswafalse + \ifcsname extras\scr@reserved@a\endcsname + \let#2\relax +% \end{macrocode} +% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround} +% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to +% \cs{extras\meta{language}} if only \meta{language} is an redundant language +% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and +% \cs{extras\meta{language}} is defined. But in this case +% \cs{abx@extras@\meta{language}} is not defined. So calling +% \cs{extras\meta{language}} would result in an error. As a workaround for +% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here +% locally. +% \begin{macrocode} + \expandafter\providecommand\expandafter*% + \csname abx@extras@\scr@reserved@a\endcsname{}% + \csname extras\scr@reserved@a\endcsname + \ifx #2\relax \else \aftergroup\@tempswatrue \fi + \fi + \endgroup +% \end{macrocode} +% If \meta{name command} is already defined in \cs{extras\meta{language}} +% \begin{macrocode} + \if@tempswa +% \end{macrocode} +% once again define it in \cs{extras\meta{language}}. +% \begin{macrocode} + \expandafter\g@addto@macro\csname extras\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \else +% \end{macrocode} +% Otherwise define it in \cs{caption\meta{language}}. +% \begin{macrocode} + \expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname captions\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \fi +% \end{macrocode} +% The redefinition of \cs{reserved@b} to not only close the group but also +% activate the new term if \meta{language} (\cs{reserved@a}) is the current +% language: +% \begin{macrocode} + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@def@captionname +% \end{command}^^A \defcaptionname +% +% \changes{v3.20}{2016/01/05}{new special treatment of \pkg{polyglossia}}% +% With \pkg{polyglossia} the languages \texttt{austrian}, \texttt{swiss}, +% \texttt{ngerman}, \texttt{naustrian}, and \texttt{nswiss} are all mixed up +% to \cs{captionsgerman}. To avoid activation of the language term of the +% wrong dialect, \cs{init@extra@german} can be changed. Surely this is more or +% less a hack. But \pkg{polyglossia} seems to not provide a better interface +% for class and package authors. +% \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} +% +% +% \begin{command}{\providecaptionname} +% \changes{v2.8q}{2001/11/08}{added} +% \changes{v2.9r}{2004/06/16}{immediate activation for current language} +% \changes{v2.95}{2006/03/10}{sanitizing language test} +% \changes{v3.00}{2008/05/02}{moved to \pkg*{scrbase}} +% \changes{v3.01b}{2008/12/07}{missing make undefined} +% \changes{v3.02c}{2009/02/17}{undefined test improved} +% \changes{v3.12}{2013/07/30}{re-implemented similar to \cs{defcaptionname}} +% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}} +% This is very similar to \cs{defcaptionname}, but nothing is done if a +% \meta{language} in the \meta{language list} is unknown or \meta{name +% command} is already defined for the \meta{language}. With this limitation +% \cs{providecaptionname} adds \meta{name command} to +% \cs{captions\meta{language}} always, but the star variant +% \cs{providecaptionname*} uses \cs{extras\meta{language}}. +% \begin{macrocode} +\newcommand*{\providecaptionname}{% + \kernel@ifstar\scr@provide@scaptionname\scr@provide@captionname +} +% \end{macrocode} +% \begin{macro}{\scr@provide@scaptionname} +% \changes{v3.12}{2013/07/30}{added} +% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}} +% \changes{v3.27}{2019/07/10}{immediate activation from within document +% preamble} +% The star variant of \cs{providecaptionname} with the same arguments. +% \begin{macrocode} +\newcommand*{\scr@provide@scaptionname}[3]{% + \if@atdocument + \expandafter\@firstofone + \else + \scr@ifactivelanguageisoneof{#1}{\providecommand*{#2}{#3}}{}% + \expandafter\AtBeginDocument + \fi + {% + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \@for\scr@reserved@a:=\scr@reserved@a\do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at + \string\providecaptionname}% + \else +% \end{macrocode} +% In opposite to \cs{defcaptionname} add \meta{name command} to +% \cs{extras\meta{language}} only, if \cs{extras\meta{language}} already +% exists, but not yet defines \meta{name command}. +% \begin{macrocode} + \begingroup + \let#2\relax +% \end{macrocode} +% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround} +% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to +% \cs{extras\meta{language}} if only \meta{language} is an redundant language +% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and +% \cs{extras\meta{language}} is defined. But in this case +% \cs{abx@extras@\meta{language}} is not defined. So calling +% \cs{extras\meta{language}} would result in an error. As a workaround for +% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here +% locally. +% \begin{macrocode} + \expandafter\providecommand\expandafter*% + \csname abx@extras@\scr@reserved@a\endcsname{}% +% \end{macrocode} +% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround} +% Unfortunately some users use \cs{renewcommand} to change a name even if the +% language has not been loaded and the command has not been defined. This +% would result in an error message. So a this point we let \cs{renewcommand} +% be \cs{providecommand}, because we know that currently the command is +% \cs{relax}. +% \begin{macrocode} + \let\renewcommand\providecommand + \csname extras\scr@reserved@a\endcsname + \csname captions\scr@reserved@a\endcsname + \ifx #2\relax \aftergroup\@firstofone + \else +%<*trace> + \PackageInfo{scrbase}{letting \scr@reserved@a\space + \expandafter\string#2\MessageBreak + unchanged}% +%</trace> + \aftergroup\@gobble + \fi + \endgroup + {% + \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax +%<*trace> + \PackageInfo{scrbase}{letting + \expandafter\string\csname extras\scr@reserved@a\endcsname\space + unused}% +%</trace> + \expandafter\expandafter\expandafter\@gobbletwo + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname extras\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + }% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@provide@scaptionname +% \begin{macro}{\scr@provide@captionname} +% \changes{v3.12}{2013/07/30}{added} +% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}} +% \changes{v3.27}{2019/07/10}{immediate activation from within document +% preamble} +% The non-star variant of \cs{providecaptionname} with the same arguments. +% \begin{macrocode} +\newcommand*{\scr@provide@captionname}[3]{% + \if@atdocument + \expandafter\@firstofone + \else + \scr@ifactivelanguageisoneof{#1}{\providecommand*{#2}{#3}}{}% + \expandafter\AtBeginDocument + \fi + {% + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \@for\scr@reserved@a:=\scr@reserved@a\do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at + \string\providecaptionname}% + \else +% \end{macrocode} +% In opposite to \cs{defcaptionname} add \meta{name command} to +% \cs{captions\meta{language}} only, if \cs{captions\meta{language}} already +% exists, but neither \cs{extras\meta{language}} nor +% \cs{captions\meta{language}} defines \meta{name command}. +% \begin{macrocode} + \begingroup + \let#2\relax +% \end{macrocode} +% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround} +% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to +% \cs{extras\meta{language}} if only \meta{language} is an redundant language +% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and +% \cs{extras\meta{language}} is defined. But in this case +% \cs{abx@extras@\meta{language}} is not defined. So calling +% \cs{extras\meta{language}} would result in an error. As a workaround for +% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here +% locally. +% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround} +% Unfortunately some users use \cs{renewcommand} to change a name even if the +% language has not been loaded and the command has not been defined. This +% would result in an error message. So a this point we let \cs{renewcommand} +% be \cs{providecommand}, because we know that currently the command is +% \cs{relax}. +% \begin{macrocode} + \let\renewcommand\providecommand + \expandafter\providecommand\expandafter*% + \csname abx@extras@\scr@reserved@a\endcsname{}% + \csname captions\scr@reserved@a\endcsname + \csname extras\scr@reserved@a\endcsname + \ifx #2\relax \aftergroup\@firstofone + \else +%<*trace> + \PackageInfo{scrbase}{letting \scr@reserved@a + \expandafter\string#2\MessageBreak + unchanged}% +%</trace> + \aftergroup\@gobble + \fi + \endgroup + {% + \expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax +%<*trace> + \PackageInfo{scrbase}{letting + \expandafter\string\csname extras\scr@reserved@a\endcsname\space + unused}% +%</trace> + \expandafter\expandafter\expandafter\@gobbletwo + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname captions\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + }% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@provide@captionname +% \end{command}^^A \providecaptionname +% +% +% \begin{command}{\newcaptionname} +% \changes{v2.8q}{2001/11/08}{added} +% \changes{v2.9r}{2004/06/16}{immediate activation for current language} +% \changes{v2.95}{2006/03/10}{sanitizing language test} +% \changes{v3.00}{2008/05/02}{moved to \pkg*{scrbase}} +% \changes{v3.01b}{2008/12/07}{missing make undefined} +% \changes{v3.02c}{2009/02/17}{undefined test improved} +% \changes{v3.12}{2013/07/30}{re-implemented similar to \cs{defcaptionname}} +% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}} +% This is very similar to \cs{defcaptionname}, but if \meta{language} exists +% and already defines \meta{language name} an error is reported. If the +% \meta{language} exists but does not define the \meta{language name}, the +% definition will be added. If the \meta{language} does not exist, it will be +% defined. With this limitation \cs{newcaptionname} adds \meta{name command} +% to \cs{captions\meta{language}} always, but the star variant +% \cs{newcaptionname*} uses \cs{extras\meta{language}}. +% \begin{macrocode} +\newcommand*{\newcaptionname}{% + \kernel@ifstar\scr@new@scaptionname\scr@new@captionname +} +% \end{macrocode} +% \begin{macro}{\scr@new@scaptionname} +% \changes{v3.12}{2013/07/30}{added} +% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}} +% \changes{v3.27}{2019/07/10}{immediate activation from within document +% preamble} +% The star variant of \cs{newcaptionname} with the same arguments. +% \begin{macrocode} +\newcommand*{\scr@new@scaptionname}[3]{% + \if@atdocument + \expandafter\@firstofone + \else + \scr@ifactivelanguageisoneof{#1}{\providecommand*{#2}{#3}}{}% + \expandafter\AtBeginDocument + \fi + {% + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \@for\scr@reserved@a:=\scr@reserved@a\do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at \string\newcaptionname}% + \else +% \end{macrocode} +% In opposite to \cs{defcaptionname} the \meta{language name} has to be +% undefined. +% \begin{macrocode} + \begingroup + \let#2\relax +% \end{macrocode} +% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround} +% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to +% \cs{extras\meta{language}} if only \meta{language} is an redundant language +% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and +% \cs{extras\meta{language}} is defined. But in this case +% \cs{abx@extras@\meta{language}} is not defined. So calling +% \cs{extras\meta{language}} would result in an error. As a workaround for +% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here +% locally. +% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround} +% Unfortunately some users use \cs{renewcommand} to change a name even if the +% language has not been loaded and the command has not been defined. This +% would result in an error message. So a this point we let \cs{renewcommand} +% be \cs{providecommand}, because we know that currently the command is +% \cs{relax}. +% \begin{macrocode} + \let\renewcommand\providecommand + \expandafter\providecommand\expandafter*% + \csname abx@extras@\scr@reserved@a\endcsname{}% + \csname captions\scr@reserved@a\endcsname + \csname extras\scr@reserved@a\endcsname + \ifx #2\relax + \else + \PackageError{scrbase}{% + `\string#2' already defined\MessageBreak + for language `\scr@reserved@a'% + }{% + You've told me to define `\string#2' for language + `\scr@reserved@a',\MessageBreak + but is has already been defined.\MessageBreak + Nevertheless, if you'll continue it will be redefined.% + }% + \fi + \endgroup + \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname extras\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@new@scaptionname +% \begin{macro}{\scr@new@captionname} +% \changes{v3.12}{2013/07/30}{added} +% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}} +% \changes{v3.27}{2019/07/10}{immediate activation from within document +% preamble} +% The non-star variant of \cs{newcaptionname} with the same arguments. +% \begin{macrocode} +\newcommand*{\scr@new@captionname}[3]{% + \if@atdocument + \expandafter\@firstofone + \else + \scr@ifactivelanguageisoneof{#1}{\providecommand*{#2}{#3}}{}% + \expandafter\AtBeginDocument + \fi + {% + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \@for\scr@reserved@a:=\scr@reserved@a\do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at \string\newcaptionname}% + \else +% \end{macrocode} +% In opposite to \cs{defcaptionname} the \meta{language name} has to be +% undefined. +% \begin{macrocode} + \begingroup + \let#2\relax +% \end{macrocode} +% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround} +% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to +% \cs{extras\meta{language}} if only \meta{language} is an redundant language +% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and +% \cs{extras\meta{language}} is defined. But in this case +% \cs{abx@extras@\meta{language}} is not defined. So calling +% \cs{extras\meta{language}} would result in an error. As a workaround for +% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here +% locally. +% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround} +% Unfortunately some users use \cs{renewcommand} to change a name even if the +% language has not been loaded and the command has not been defined. This +% would result in an error message. So a this point we let \cs{renewcommand} +% be \cs{providecommand}, because we know that currently the command is +% \cs{relax}. +% \begin{macrocode} + \let\renewcommand\providecommand + \expandafter\providecommand\expandafter*% + \csname abx@extras@\scr@reserved@a\endcsname{}% + \csname captions\scr@reserved@a\endcsname + \csname extras\scr@reserved@a\endcsname + \ifx #2\relax + \else + \PackageError{scrbase}{% + `\string#2' already defined\MessageBreak + for language `\scr@reserved@a'% + }{% + You've told me to define `\string#2' for language + `\scr@reserved@a',\MessageBreak + but is has already been defined.\MessageBreak + Nevertheless, if you'll continue it will be redefined.% + }% + \fi + \endgroup + \expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname captions\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@new@captionname +% \end{command}^^A \newcaptionname +% +% \begin{command}{\renewcaptionname} +% \changes{v2.8q}{2001/11/08}{added} +% \changes{v2.9r}{2004/06/16}{immediate activation for current language} +% \changes{v2.95}{2006/03/10}{sanitizing language test} +% \changes{v3.00}{2008/05/02}{moved to \pkg*{scrbase}} +% \changes{v3.01b}{2008/12/07}{missing make undefined} +% \changes{v3.02c}{2009/02/17}{undefined test improved} +% \changes{v3.12}{2013/07/30}{re-implemented similar to \cs{defcaptionname}} +% \changes{v3.20}{2016/04/12}{\cs{@ifstar} replaced by \cs{kernel@ifstar}} +% This is very similar to \cs{defcaptionname}, but if the \meta{language} does +% not exist or does not already define \meta{language name} an error is reported. +% So for a \meta{language} that exists and defines \meta{language name}, If the +% \meta{name command} is already defined in \cs{extras\meta{language}}, +% \cs{renewcaptioname} adds the changed definition to this macro. Otherwise it +% will be added to \cs{captions\meta{language}}. The star variant +% \cs{renewcaptionname*} always used \cs{extras\meta{language}}. +% \begin{macrocode} +\newcommand*{\renewcaptionname}{% + \kernel@ifstar\scr@renew@scaptionname\scr@renew@captionname +} +% \end{macrocode} +% \begin{macro}{\scr@renew@scaptionname} +% \changes{v3.12}{2013/07/30}{added} +% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}} +% \changes{v3.27}{2019/07/10}{immediate activation from within document +% preamble} +% \changes{v3.27a}{2019/10/13}{immediate activation only for already defined terms} +% The star variant of \cs{renewcaptionname} with the same arguments. +% \begin{macrocode} +\newcommand*{\scr@renew@scaptionname}[3]{% + \if@atdocument + \expandafter\@firstofone + \else + \scr@ifactivelanguageisoneof{#1}{\ifdefined#2\renewcommand*{#2}{#3}\fi}{}% + \expandafter\AtBeginDocument + \fi + {% + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \@for\scr@reserved@a:=\scr@reserved@a\do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at \string\renewcaptionname}% + \else +% \end{macrocode} +% In opposite to \cs{defcaptionname} \meta{language name} has to be defined. +% \begin{macrocode} + \begingroup + \let#2\relax +% \end{macrocode} +% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround} +% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to +% \cs{extras\meta{language}} if only \meta{language} is an redundant language +% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and +% \cs{extras\meta{language}} is defined. But in this case +% \cs{abx@extras@\meta{language}} is not defined. So calling +% \cs{extras\meta{language}} would result in an error. As a workaround for +% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here +% locally. +% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround} +% Unfortunately some users use \cs{renewcommand} to change a name even if the +% language has not been loaded and the command has not been defined. This +% would result in an error message. So a this point we let \cs{renewcommand} +% be \cs{providecommand}, because we know that currently the command is +% \cs{relax}. +% \begin{macrocode} + \let\renewcommand\providecommand + \expandafter\providecommand\expandafter*% + \csname abx@extras@\scr@reserved@a\endcsname{}% + \csname captions\scr@reserved@a\endcsname + \csname extras\scr@reserved@a\endcsname + \ifx #2\relax + \PackageError{scrbase}{% + `\string#2' not defined at language `\scr@reserved@a'% + }{% + You've told me to redefine `\string#2' at language + `\scr@reserved@a',\MessageBreak + but is hasn't been defined before.\MessageBreak + Nevertheless, if you'll continue I'll define it at + `\expandafter\string\csname extras\scr@reserved@a\endcsname'% + }% + \fi + \endgroup + \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname extras\scr@reserved@a\endcsname{% + \def#2{#3}% + }% + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + \fi + }% + \reserved@b + }% +} +% \end{macrocode} +% \end{macro}^^A \scr@renew@scaptionname +% \begin{macro}{\scr@renew@captionname} +% \changes{v3.12}{2013/07/30}{added} +% \changes{v3.26}{2018/08/29}{decreased number of \cs{expandafter}} +% \changes{v3.27}{2019/07/10}{immediate activation from within document +% preamble} +% \changes{v3.27a}{2019/10/13}{immediate activation only for already existing +% terms} +% The non-star variant of \cs{renewcaptionname} with the same arguments. +% \begin{macrocode} +\newcommand*{\scr@renew@captionname}[3]{% + \if@atdocument + \expandafter\@firstofone + \else + \scr@ifactivelanguageisoneof{#1}{\ifdefined#2\renewcommand*{#2}{#3}\fi}{}% + \expandafter\AtBeginDocument + \fi + {% + \begingroup + \let\reserved@b\endgroup + \edef\scr@reserved@a{#1}% + \@onelevel@sanitize\scr@reserved@a + \@for\scr@reserved@a:=\scr@reserved@a\do{% + \scr@trim@spaces\scr@reserved@a + \ifx\scr@reserved@a\@empty + \PackageWarning{scrbase}{empty language at \string\renewcaptionname}% + \else +% \end{macrocode} +% In opposite to \cs{defcaptionname} \meta{language name} has to exist. +% \begin{macrocode} + \begingroup + \let#2\relax +% \end{macrocode} +% \changes{v3.27}{2019/05/27}{\pkg{biblatex} workaround} +% Unfortunately, \pkg{biblatex} adds \cs{abx@extras@\meta{language}} to +% \cs{extras\meta{language}} if only \meta{language} is an redundant language +% (see \cs{DeclareRedundantLanguages} in the \pkg{biblatex} manual) and +% \cs{extras\meta{language}} is defined. But in this case +% \cs{abx@extras@\meta{language}} is not defined. So calling +% \cs{extras\meta{language}} would result in an error. As a workaround for +% this issue, make sure, that \cs{abx@extras@\meta{language}} is defined here +% locally. +% \changes{v3.30}{2020/04/13}{\cs{renewcommand} workaround} +% Unfortunately some users use \cs{renewcommand} to change a name even if the +% language has not been loaded and the command has not been defined. This +% would result in an error message. So a this point we let \cs{renewcommand} +% be \cs{providecommand}, because we know that currently the command is +% \cs{relax}. +% \begin{macrocode} + \let\renewcommand\providecommand + \expandafter\providecommand\expandafter*% + \csname abx@extras@\scr@reserved@a\endcsname{}% + \csname extras\scr@reserved@a\endcsname + \ifx #2\relax + \csname captions\scr@reserved@a\endcsname + \ifx #2\relax + \PackageError{scrbase}{% + `\string#2' not defined at language `\scr@reserved@a'% + }{% + You've told me to redefine `\string#2' at language + `\scr@reserved@a',\MessageBreak + but it hasn't been defined before.\MessageBreak + Nevertheless, if you'll continue I'll define it at + `\expandafter\string + \csname captions\scr@reserved@a\endcsname'% + }% + \fi + \expandafter\ifx\csname captions\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname captions\scr@reserved@a\endcsname{\def#2{#3}}% + \else + \expandafter\ifx\csname extras\scr@reserved@a\endcsname\relax + \expandafter\expandafter\expandafter\gdef + \else + \expandafter\expandafter\expandafter\g@addto@macro + \fi + \csname extras\scr@reserved@a\endcsname{\def#2{#3}}% + \fi + \endgroup + \scr@def@activateactivelanguageaftergroup{#2}{#3}% + \fi + }% + \reserved@b + }% +} +%</package&base&body> +% \end{macrocode} +% \end{macro}^^A \scr@renew@captionname +% \end{command}^^A \renewcaptionname +% +% +% \subsection{Numerical or textual date within letters} +% For letters \KOMAScript{} provides the option to use either a +% symbolic/texual date or a numerical date. +% +% \begin{option}{numericaldate} +% \changes{v2.8q}{2001/10/07}{added} +% \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} replaced by +% \cs{PackageInfoNoLine}} +% \changes{v3.17}{2015/03/10}{using internal value storage} +% \changes{v3.36}{2022/02/25}{initial storage value fixed} +% The option allows to switch between the original textual date usually +% provided by \pkg{babel} (or another language package) and a numerical date. +% \begin{macro}{\@orgdatefalse,\@orgdatetrue,\if@orgdate} +% The decission is stored in a boolean switch. For compatibility with +% \cls[https://www.ctan.org/pkg/koma-script-obsolete]{scrlettr} we are still +% using \cs{if@orgdate} with inverse meaning. +% \begin{macrocode} +%<*letter&option> +\newif\if@orgdate\@orgdatetrue +% \end{macrocode} +% \end{macro}^^A \@orgdatefalse,\@orgdatetrue,\if@orgdate +% Currently a \cs{KOMA@inverseifkey} does not exist. So we need somemore code +% to define the option. +% \begin{macrocode} +\KOMA@key{numericaldate}[true]{% + \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi + \KOMA@set@ifkey{numericaldate}{@orgdate}{#1}% + \KOMA@kav@replacebool{.% +%<class> \KOMAClassFileName +%<package&letter> scrletter.\scr@pkgextension + }{numericaldate}{@orgdate}% + \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi +} +\KOMA@kav@add{.% +%<class> \KOMAClassFileName +%<package&letter> scrletter.\scr@pkgextension +}{numericaldate}{true} +% \end{macrocode} +% \begin{option}{scrdate,orgdate} +% \changes{v3.01a}{2008/11/21}{deprecated} +% \begin{macrocode} +\KOMA@DeclareDeprecatedOption{scrdate}{numericaldate=true} +\KOMA@DeclareDeprecatedOption{orgdate}{numericaldate=false} +%</letter&option> +% \end{macrocode} +% \end{option}^^A scrdate,orgdate +% \end{option}^^A numericaldate +% +% +% \begin{macro}{\g@addnumerical@date} +% We need to redefine the already existing textual date of a language package +% by a numerical one. +% \begin{macrocode} +%<*letter&body> +\newcommand*{\g@addnumerical@date}[2]{% + \@ifundefined{date#1}{% +%<class> \ClassInfo{scrlttr2% +%<package> \PackageInfo{scrletter% + }{% + no date found for language `#1'\MessageBreak + --> skipped% + }% + }{% + \expandafter\g@addto@macro\csname date#1\endcsname{% + \let\sym@date=\today% + \def\num@date{#2}% + \def\today{\if@orgdate\sym@date\else\num@date\fi}% + }% + }% +} +%</letter&body> +% \end{macrocode} +% \end{macro} +% +% +% \subsection{Language dependent terms and dates in letters} +% +% There are also a lot of additional language dependent terms in +% letters. Several languages are supported. +% +% \begin{command}{\captionsenglish,\dateenglish} +% \begin{command}{\captionsUSenglish,\dateUSenglish} +% \begin{command}{\captionsamerican,\dateamerican} +% \changes{v2.4c}{1997/11/25}{american defined identical to USenglish} +% \begin{command}{\captionsbritish,\datebritish} +% \changes{v2.4c}{1997/11/25}{british defined identical to english} +% \begin{command}{\captionsUKenglish,\dateUKenglish} +% \changes{v2.4c}{1997/11/25}{UKenglish defined identical to english} +% \begin{command}{\captionsaustralian,\dateaustralian} +% \changes{v3.13}{2014/03/19}{australian defined identical to english} +% \changes{v3.27}{2019/06/09}{fixed} +% \begin{command}{\captionsnewzealand,\datenewzealand} +% \changes{v3.13}{2014/03/19}{newzealand defined identical to english} +% \begin{command}{\captionscanadian,\datecanadian} +% \changes{v3.13}{2014/03/19}{canadian defined identical to english} +% \begin{command}{\captionsukenglish,\dateukenglish} +% \changes{v3.24}{2017/05/29}{ukenglish defined identical to UKenglish} +% \begin{command}{\captionsusenglish,\dateusenglish} +% \changes{v3.24}{2017/05/29}{usenglish defined identical to USenglish} +% \begin{command}{\captionsgerman,\dategerman} +% \begin{command}{\captionsngerman,\datengerman} +% \changes{v2.5}{1999/09/08}{ngerman added identical togerman} +% \begin{command}{\captionsaustrian,\dateaustrian} +% \begin{command}{\captionsnaustrian,\datenaustrian} +% \changes{v3.09}{2011/03/10}{naustrian added identical toaustrian} +% \begin{command}{\captionsfrench,\datefrench} +% \begin{command}{\captionsitalian,\dateitalian} +% \changes{v2.3e}{1996/05/31}{added} +% \begin{command}{\captionsspanish,\datespanish} +% \changes{v2.4c}{1997/11/25}{added} +% \begin{command}{\captionscroation,\datecroatian} +% \changes{v2.8q}{2001/05/10}{added} +% \begin{command}{\captionsdutch,\datedutch} +% \changes{v2.8q}{2002/02/01}{added} +% \begin{command}{\captionsfinnish,\datefinnish} +% \changes{v2.9u}{2005/02/07}{added} +% \changes{v3.01c}{2008/12/29}{activation fixed} +% \begin{command}{\captionsnorsk,\datenorsk} +% \changes{v3.02}{2009/01/01}{added} +% \begin{command}{\captionsswedish,\dateswedish} +% \changes{v3.08}{2011/01/20}{added (Benjamin Hell)} +% \begin{command}{\captionspolish,\datepolish} +% \changes{v3.13}{2014/02/01}{added (Blandyna Bogdol)} +% \begin{command}{\captionsczech,\dateczech} +% \changes{v3.13}{2014/02/10}{added (Elke Schubert)} +% \begin{command}{\dateslovak} +% \changes{v3.13}{2014/02/28}{added (Elke Schubert)} +% Because of problems with early versions of the code, we use +% \cs{AtBeginDocument} and \cs{providecaptionname} to define the terms and +% dates as late as possible. So users can define them in the document preamble +% differently. A list of all languages (but not the dialects) can be found in +% \autoref{tab:letterlanguages}. +% \begin{table} +% \begin{minipage}{\textwidth} +% \centering +% \begin{tabular}{ll} +% Language & Contributor \\\hline\\[-1.6ex] +% German & Frank Neukam, Markus Kohm \\ +% English & Frank Neukam, Michael Dewey, Markus Kohm \\ +% Finnish & Hannu Väisänen \\ +% French & Frank Neukam, Henk Jongbloets \\ +% Dutch & Henk Jongbloets \\ +% Italian & Simone Naldi \\ +% Croatian & Branka Lon\v{c}arevi\'{c} \\ +% Norsk & Sveinung Heggen \\ +% Polish & Blandyna Bogdol \\ +% Swedish & Benjamin Hell\\ +% Spanish & Ralph J.\ Hangleiter, Alejandro L\'opez-Valencia\\ +% Czech & Elke Schubert\\ +% (Slovak)\footnotemark & Elke Schubert\\ +% \end{tabular}% +% \stepcounter{mpfootnote}\renewcommand*{\thempfootnote}{\arabic{mpfootnote}}% +% \footnotetext{Note: Slovak is only partially supported: The date +% exists but the language terms are still missing.} +% \caption{List of supported languages (but not the dialects) and the +% contributors} +% \label{tab:letterlanguages} +% \end{minipage} +% \end{table} +% English is a special case. We try to define it always also as a fallback. +% \begin{macrocode} +%<*letter&body> +\AtBeginDocument{% + \@ifundefined{captionsenglish}{\let\captionsenglish\@empty}{}% + \@ifundefined{dateenglish}{\def\dateenglish{% +%</letter&body> +% \end{macrocode} +% Defining the textual English \cs{today} it the only thing, that has do be +% done for all classes and also the \pkg*{scrletter} package. +% \begin{macrocode} +%<*(letter|class)&body> + \def\today{\ifcase\month\or + January\or February\or March\or April\or May\or June\or + July\or August\or September\or October\or November\or December\fi + \space\number\day, \number\year}% +%</(letter|class)&body> +%<*letter&body> + }% + }{}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\yourrefname{Your ref.}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\yourmailname{Your letter of}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\myrefname{Our ref.}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\customername{Customer no.}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\invoicename{Invoice no.}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\subjectname{Subject}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\ccname{cc}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\enclname{encl}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\headtoname{To}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\headfromname{From}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\datename{Date}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\pagename{Page}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\phonename{Phone}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\mobilephonename{Mobile phone}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\faxname{Fax}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\emailname{Email}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\wwwname{Url}% + \providecaptionname{american,australian,british,canadian,% + english,newzealand,% + UKenglish,ukenglish,USenglish,usenglish}\bankname{Bank account}% + \g@addnumerical@date{american}{\number\month/\number\day/\number\year}% + \g@addnumerical@date{australian}{\number\day/\number\month/\number\year}% + \g@addnumerical@date{british}{\number\day/\number\month/\number\year}% + \g@addnumerical@date{canadian}{\number\year/\number\month/\number\day}% + \g@addnumerical@date{english}{\number\day/\number\month/\number\year}% + \g@addnumerical@date{newzealand}{\number\day/\number\month/\number\year}% + \g@addnumerical@date{UKenglish}{\number\day/\number\month/\number\year}% + \g@addnumerical@date{ukenglish}{\number\day/\number\month/\number\year}% + \g@addnumerical@date{USenglish}{\number\month/\number\day/\number\year}% + \g@addnumerical@date{usenglish}{\number\month/\number\day/\number\year}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\yourrefname{Ihr Zeichen}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\yourmailname{Ihr Schreiben vom}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\myrefname{Unser Zeichen}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\customername{Kundennummer}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\invoicename{Rechnungsnummer}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\subjectname{Betrifft}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\ccname{Kopien an}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\enclname{Anlage}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\headtoname{An}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\headfromname{Von}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\datename{Datum}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\pagename{Seite}% + \providecaptionname{german}\phonename{Telephon}% + \providecaptionname{ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\phonename{Telefon}% + \providecaptionname{german}\mobilephonename{Mobiltelephon}% + \providecaptionname{ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\mobilephonename{Mobiltelefon}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\faxname{Fax}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\emailname{E-Mail}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\wwwname{URL}% + \providecaptionname{german,ngerman,austrian,naustrian,% + swissgerman,nswissgerman}\bankname{Bankverbindung}% + \g@addnumerical@date{german}{\number\day.\,\number\month.\,\number\year}% + \g@addnumerical@date{ngerman}{\number\day.\,\number\month.\,\number\year}% + \g@addnumerical@date{austrian}{\number\day.\,\number\month.\,\number\year}% + \g@addnumerical@date{naustrian}{\number\day.\,\number\month.\,\number\year}% + \g@addnumerical@date{swissgerman}{\number\day.\,\number\month.\,\number\year}% + \g@addnumerical@date{nswissgerman}{% + \number\day.\,\number\month.\,\number\year}% + \providecaptionname{% + acadian,canadien,francais,french}\yourrefname{Vos r\'ef\'erences}% + \providecaptionname{% + acadian,canadien,francais,french}\yourmailname{Votre lettre du}% + \providecaptionname{% + acadian,canadien,francais,french}\myrefname{Nos r\'ef\'erences}% + \providecaptionname{% + acadian,canadien,francais,french}\customername{Num\'ero de client}% + \providecaptionname{% + acadian,canadien,francais,french}\invoicename{Num\'ero de facture}% + \providecaptionname{% + acadian,canadien,francais,french}\subjectname{Concernant}% + \providecaptionname{% + acadian,canadien,francais,french}\ccname{Copie \`a}% + \providecaptionname{% + acadian,canadien,francais,french}\enclname{Annexes}% + \providecaptionname{% + acadian,canadien,francais,french}\headtoname{A}% + \providecaptionname{% + acadian,canadien,francais,french}\headfromname{De}% + \providecaptionname{% + acadian,canadien,francais,french}\datename{Date}% + \providecaptionname{% + acadian,canadien,francais,french}\pagename{Page}% + \providecaptionname{% + acadian,canadien,francais,french}\phonename{T\'el\'ephone}% + \providecaptionname{% + acadian,canadien,francais,french}\mobilephonename{Portable}% + \providecaptionname{% + acadian,canadien,francais,french}\faxname{T\'el\'efax}% + \providecaptionname{% + acadian,canadien,francais,french}\emailname{E-mail}% + \providecaptionname{% + acadian,canadien,francais,french}\wwwname{URL}% + \providecaptionname{% + acadian,canadien,francais,french}\bankname{Compte en banque}% + \g@addnumerical@date{acadian}{\number\day.\,\number\month.\,\number\year}% + \g@addnumerical@date{canadien}{\number\year/\number\month/\number\day}% + \g@addnumerical@date{francais}{\number\day.\,\number\month.\,\number\year}% + \g@addnumerical@date{french}{\number\day.\,\number\month.\,\number\year}% + \providecaptionname{italian}\yourrefname{Vs./Rif.}% or Vostro Riferimento + \providecaptionname{italian}\yourmailname{Vs.~lettera del}% or Vostra + % lettera del + \providecaptionname{italian}\myrefname{Ns./Rif.}% or Nostro Riferimento + \providecaptionname{italian}\customername{Nr.~cliente}% or Cliente num. + \providecaptionname{italian}\invoicename{Nr.~fattura}% or Fattura num. + \providecaptionname{italian}\subjectname{Oggetto}% + \providecaptionname{italian}\ccname{Per conoscenza}% or Copia a + \providecaptionname{italian}\enclname{Allegato}% or (plural) Allegati + \providecaptionname{italian}\headtoname{A}% + \providecaptionname{italian}\headfromname{Da}% + \providecaptionname{italian}\datename{Data}% + \providecaptionname{italian}\pagename{Pagina}% + \providecaptionname{italian}\phonename{Telefono}% + \providecaptionname{italian}\mobilephonename{Telefonino}% + \providecaptionname{italian}\faxname{Fax}% + \providecaptionname{italian}\emailname{Email}% + \providecaptionname{italian}\wwwname{Sito Web}% + \providecaptionname{italian}\bankname{Conto bancario}% + \g@addnumerical@date{italian}{\number\day.\,\number\month.\,\number\year}% + \providecaptionname{spanish}\yourrefname{Su ref.}% + \providecaptionname{spanish}\yourmailname{Su carta de}% + \providecaptionname{spanish}\myrefname{Nuestra ref.}% + \providecaptionname{spanish}\customername{No. de cliente}% + \providecaptionname{spanish}\invoicename{No. de factura}% + \providecaptionname{spanish}\subjectname{Asunto}% + \providecaptionname{spanish}\ccname{Copias}% + \providecaptionname{spanish}\enclname{Adjunto}% + \providecaptionname{spanish}\headtoname{A}% + \providecaptionname{spanish}\headfromname{De}% + \providecaptionname{spanish}\datename{Fecha}% + \providecaptionname{spanish}\pagename{P\'agina}% + \providecaptionname{spanish}\phonename{Tel\'efono}% + \providecaptionname{spanish}\mobilephonename{M\'ovil}% + \providecaptionname{spanish}\faxname{Fax}% + \providecaptionname{spanish}\emailname{Email}% or Correo electr\'onico + \providecaptionname{spanish}\wwwname{URL}% or P\`agina web + \providecaptionname{spanish}\bankname{Cuenta bancaria}% + \g@addnumerical@date{spanish}{\number\day.\,\number\month.\,\number\year}% + \providecaptionname{croatian}\yourrefname{Va\v{s} znak}% + \providecaptionname{croatian}\yourmailname{Va\v{s}e pismo od}% + \providecaptionname{croatian}\myrefname{Na\v{s} znak}% + \providecaptionname{croatian}\customername{Broj kupca}% + \providecaptionname{croatian}\invoicename{Broj fakture}% + \providecaptionname{croatian}\subjectname{Predmet}% + \providecaptionname{croatian}\ccname{Kopija}% + \providecaptionname{croatian}\enclname{Privitak}% + \providecaptionname{croatian}\headtoname{Prima}% + \providecaptionname{croatian}\headfromname{\v{S}alje}% + \providecaptionname{croatian}\datename{Nadnevak}% + \providecaptionname{croatian}\pagename{Stranica}% + \providecaptionname{croatian}\phonename{Telefon}% + \providecaptionname{croatian}\mobilphonename{Mobitel}% + \providecaptionname{croatian}\faxname{Fax}% + \providecaptionname{croatian}\emailname{E-Mail}% + \providecaptionname{croatian}\wwwname{URL}% + \providecaptionname{croatian}\bankname{Bankovna veza}% + \g@addnumerical@date{croatian}{\number\day.\,\number\month.\,\number\year.}% + \providecaptionname{dutch}\yourrefname{Uw kenmerk}% + \providecaptionname{dutch}\yourmailname{Uw brief van}% + \providecaptionname{dutch}\myrefname{Ons kenmerk}% + \providecaptionname{dutch}\customername{Klant No.}% + \providecaptionname{dutch}\invoicename{Rekening No.}% + \providecaptionname{dutch}\subjectname{Onderwerp}% + \providecaptionname{dutch}\ccname{Kopie aan}% + \providecaptionname{dutch}\enclname{Bijlage(n)}% + \providecaptionname{dutch}\headtoname{Aan}% + \providecaptionname{dutch}\headfromname{Van}% + \providecaptionname{dutch}\datename{Datum}% + \providecaptionname{dutch}\pagename{Pagina}% + \providecaptionname{dutch}\phonename{Telefoon}% + \providecaptionname{dutch}\mobilephonename{Mobieltje}% + \providecaptionname{dutch}\faxname{Fax}% + \providecaptionname{dutch}\emailname{E--mail}% + \providecaptionname{dutch}\wwwname{URL}% + \providecaptionname{dutch}\bankname{Bankrekening}% + \g@addnumerical@date{dutch}{\number\day.\,\number\month.\,\number\year}% + \providecaptionname{finnish}\yourrefname{Viitteenne}% + \providecaptionname{finnish}\yourmailname{Kirjeenne}% + \providecaptionname{finnish}\myrefname{Viitteemme}% + \providecaptionname{finnish}\customername{Asiakasnumero}% + \providecaptionname{finnish}\invoicename{Laskun numero}% + \providecaptionname{finnish}\subjectname{Asia}% + \providecaptionname{finnish}\ccname{Jakelu}% + \providecaptionname{finnish}\enclname{Liitteet}% + \providecaptionname{finnish}\headtoname{Vastaanottaja}% + \providecaptionname{finnish}\headfromname{L\"ahett\"aj\"a}% + \providecaptionname{finnish}\datename{P\"aiv\"a}% + \providecaptionname{finnish}\pagename{Sivu}% + \providecaptionname{finnish}\phonename{Puhelin}% + \providecaptionname{finnish}\mobilephonename{Matkapuhelin}% + \providecaptionname{finnish}\faxname{Faksi}% + \providecaptionname{finnish}\emailname{S\"ahk\"oposti}% + \providecaptionname{finnish}\wwwname{URL}% + \providecaptionname{finnish}\bankname{Pankkitilin numero}% + \g@addnumerical@date{finnish}{\number\day.\number\month.\number\year}% + \providecaptionname{norsk}\yourrefname{Deres ref.}% + \providecaptionname{norsk}\yourmailname{Deres brev av:}% + \providecaptionname{norsk}\myrefname{V\aa{}r ref:}% + \providecaptionname{norsk}\customername{Kundenummer}% + \providecaptionname{norsk}\invoicename{Fakturanummer}% + \providecaptionname{norsk}\subjectname{Emne}% + \providecaptionname{norsk}\ccname{Kopi til}% + \providecaptionname{norsk}\enclname{Vedlegg}% + \providecaptionname{norsk}\headtoname{Til}% + \providecaptionname{norsk}\headfromname{Fra}% + \providecaptionname{norsk}\datename{Dato}% + \providecaptionname{norsk}\pagename{Side}% + \providecaptionname{norsk}\phonename{Telefon}% + \providecaptionname{norsk}\mobilephonename{Mobiltelefon}% + \providecaptionname{norsk}\faxname{Telefaks}% + \providecaptionname{norsk}\emailname{E-post}% + \providecaptionname{norsk}\wwwname{Url}% + \providecaptionname{norsk}\bankname{Bankkontonummer}% + \g@addnumerical@date{norsk}{\number\day.\number\month.\number\year}% + \providecaptionname{swedish}\yourrefname{Er ref}% + \providecaptionname{swedish}\yourmailname{Ert brev av}% + \providecaptionname{swedish}\myrefname{V\aa{}r ref}% + \providecaptionname{swedish}\customername{Kundnummer}% + \providecaptionname{swedish}\invoicename{Fakturanummer}% + \providecaptionname{swedish}\subjectname{\"Amne}% +% \end{macrocode} +% ``Kopia'' or ``Kopia till''? Both would be possible. Because of using the +% long form in German, we use it in Swedish too. +% \begin{macrocode} + \providecaptionname{swedish}\ccname{Kopia till}% +% \end{macrocode} +% ``Bilaga'' would be singular. For several enclosures we need +% ``Bilagor''. We've decided to use the plural. +% \begin{macrocode} + \providecaptionname{swedish}\enclname{Bilagor}% Singular: Bilaga + \providecaptionname{swedish}\headtoname{Till}% + \providecaptionname{swedish}\headfromname{Fr\aa{}n}% + \providecaptionname{swedish}\datename{Datum}% + \providecaptionname{swedish}\pagename{Sida}% + \providecaptionname{swedish}\phonename{Telefon}% + \providecaptionname{swedish}\mobilephonename{Mobiltelefon}% + \providecaptionname{swedish}\faxname{Telefax}% + \providecaptionname{swedish}\emailname{E-post}% + \providecaptionname{swedish}\wwwname{Hemsida}% +% \end{macrocode} +% There are two usual terms for banking account, either ``Bankgiro'' or +% ``PlusGiro''. It's hard to say which one is more usual. +% \begin{macrocode} + \providecaptionname{swedish}\bankname{Bankgiro}% PlusGiro +% \end{macrocode} +% We use the traditional date ``18/1 2011'' instead of the also common ISO +% date. +% \begin{macrocode} + \g@addnumerical@date{swedish}{\number\day/\number\month~\number\year}% + \providecaptionname{polish}\yourrefname{Wasz znak}% + \providecaptionname{polish}\yourmailname{Wasze pismo z dnia}% + \providecaptionname{polish}\myrefname{Nasz znak}% + \providecaptionname{polish}\customername{Numer klienta}% + \providecaptionname{polish}\invoicename{Numer rachunku}% + \providecaptionname{polish}\subjectname{Dotyczy}% + \providecaptionname{polish}\ccname{Rozdzielnik}% + \providecaptionname{polish}\enclname{Za\l\aob{}czniki}% + \providecaptionname{polish}\headtoname{Do}% + \providecaptionname{polish}\headfromname{Od}% + \providecaptionname{polish}\datename{Data}% + \providecaptionname{polish}\pagename{Strona}% + \providecaptionname{polish}\phonename{Telefon}% + \providecaptionname{polish}\mobilephonename{Numer mobilny}% + \providecaptionname{polish}\faxname{Fax}% + \providecaptionname{polish}\emailname{E-mail}% + \providecaptionname{polish}\wwwname{URL}% + \providecaptionname{polish}\bankname{Konto}% + \g@addnumerical@date{polish}{\number\day.\,\number\month.\,\number\year}% + \providecaptionname{czech}\yourrefname{Va\v{s}e zna\v{c}ka}% + \providecaptionname{czech}\yourmailname{V\'{a}\v{s} dopis ze dne}% + \providecaptionname{czech}\myrefname{Na\v{s}e zna\v{c}ka}% + \providecaptionname{czech}\customername{Z\'akaznick\'e \v{c}\'{\i}slo}% + \providecaptionname{czech}\invoicename{Fakura\v{c}n\'{\i} \v{c}\'{\i}slo}% + \providecaptionname{czech}\subjectname{Pr\v{e}dm\v{e}t}% + \providecaptionname{czech}\ccname{Kopie}% + \providecaptionname{czech}\enclname{P\v{r}\'{\i}loha}% + \providecaptionname{czech}\headtoname{Komu}% + \providecaptionname{czech}\headfromname{Od}% + \providecaptionname{czech}\datename{Datum}% + \providecaptionname{czech}\pagename{Strana}% + \providecaptionname{czech}\phonename{Telefon}% + \providecaptionname{czech}\mobilephonename{Mobil}% + \providecaptionname{czech}\faxname{Fax}% + \providecaptionname{czech}\emailname{E-Mail}% + \providecaptionname{czech}\wwwname{URL}% + \providecaptionname{czech}\bankname{Bankovn\'{\i} spojen\'{\i}}% + \g@addnumerical@date{czech}{\number\day.\,\number\month.\,\number\year}% + \providecaptionname{slovak}\yourrefname{Va\v{s}a zna\v{c}ka}% + \providecaptionname{slovak}\yourmailname{V\'{a}\v{s} list zo d\v{n}a}% + \providecaptionname{slovak}\myrefname{Na\v{s}a zna\v{c}ka}% + \providecaptionname{slovak}\customername{Z\'akazn\'{\i}cke \v{c}\'{\i}slo}% + \providecaptionname{slovak}\invoicename{\'{C}\'{\i}slo fakt\'ury}% + \providecaptionname{slovak}\subjectname{Predmet}% + \providecaptionname{slovak}\ccname{K\'{o}pia pre koho}% + \providecaptionname{slovak}\enclname{Pr\'{\i}loha}% + \providecaptionname{slovak}\headtoname{Komu}% + \providecaptionname{slovak}\headfromname{Od}% + \providecaptionname{slovak}\datename{D\'{a}tum}% + \providecaptionname{slovak}\pagename{Strana}% + \providecaptionname{slovak}\phonename{Telef\'{o}n}% + \providecaptionname{slovak}\mobilephonename{Mobil}% + \providecaptionname{slovak}\faxname{Fax}% + \providecaptionname{slovak}\emailname{E-Mail}% + \providecaptionname{slovak}\wwwname{URL}% + \providecaptionname{slovak}\bankname{Bankov\'{e} spojenie}% + \g@addnumerical@date{slovak}{\number\day.\,\number\month.\,\number\year}% +% \end{macrocode} +% Last but not least the activation has to be done. +% \changes{v2.2c}{1995/03/20}{missing \texttt{\quotechar=} added after +% \cs{language}} +% \changes{v2.5b}{2000/01/20}{language reactivation by \cs{languagename} if +% possible} +% \changes{v2.5e}{2000/07/14}{workaround for language \texttt{nohyphenation}} +% First of all we activate English as fallback. +% \begin{macrocode} + \captionsenglish + \dateenglish +% \end{macrocode} +% \changes{v2.9i}{2002/09/04}{workaround for \file{hyphen.cfg} bug of +% \pkg{babel}} +% \changes{v2.97c}{2007/08/10}{warning message changed} +% \changes{v3.18a}{2015/07/03}{execution \cs{extras\dots}} +% \changes{v3.18a}{2015/07/03}{using \cs{@nameuse}} +% If the \file{hyphen.cfg} of \pkg{babel} is used, but \pkg{babel} has not +% been loaded, \cs{languagename} can be incorrect (depending on the +% \pkg{babel} version used to generate the \LaTeX{} format). In this case +% |\selectlanguage{\languagename}| would fail. So we need a workaround. +% \begin{macrocode} + \begingroup\expandafter\expandafter\expandafter\endgroup + \expandafter\ifx\csname date\languagename\endcsname\relax +%<class> \ClassWarningNoLine{scrlttr2% +%<package> \PackageWarningNoLine{scrletter% + }{% + \string\language\space is \the\language, \string\languagename\space is + `\languagename'\MessageBreak + but \expandafter\string\csname + date\languagename\endcsname\space not defined!\MessageBreak + This seems to be a bug at you're `hyphen.cfg'.\MessageBreak + Undefining macro \string\languagename\space to avoid errors% + }% + \let\languagename=\undefined + \fi + \ifx\languagename\undefined +%<class> \ClassWarningNoLine{scrlttr2% +%<package> \PackageWarningNoLine{scrletter% + }{\string\languagename\space not + defined, using \string\language.\MessageBreak + This may result in use of wrong language!\MessageBreak + You should use a compatible language + package\MessageBreak + (e.g. `Babel', `german', `ngerman', ...)}% + \ifx\l@american\undefined\else\ifnum\language=\l@american + \@nameuse{captionsamerican}% + \@nameuse{extrasamerican}% + \@nameuse{dateamerican}% + \fi\fi + \ifx\l@australian\undefined\else\ifnum\language=\l@australian + \@nameuse{captionsaustralian}% + \@nameuse{extrasaustralian}% + \@nameuse{dateaustralian}% + \fi\fi + \ifx\l@british\undefined\else\ifnum\language=\l@british + \@nameuse{captionsbritish}% + \@nameuse{extrasbritish}% + \@nameuse{datebritish}% + \fi\fi + \ifx\l@canadian\undefined\else\ifnum\language=\l@canadian + \@nameuse{captionscanadian}% + \@nameuse{extrascanadian}% + \@nameuse{datecanadian}% + \fi\fi + \ifx\l@newzealand\undefined\else\ifnum\language=\l@newzealand + \@nameuse{captionsnewzealand}% + \@nameuse{extrasnewzealand}% + \@nameuse{datenewzealand}% + \fi\fi + \ifx\l@UKenglish\undefined\else\ifnum\language=\l@UKenglish + \@nameuse{captionsUKenglish}% + \@nameuse{extrasUKenglish}% + \@nameuse{dateUKenglish}% + \fi\fi + \ifx\l@ukenglish\undefined\else\ifnum\language=\l@ukenglish + \@nameuse{captionsukenglish}% + \@nameuse{extrasukenglish}% + \@nameuse{dateukenglish}% + \fi\fi + \ifx\l@USenglish\undefined\else\ifnum\language=\l@USenglish + \@nameuse{captionsUSenglish}% + \@nameuse{extrasUSenglish}% + \@nameuse{dateUSenglish}% + \fi\fi + \ifx\l@usenglish\undefined\else\ifnum\language=\l@usenglish + \@nameuse{captionsusenglish}% + \@nameuse{extrasusenglish}% + \@nameuse{dateusenglish}% + \fi\fi + \ifx\l@austrian\undefined\else\ifnum\language=\l@austrian + \@nameuse{captionsaustrian}% + \@nameuse{extrasaustrian}% + \@nameuse{dateaustrian}% + \fi\fi + \ifx\l@naustrian\undefined\else\ifnum\language=\l@naustrian + \@nameuse{captionsnaustrian}% + \@nameuse{extrasnaustrian}% + \@nameuse{datenaustrian}% + \fi\fi + \ifx\l@german\undefined\else\ifnum\language=\l@german + \@nameuse{captionsgerman}% + \@nameuse{extrasgerman}% + \@nameuse{dategerman}% + \fi\fi + \ifx\l@ngerman\undefined\else\ifnum\language=\l@ngerman + \@nameuse{captionsngerman}% + \@nameuse{extrasngerman}% + \@nameuse{datengerman}% + \fi\fi + \ifx\l@swissgerman\undefined\else\ifnum\language=\l@swissgerman + \@nameuse{captionsswissgerman}% + \@nameuse{extrasswissgerman}% + \@nameuse{dateswissgerman}% + \fi\fi + \ifx\l@nswissgerman\undefined\else\ifnum\language=\l@nswissgerman + \@nameuse{captionsnswissgerman}% + \@nameuse{extrasnswissgerman}% + \@nameuse{datenswissgerman}% + \fi\fi + \ifx\l@acadian\undefined\else\ifnum\language=\l@acadian + \@nameuse{captionsacadian}% + \@nameuse{extrasacadian}% + \@nameuse{dateacadian}% + \fi\fi + \ifx\l@canadien\undefined\else\ifnum\language=\l@canadien + \@nameuse{captionscanadien}% + \@nameuse{extrascanadien}% + \@nameuse{datecanadien}% + \fi\fi + \ifx\l@francais\undefined\else\ifnum\language=\l@francais + \@nameuse{captionsfrancais}% + \@nameuse{extrasfrancais}% + \@nameuse{datefrancais}% + \fi\fi + \ifx\l@french\undefined\else\ifnum\language=\l@french + \@nameuse{captionsfrench}% + \@nameuse{extrasfrench}% + \@nameuse{datefrench}% + \fi\fi + \ifx\l@italian\undefined\else\ifnum\language=\l@italian + \@nameuse{captionsitalian}% + \@nameuse{extrasitalian}% + \@nameuse{dateitalian}% + \fi\fi + \ifx\l@spanish\undefined\else\ifnum\language=\l@spanish + \@nameuse{captionsspanish}% + \@nameuse{extrasspanish}% + \@nameuse{datespanish}% + \fi\fi + \ifx\l@croatian\undefined\else\ifnum\language=\l@croatian + \@nameuse{captionscroatian}% + \@nameuse{extrascroatian}% + \@nameuse{datecroatian}% + \fi\fi + \ifx\l@dutch\undefined\else\ifnum\language=\l@dutch + \@nameuse{captionsdutch}% + \@nameuse{extrasdutch}% + \@nameuse{datedutch}% + \fi\fi + \ifx\l@finnish\undefined\else\ifnum\language=\l@finnish + \@nameuse{captionsfinnish}% + \@nameuse{extrasfinnish}% + \@nameuse{datefinnish}% + \fi\fi + \ifx\l@norsk\undefined\else\ifnum\language=\l@norsk + \@nameuse{captionsnorsk}% + \@nameuse{extrasnorsk}% + \@nameuse{datenorsk}% + \fi\fi + \ifx\l@swedish\undefined\else\ifnum\language=\l@swedish + \@nameuse{captionsswedish}% + \@nameuse{extrasswedish}% + \@nameuse{dateswedish}% + \fi\fi + \ifx\l@polish\undefined\else\ifnum\language=\l@polish + \@nameuse{captionspolish}% + \@nameuse{extraspolish}% + \@nameuse{datepolish}% + \fi\fi + \ifx\l@czech\undefined\else\ifnum\language=\l@czech + \@nameuse{captionsczech}% + \@nameuse{extrasczech}% + \@nameuse{dateczech}% + \fi\fi + \ifx\l@slovak\undefined\else\ifnum\language=\l@slovak + \@nameuse{captionsslovak}% + \@nameuse{extrasslovak}% + \@nameuse{dateslovak}% + \fi\fi + \else + \edef\@tempa{nohyphenation}% + \ifx\languagename\@tempa +%<class> \ClassWarningNoLine{scrlttr2% +%<package> \PackageWarningNoLine{scrletter% + }{% + You've selected language `\languagename'.\MessageBreak + Maybe your LaTeX format contains Babel extension\MessageBreak + but you have not selected a language using\MessageBreak + Babel package.\MessageBreak + Please select another language!\MessageBreak + Only as a workaround english captions and date\MessageBreak + will be used% + }% + \else +%<class> \ClassInfo{scrlttr2% +%<package> \PackageInfo{scrletter% + }{% + trying to activate captions and date\MessageBreak + of language `\languagename'% + }% +% \end{macrocode} +% \changes{v3.12}{2012/12/28}{workaround for changed \file{hyphen.cfg} in +% \pkg{babel}} +% Unfortunately the workaround does not work any longer after a change of +% \file{hyphen.cfg} in \pkg{babel}. So we need another workaround. +% \begin{macrocode} + \csname date\languagename\endcsname + \csname captions\languagename\endcsname +%<class> \ClassInfo{scrlttr2% +%<package> \PackageInfo{scrletter% + }{% + used language is `\languagename'.\MessageBreak + Supported languages are: `english', `UKenglish',\MessageBreak + `ukenglish', `british', `american', `USenglish',\MessageBreak + `usenglish', `australian`,`canadian', `newzealand',\MessageBreak + `german', `ngerman', `austrian', `naustrian',\MessageBreak + `swissgerman', `nswissgermsn',\MessageBreak + `acadian', `canadien', `francais', `french', \MessageBreak + `dutch', `italian', `spanish', `polish',\MessageBreak + `croatian', `finnish', `norsk', `swedish',\MessageBreak + `czech', `slovak'% + }% + \fi + \fi +} +%</letter&body> +% \end{macrocode} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% \end{command} +% +% +% \Finale +% \PrintChanges +% +\endinput +% Local Variables: +% mode: doctex +% ispell-local-dictionary: "en_US" +% eval: (flyspell-mode 1) +% TeX-master: t +% TeX-engine: luatex-dev +% eval: (setcar (or (cl-member "Index" (setq-local TeX-command-list (copy-alist TeX-command-list)) :key #'car :test #'string-equal) (setq-local TeX-command-list (cons nil TeX-command-list))) '("Index" "mkindex %s" TeX-run-index nil t :help "makeindex for dtx")) +% End: |