% \CheckSum{2080} % \iffalse meta-comment % ====================================================================== % scrkernel-language.dtx % Copyright (c) Markus Kohm, 2002-2016 % % 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.txt. % ---------------------------------------------------------------------- % scrkernel-language.dtx % 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. % Die neuste Version dieser Lizenz ist % http://www.latex-project.org/lppl.txt % und Version 1.3c ist Teil aller Verteilungen von LaTeX % Version 2005/12/01 oder spaeter und dieses Werks. % % Dieses Werk hat den LPPL-Verwaltungs-Status "author-maintained" % (allein durch den Autor verwaltet). % % Der Aktuelle Verwalter und Autor dieses Werkes ist Markus Kohm. % % Dieses Werk besteht aus den in manifest.txt aufgefuehrten Dateien. % ====================================================================== % \fi % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % \iffalse %%% 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: 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{% \noexpand\endgroup \noexpand\ProvidesFile{scrkernel-language.dtx} [\filedate\space\filerevision\space KOMA-Script (language)]% }% \reserved@a % \iffalse \documentclass[halfparskip-]{scrdoc} \usepackage[english,ngerman]{babel} \usepackage[latin1]{inputenc} \CodelineIndex \RecordChanges \GetFileInfo{scrkernel-language.dtx} \title{\KOMAScript{} \partname\ \texttt{\filename}% \footnote{Dies ist Version \fileversion\ von Datei \texttt{\filename}.}} \date{\filedate} \author{Markus Kohm} \begin{document} \maketitle \tableofcontents \DocInput{\filename} \end{document} % % \fi % % \selectlanguage{ngerman} % % \changes{v2.95}{2002/07/01}{% % erste Version aus der Aufteilung von \texttt{scrclass.dtx}} % % \section{Sprachabhängigkeiten} % % Aus verschiedenen Gründen ist es nicht so einfach, neue, % sprachabhängige Begriffe zu definieren oder vorhandene % umzudefinieren. Mit \KOMAScript{} geht das etwas einfacher. % % % \StopEventually{\PrintIndex\PrintChanges} % % \iffalse %<*option> % \fi % % \subsection{Option} % Für Briefe gibt es die Möglichkeit, zwischen symbolischem und numerischem % Datum umzuschalten. % % \iffalse %<*letter> % \fi % % \begin{option}{numericaldate} % \changes{v2.8q}{2001/10/07}{Neue Option (an Stelle von % \texttt{scrdate} und \texttt{orgdate})}^^A % \changes{v2.97d}{2007/10/03}{\cs{PackageInfo} durch \cs{PackageInfoNoLine} % ersetzt}^^A % \changes{v3.17}{2015/03/10}{Speicherung des aktuellen Werts}^^A % Es kann zwischen dem Originaldatum, das beispielsweise von % \texttt{german.sty} definiert wird, und dem \texttt{scrlttr2}-Datum % gewählt werden. Natürlich gibt es diese Optionen nur bei Briefen. % \begin{macro}{\if@orgdate} % \begin{macro}{\@orgdatetrue} % \begin{macro}{\@orgdatefalse} % Die Einstellung wird in einem Schalter gespeichert. % \begin{macrocode} \newif\if@orgdate\@orgdatetrue % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % Dummerweise besitzt der alte Schalter genau die gegenteilige % Bedeutung der Option, deshalb muss der Schalter zweimal invertiert % werden. % \begin{macrocode} \KOMA@key{numericaldate}[true]{% \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi \KOMA@set@ifkey{numericaldate}{@orgdate}{#1}% \KOMA@kav@replacebool{.% % \KOMAClassFileName % scrletter.\scr@pkgextension }{numericaldate}{@orgdate}% \if@orgdate\@orgdatefalse\else\@orgdatetrue\fi } \KOMA@kav@add{.% % \KOMAClassFileName % scrletter.\scr@pkgextension }{orgdate}{true} % \end{macrocode} % \begin{option}{scrdate} % \changes{v3.01a}{2008/11/21}{deprecated}^^A % \begin{option}{orgdate} % \changes{v3.01a}{2008/11/21}{deprecated}^^A % \begin{macrocode} \KOMA@DeclareDeprecatedOption{scrdate}{numericaldate=true} \KOMA@DeclareDeprecatedOption{orgdate}{numericaldate=false} % \end{macrocode} % \end{option} % \end{option} % \end{option} % % \iffalse % % \fi % % % \iffalse % %<*body> % \fi % % \subsection{Definitionen für sprachabhängige Bezeichner} % % Dieser Teil ist so grundlegend, dass er ab Version~3.00 in das Paket % \textsf{scrbase} ausgelagert wird. % % \iffalse %<*package&base> % \fi % % \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 % die Normalversion \cs{captions\meta{Sprache}} verwendet, außer wenn der % Begriff bereits in \cs{extras\meta{Sprache}} definiert ist. Falls der % Befehl in der Dokumentpräambel aufgerufen wird, wird er verzögert. % \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}{neu (intern)}^^A % Die Sternvariante von \cs{defcaptionname}. Die Argumente sind dieselben. % \begin{macrocode} \newcommand*{\scr@def@scaptionname}[3]{% % \end{macrocode} % Als erstes findet die Verzögerung bis \cs{begin{document}} statt. % \begin{macrocode} \if@atdocument \expandafter\@firstofone \else \expandafter\AtBeginDocument \fi {% % \end{macrocode} % Dann arbeiten wir in einer lokalen Schleife alle Sprachen aus Argument \#1 % ab und \dots % \begin{macrocode} \begingroup \let\reserved@b\endgroup \edef\scr@reserved@a{#1}% \@onelevel@sanitize\scr@reserved@a \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% \scr@reserved@a \do{% % \end{macrocode} % \dots\ fügen dabei \cs{extras\meta{Sprache}} die Definition \#3 für \#2 % hinzu. % \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} % Wenn etwas hinzugefügt wurde, muss außerdem \cs{reserved@b} so umdefiniert % werden, dass dies ggf. auch unmittelbar Geltung bekommt. % \begin{macrocode} \scr@def@activateactivelanguageaftergroup{#2}{#3}% \fi }% \reserved@b }% } % \end{macrocode} % \begin{macro}{\scr@def@activateactivelanguageaftergroup} % \changes{v3.12}{2013/07/30}{neu (intern)}^^A % Wenn die Sprache in \cs{reserved@a} die aktuelle Sprache \cs{languagename} % ist oder die Sprachnummer zur Sprache \cs{reserved@a} die aktuelle % Sprachnummer \cs{language} ist, dann wird \cs{reserved@b} so umdefiniert, % dass es die aktuelle Gruppe beendet und \#1 als \#2 definiert. % \begin{macrocode} \newcommand*{\scr@def@activateactivelanguageaftergroup}[2]{% \@onelevel@sanitize\languagename \@tempswafalse % \typeout{compare `\languagename' and `\scr@reserved@a'}% \ifx\languagename\scr@reserved@a \@tempswatrue \else % \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 }% % \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 \if@tempswa \def\reserved@b{\endgroup \PackageInfo{scrbase}{activating \languagename\space \string#1}% \def#1{#2}% }% \fi } % \end{macrocode} % \end{macro}^^A \scr@def@activateactivelanguageaftergroup % \end{macro}^^A \scr@def@scaptionname % \begin{macro}{\scr@trim@spaces} % \changes{v3.12}{2013/11/06}{neu (intern)}^^A % Diese Hilfsanweisung entfernt führende und abschließende % Leerzeichen. Argument ist die Anweisung, deren Inhalt von den Leerzeichen % befreit werden soll. Gedacht ist das ganze für die Listenverarbeitung. % \begin{macrocode} \newcommand\scr@trim@spaces[1]{% \expandafter\KV@@sp@def\expandafter#1\expandafter{#1}% } % \end{macrocode} % \end{macro}^^A \scr@trim@space % \begin{macro}{\scr@def@captionname} % \changes{v3.12}{2013/07/30}{neu (intern)}^^A % Die Normalvariante von \cs{defcaptionname}, mit denselben Argumenten. % \begin{macrocode} \newcommand*{\scr@def@captionname}[3]{% % \end{macrocode} % Als erstes findet die Verzögerung bis \cs{begin{document}} statt. % \begin{macrocode} \if@atdocument \expandafter\@firstofone \else \expandafter\AtBeginDocument \fi {% % \end{macrocode} % Dann arbeiten wir in einer lokalen Schleife alle Sprachen aus Argument \#1 % ab und \dots % \begin{macrocode} \begingroup \let\reserved@b\endgroup \edef\scr@reserved@a{#1}% \@onelevel@sanitize\scr@reserved@a \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% \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} % \dots\ testen dabei, ob \#2 bereits in \cs{extras\meta{Sprache}} definiert % ist. % \begin{macrocode} \@tempswafalse \begingroup \@tempswafalse \ifcsname extras\scr@reserved@a\endcsname \let#2\relax \csname extras\scr@reserved@a\endcsname \ifx #2\relax \else \aftergroup\@tempswatrue \fi \fi \endgroup % \end{macrocode} % Wenn \#2 bereits in \cs{extras\meta{Sprache}} definiert ist, \dots % \begin{macrocode} \if@tempswa % \end{macrocode} % \dots\ dann definieren wir es genau hier neu, % \begin{macrocode} \expandafter\g@addto@macro\csname extras\scr@reserved@a\endcsname{% \def#2{#3}% }% \else % \end{macrocode} % \dots\ anderenfalls definieren wir es in \cs{captions\meta{Sprache}} neu. % \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} % Wenn etwas hinzugefügt wurde, muss außerdem \cs{reserved@b} so umdefiniert % werden, dass dies ggf. auch unmittelbar Geltung bekommt. % \begin{macrocode} \scr@def@activateactivelanguageaftergroup{#2}{#3}% \fi }% \reserved@b }% } % \end{macrocode} % \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 % ist, wird die Anderung sofort aktiviert.}^^A % \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert % auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.}^^A % \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben}^^A % \changes{v3.01b}{2008/12/07}{missing make undefined}^^A % \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}{% \kernel@ifstar\scr@provide@scaptionname\scr@provide@captionname } % \end{macrocode} % \begin{macro}{\scr@provide@scaptionname} % \changes{v3.12}{2013/07/30}{neu (intern)}^^A % \begin{macrocode} \newcommand*{\scr@provide@scaptionname}[3]{% \if@atdocument \expandafter\@firstofone \else \expandafter\AtBeginDocument \fi {% \begingroup \let\reserved@b\endgroup \edef\scr@reserved@a{#1}% \@onelevel@sanitize\scr@reserved@a \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% \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} % Im Unterschied zu \cs{defcaptionname} wird hier nur etwas zu % \cs{extras\meta{Sprache}} hinzugefügt, wenn das bereits definiert ist, % aber \#2 selbst noch nicht definiert ist. % \begin{macrocode} \begingroup \let#2\relax \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}% % \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}% % \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}{neu (intern)}^^A % Die Normalvariante von \cs{providecaptionname}, mit denselben Argumenten. % \begin{macrocode} \newcommand*{\scr@provide@captionname}[3]{% \if@atdocument \expandafter\@firstofone \else \expandafter\AtBeginDocument \fi {% \begingroup \let\reserved@b\endgroup \edef\scr@reserved@a{#1}% \@onelevel@sanitize\scr@reserved@a \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% \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} % Im Unterschied zu \cs{defcaptionname} wird hier nur etwas zu % \cs{captions\meta{Sprache}} hinzugefügt, wenn das bereits definiert ist, % aber \#2 selbst weder in \cs{extras\meta{Sprache}} noch in % \cs{captions\meta{Sprache}} definiert ist. % \begin{macrocode} \begingroup \let#2\relax \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}% % \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}% % \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{macro}^^A \providecaptionname % % \begin{macro}{\newcaptionname} % \changes{v2.8q}{2001/11/08}{neu}^^A % \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte % ist, wird die Anderung sofort aktiviert.}^^A % \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert % auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.}^^A % \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben}^^A % \changes{v3.01b}{2008/12/07}{missing make undefined}^^A % \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 % nicht, so wird sie definiert. Unter dieser Prämisse verwendet die % Sternversion \cs{extras\meta{Sprache}}, während die Normalversion % \cs{captions\meta{Sprache}} verwendet. % \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}{neu (intern)}^^A % Die Sternvariante von \cs{newcaptionname}. Die Argumente sind dieselben. % \begin{macrocode} \newcommand*{\scr@new@scaptionname}[3]{% \if@atdocument \expandafter\@firstofone \else \expandafter\AtBeginDocument \fi {% \begingroup \let\reserved@b\endgroup \edef\scr@reserved@a{#1}% \@onelevel@sanitize\scr@reserved@a \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% \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} % Im Unterschied zu \cs{defcaptionname} darf der Begriff noch nicht definiert % sein. % \begin{macrocode} \begingroup \let#2\relax \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}{neu (intern)}^^A % Die Normalvariante von \cs{newcaptionname}, mit denselben Argumenten. % \begin{macrocode} \newcommand*{\scr@new@captionname}[3]{% \if@atdocument \expandafter\@firstofone \else \expandafter\AtBeginDocument \fi {% \begingroup \let\reserved@b\endgroup \edef\scr@reserved@a{#1}% \@onelevel@sanitize\scr@reserved@a \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% \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} % Im Unterschied zu \cs{defcaptionname} darf der Begriff noch nicht definiert % sein. % \begin{macrocode} \begingroup \let#2\relax \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{macro}^^A \newcaptionname % % \begin{macro}{\renewcaptionname} % \changes{v2.8q}{2001/11/08}{neu}^^A % \changes{v2.9r}{2004/06/16}{Wenn die aktuelle Sprache, die geänderte % ist, wird die Anderung sofort aktiviert.}^^A % \changes{v2.95}{2006/03/10}{Ermittlung der aktuellen Sprache funktioniert % auch, wenn \cs{languagename} mit seltsamen catcodes erstellt wurde.}^^A % \changes{v3.00}{2008/05/02}{nach \textsf{scrbase} verschoben}^^A % \changes{v3.01b}{2008/12/07}{missing make undefined}^^A % \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, % so wird dieser umdefiniert. Unter dieser Voraussetzung ändert die % Sternvariante immer \cs{extras\meta{Sprache}}, während die Normalvariante % \cs{captions\meta{Sprache}} ändert, falls der Begriff nicht i % \cs{extras\meta{Sprache}} definiert war, und sonst \cs{extras\meta{Sprache}}. % \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}{neu (intern)}^^A % Die Sternvariante von \cs{renewcaptionname}. Die Argumente sind dieselben. % \begin{macrocode} \newcommand*{\scr@renew@scaptionname}[3]{% \if@atdocument \expandafter\@firstofone \else \expandafter\AtBeginDocument \fi {% \begingroup \let\reserved@b\endgroup \edef\scr@reserved@a{#1}% \@onelevel@sanitize\scr@reserved@a \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% \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} % Im Unterschied zu \cs{defcaptionname} muss der Begriff bereits definiert % sein. % \begin{macrocode} \begingroup \let#2\relax \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}{neu (intern)}^^A % Die Normalvariante von \cs{renewcaptionname}, mit denselben Argumenten. % \begin{macrocode} \newcommand*{\scr@renew@captionname}[3]{% \if@atdocument \expandafter\@firstofone \else \expandafter\AtBeginDocument \fi {% \begingroup \let\reserved@b\endgroup \edef\scr@reserved@a{#1}% \@onelevel@sanitize\scr@reserved@a \expandafter\@for \expandafter\scr@reserved@a \expandafter:\expandafter=% \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} % Im Unterschied zu \cs{defcaptionname} muss der Begriff bereits definiert % sein. % \begin{macrocode} \begingroup \let#2\relax \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 }% } % \end{macrocode} % \end{macro}^^A \scr@renew@captionname % \end{macro}^^A \renewcaptionname % % \iffalse % % \fi % % % \subsection{Definitionen für ein nummerisches Datum} % Bei Briefen kann ein nummerisches oder ein symbolisches Datum verwendet % werden. % % \iffalse %<*letter> % \fi % % \begin{macro}{\g@addnumerical@date} % Dazu ist es notwendig, ggf. das bereits definierte symbolische Datum durch % ein nummerisches zu ergänzen. % \begin{macrocode} \newcommand*{\g@addnumerical@date}[2]{% \@ifundefined{date#1}{% % \ClassInfo{scrlttr2% % \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}% }% }% } % \end{macrocode} % \end{macro} % % \iffalse % % \fi % % % \subsection{Festlegungen für einzelne Sprachen} % % Es folgen nun für einzelne Sprachen konkrete Festlegungen, die für Briefe % benötigt werden. % % \iffalse %<*letter> % \fi % % \begin{macro}{\captionsenglish} % \changes{v3.13}{2014/01/07}{diverse neue Dialekte}^^A % \begin{macro}{\dateenglish} % \begin{macro}{\captionsUSenglish} % \begin{macro}{\dateUSenglish} % \begin{macro}{\captionsamerican} % \changes{v2.4c}{1997/11/25}{american identisch mit USenglish definiert} % \begin{macro}{\dateamerican} % \changes{v2.4c}{1997/11/25}{american identisch mit USenglish definiert} % \begin{macro}{\captionsbritish} % \changes{v2.4c}{1997/11/25}{british identisch mit english definiert} % \begin{macro}{\datebritish} % \changes{v2.4c}{1997/11/25}{british identisch mit english definiert} % \begin{macro}{\captionsUKenglish} % \changes{v2.4c}{1997/11/25}{UKenglish identisch mit english definiert} % \begin{macro}{\dateUKenglish} % \changes{v2.4c}{1997/11/25}{UKenglish identisch mit english definiert} % \begin{macro}{\captionsgerman} % \changes{v3.13}{2014/01/07}{neue Dialekte}^^A % \begin{macro}{\dategerman} % \begin{macro}{\captionsngerman} % \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german}^^A % \changes{v3.12a}{2014/03/08}{außer \texttt{german} verwenden alle % deutschen Sprachen »Telefon«}^^A % \begin{macro}{\datengerman} % \changes{v2.5}{1999/09/08}{ngerman neu und identisch mit german}^^A % \begin{macro}{\captionsaustrian} % \begin{macro}{\dateaustrian} % \begin{macro}{\captionsnaustrian} % \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian}^^A % \begin{macro}{\datenaustrian} % \changes{v3.09}{2011/03/10}{naustrian neu und identisch mit austrian}^^A % \begin{macro}{\captionsfrench} % \changes{v3.13}{2014/01/07}{diverse neue Dialekte}^^A % \begin{macro}{\datefrench} % \begin{macro}{\captionsitalian} % \begin{macro}{\dateitalian} % \changes{v2.3e}{1996/05/31}{Ich hoffe, dass das stimmt}^^A % \begin{macro}{\captionsspanish} % \begin{macro}{\datespanish} % \changes{v2.4c}{1997/11/25}{Ich hoffe, dass das stimmt}^^A % \changes{v2.4c}{1997/11/25}{Datumsumschaltung nicht mehr zwingend} % \begin{macro}{\captionscroation} % \changes{v2.8q}{2001/05/10}{Neu}^^A % \begin{macro}{\datecroatian} % \changes{v2.8q}{2001/05/10}{Neu}^^A % \begin{macro}{\captionsdutch} % \changes{v2.8q}{2002/02/01}{Neu}^^A % \begin{macro}{\datedutch} % \changes{v2.8q}{2002/02/01}{Neu}^^A % \begin{macro}{\captionsfinnish} % \changes{v2.9u}{2005/02/07}{Unterstützung für Finnisch (Dank Hannu % Väisänen)}^^A % \changes{v2.9u}{2005/02/07}{Neu}^^A % \begin{macro}{\datefinnish} % \changes{v2.9u}{2005/02/07}{Neu}^^A % \changes{v3.01c}{2008/12/29}{Aktivierung korrigiert}^^A % \begin{macro}{\captionsnorsk} % \changes{v3.02}{2009/01/01}{Neu}^^A % \begin{macro}{\datenorsk} % \changes{v3.02}{2009/01/01}{Neu}^^A % \begin{macro}{\captionsnorsk} % \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)}^^A % \begin{macro}{\datenorsk} % \changes{v3.08}{2011/01/20}{Neu (Dank Benjamin Hell)}^^A % \begin{macro}{\captionspolish} % \changes{v3.13}{2014/02/01}{Neu (Dank Blandyna Bogdol)}^^A % \begin{macro}{\datepolish} % \changes{v3.13}{2014/02/01}{Neu (Dank Blandyna Bogdol)}^^A % \begin{macro}{\captionsczech} % \changes{v3.13}{2014/02/10}{Neu (Dank Elke Schubert)}^^A % \begin{macro}{\dateczech} % \changes{v3.13}{2014/02/10}{Neu (Dank Elke Schubert)}^^A % \begin{macro}{\dateslovak} % \changes{v3.13}{2014/02/28}{Neu (Dank Elke Schubert)}^^A % Weil es in früheren Versionen zu Problemen damit gekommen ist, % werden diese jedoch erst bei |\begin{document}| definiert. Dabei % wird |\providecaptionname| verwendet, so dass sie auch schon vor % |\begin{document}| mit |\newcaptionname| anderslautend definiert % werden können. % \begin{table} % \centering % \begin{tabular}{ll} % Sprache & Spender \\\hline\\[-1.6ex] % Deutsch & Frank Neukam, Markus Kohm \\ % English & Frank Neukam, Michael Dewey, Markus Kohm \\ % Finnisch & Hannu Väisänen \\ % Französisch & Frank Neukam, Henk Jongbloets \\ % Holländisch & Henk Jongbloets \\ % Italienisch & Simone Naldi \\ % Kroatisch & Branka Lon\v{c}arevi\'{c} \\ % Norwegisch & Sveinung Heggen \\ % Polnish & Blandyna Bogdol \\ % Schwedisch & Benjamin Hell\\ % Spanisch & Ralph J.\ Hangleiter, Alejandro L\'opez-Valencia\\ % Tschechisch & Elke Schubert\\ % Slovakisch & Elke Schubert\\ % \end{tabular} % \caption{Liste der unterstützten Sprachen und der % \emph{Sprachspender}} % \end{table} % Eine Besonderheit stellt die englische Sprache dar. Es wird % versucht, diese als Notersatz immer zu definieren. % \begin{macrocode} \AtBeginDocument{% \@ifundefined{captionsenglish}{\let\captionsenglish\@empty}{}% \@ifundefined{dateenglish}{\def\dateenglish{% % \end{macrocode} % \iffalse % %<*letter|class> % \fi % \begin{macrocode} \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}% % \end{macrocode} % \iffalse % %<*letter> % \fi % \begin{macrocode} }% }{}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\yourrefname{Your ref.}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\yourmailname{Your letter of}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\myrefname{Our ref.}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\customername{Customer no.}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\invoicename{Invoice no.}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\subjectname{Subject}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\ccname{cc}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\enclname{encl}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\headtoname{To}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\headfromname{From}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\datename{Date}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\pagename{Page}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\phonename{Phone}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\mobilephonename{Mobile phone}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\faxname{Fax}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\emailname{Email}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\wwwname{Url}% \providecaptionname{american,australian,british,canadian,% english,newzealand,UKenglish,USenglish}\bankname{Bank account}% \g@addnumerical@date{american}{\number\month/\number\day/\number\year}% \g@addnumerical@date{australien}{\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{USenglish}{\number\month/\number\day/\number\year}% \g@addnumerical@date{UKenglish}{\number\day/\number\month/\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"' oder "`Kopia till"' geht beides -- da im Deutschen die % lange Form verwendet wird nehmen wir die auch hier: % \begin{macrocode} \providecaptionname{swedish}\ccname{Kopia till}% % \end{macrocode} % "`Bilaga"' ist Singular. Bei mehreren Anlagen schreibt man % "`Bilagor"'. Da wir nicht wissen, ob es eine oder mehrere Anlagen sind, % haben wir ein kleines Problem und gehen mal von mehreren aus: % \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} % Für \cs{bankname} gibt es zwei verschiedene Ausdrücke, je nachdem um % welche Kontoform es sich handelt: "`Bankgiro"' und "`PlusGiro"'. Beide % sind etwa gleich verbreitet, evtl. mit einem leichten Vorteil für % Bankgiro. % \begin{macrocode} \providecaptionname{swedish}\bankname{Bankgiro}% PlusGiro % \end{macrocode} % Statt der ISO-Variante wird hier die traditionelle Variante, % "`18/1 2011"', verwendet. % \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} % Zum Schluss findet noch die eigentliche Auswahl statt. Diese orientiert % sich nun an der Auswahl nach german.sty~2.5b und verwendet keine festen % Sprachzuordnungen mehr. Dafür sind nun keine Erweiterungen für andere % Sprachen mehr möglich. % \changes{v2.2c}{1995/03/20}{Im Sprachenvergleich fehlten die "`="' % hinter \cs{language}} % \changes{v2.4c}{1997/11/25}{Sprachauswahl um american, british, % UKenglish und spanish erweitert}^^A % \changes{v2.5}{1999/09/08}{Sprachauswahl um ngermen erweitert}^^A % \changes{v2.5b}{2000/01/20}{Reaktivierung der Sprache geschieht % nun via \cs{languagename}, soweit dies möglich ist} % \changes{v2.5e}{2000/07/14}{Workaround für Sprache nohyphenation % durch Format mit Babel-Erweiterung aber kein Babel package % geladen}^^A % \begin{macrocode} \captionsenglish \dateenglish % \end{macrocode} % \changes{v2.9i}{2002/09/04}{Workaround für den % \texttt{hyphen.cfg}-Bug von Babel} % \changes{v2.97c}{2007/08/10}{Text einer Warnung geändert}^^A % \changes{v3.18a}{2015/07/03}{\cs{extras\dots} werden auch ausgeführt}^^A % \changes{v3.18a}{2015/07/03}{sprachabhhängige Befehle mit \cs{@nameuse}}^^A % Wird die \texttt{hyphen.cfg} von Babel verwendet, wird aber das % \textsl{babel}-Paket nicht geladen, so ist \cs{languagename} häufig % nicht korrekt, so dass dann \cs{selectlanguage} mit % \cs{languagename} als Argument schief geht. Daher hier ein % Workaround für das Problem. % \begin{macrocode} \begingroup\expandafter\expandafter\expandafter\endgroup \expandafter\ifx\csname date\languagename\endcsname\relax % \ClassWarningNoLine{scrlttr2% % \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 % \ClassWarningNoLine{scrlttr2% % \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@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 % \ClassWarningNoLine{scrlttr2% % \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 % \ClassInfo{scrlttr2% % \PackageInfo{scrletter% }{% trying to activate captions and date\MessageBreak of language `\languagename'% }% % \end{macrocode} % \changes{v3.12}{2012/12/28}{Workaround für babels geänderte hyphen.cfg}^^A % Irgendwann wurde in babel die hyphen.cfg geändert, so dass das früher sehr % gut funktionierende |\expandafter\selectlanguage\expandafter{\languagename}| % damit leider nicht mehr funktioniert, wenn babel nicht mehr geladen % ist. Deshalb wird nun etwas direkter vorgegangen. Das kann mit einzelnen % Sprachpaketen eventuell Nachteile bringen, funktioniert aber aktuell ohne % Sprachpaket, mit babel und mit polyglossia. % \begin{macrocode} \csname date\languagename\endcsname \csname captions\languagename\endcsname % \ClassInfo{scrlttr2% % \PackageInfo{scrletter% }{% used language is `\languagename'.\MessageBreak Supported languages are: `english', `UKenglish',\MessageBreak `british', `american', `USenglish', `australian`,\MessageBreak `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 } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \iffalse % % \fi % % % \iffalse % % \fi % % \Finale % \endinput % % end of file `scrkernel-language.dtx' %%% Local Variables: %%% mode: doctex %%% TeX-master: t %%% End: