%\iffalse %<*package> %% \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 \~} % %\fi % \iffalse % Doc-Source file to use with LaTeX2e % Copyright (C) 2015 Nicola Talbot, all rights reserved. % Copyright (C) 2017 Sebastian Friedl, all rights reserved. % \fi % \iffalse %<*driver> \documentclass{ltxdoc} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{alltt} \usepackage{csquotes} \usepackage{graphicx} \usepackage{hologo} \usepackage{multicol} \usepackage[bookmarks, hyperindex=false, pdfauthor={Nicola L.C. Talbot, Sebastian Friedl}, pdftitle={datetime2.sty German Module}]{hyperref} \usepackage{verbatim} \usepackage[p,space]{erewhon} \usepackage{sourcesanspro} \usepackage{inconsolata} \usepackage[utopia,vvarbb]{newtxmath} \usepackage[left=4.50cm,right=2.75cm,top=3.25cm,bottom=2.75cm,nohead]{geometry} \parindent0pt \CheckSum{1085} \renewcommand*{\usage}[1]{\hyperpage{#1}} \renewcommand*{\main}[1]{\hyperpage{#1}} \IndexPrologue{\section*{\indexname}\markboth{\indexname}{\indexname}} \setcounter{IndexColumns}{2} \newcommand*{\sty}[1]{\textsf{#1}} \newcommand*{\opt}[1]{\texttt{#1}\index{#1=\texttt{#1}|main}} \RecordChanges \PageIndex \CodelineNumbered \begin{document} \DocInput{datetime2-german.dtx} \end{document} % %\fi % %\MakeShortVerb{"} % %\title{German Module for the \sty{datetime2} Package \\ {\large\url{https://github.com/SFr682k/datetime2-german}}} %\author{\begin{tabular}{cp{.05\textwidth}c} Nicola L. C. Talbot && Sebastian Friedl \\ (inactive) && {\normalsize\href{mailto:sfr682k@t-online.de}{\texttt{sfr682k@t-online.de}}} \end{tabular}} %\date{2017-11-13 (v2.1)} %\maketitle % % %\begin{abstract} % This is the German language module for the \sty{datetime2} % package. If you want to use the settings in this module you must % install it in addition to installing \sty{datetime2}. If you use % \sty{babel} or \sty{polyglossia}, you will need this module to % prevent them from redefining \cs{today}. The \sty{datetime2} % \opt{useregional} setting must be set to "text" or "numeric" % for the language styles to be set. % Alternatively, you can set the style in the document using % \cs{DTMsetstyle}, but this may be changed by \cs{date}\meta{language} % depending on the value of the \opt{useregional} setting. %\end{abstract} % % % % Currently there is a regionless style as well as variant styles ("de-DE", "de-AT" and "de-CH"). \\[\smallskipamount] % I'm only capable of German standard German. If I messed up anything in regards to format and/or spelling, or even a variant style with differences to the existing ones is missing, please create a feature request on GitHub or send me an e--mail. \\ % I would be very grateful, if some examples and/or a list of the weekdays' and months' spelling is/are also provided. % % \bigskip % Thanks to Jürgen Spitzmüller for his valuable advice while developing Version 2.0 of this module. % % % \clearpage % \tableofcontents % \clearpage % % % % \section{Installation} % Extract the language definition files first: % \begin{enumerate} % \item % Run \LaTeX\ over the file \texttt{datetime2-german.ins}: \\ % \verb|latex datetime2-german.ins| % % % \item % Move all \texttt{*.ldf} files to \texttt{TEXMF/tex/latex/datetime2-contrib/datetime2-german/} % \end{enumerate} % Then, you can compile the documentation yourself by executing \\[\smallskipamount] %\verb|pdflatex datetime2-german.dtx| \\ %\verb|makeindex -s gind.ist datetime2-german.idx| \\ %\verb|makeindex -s gglo.ist -o datetime2-german.gls datetime2-german.glo| \\ %\verb|pdflatex datetime2-german.dtx| \\ %\verb|pdflatex datetime2-german.dtx| \\[\medskipamount] % or just use the precompiled documentation shipped with the sorce files. \\ % In both cases, copy the files \texttt{datetime2-german.pdf} and \texttt{README.md} to \\ % \texttt{TEXMF/doc/latex/datetime2-contrib/datetime2-german/} % % % % \clearpage % \part{The Documentation} % \section{Setting up \sty{datetime2} with a language module} % \subsection{Loading a language module} % \textit{There are three different ways to load the required language module. See the \sty{datetime2} documentation for further details} % % \medskip % % \textbf{Variant 1:} \\ % Request the desired language module explicitly by passing the "german", "de-DE", "de-AT" or "de-CH" option to the \sty{datetime2} package: \\[\smallskipamount] %\verb|\documentclass{article}| \\ %\verb|\usepackage[german]{datetime2}| \\ %\verb|\begin{document}| \\ %\verb|\today| \\ %\verb|\end{document}| \\[\medskipamount] % % \textbf{Variant 2:} \\ % Load \sty{babel} and pass the "german", "austrian" or "swissgerman" option to the \verb|\documentclass| command (or to \sty{babel} directly). If you now pass the \opt{useregional} option to \sty{datetime2}, the language module suitable to the one specified with \sty{babel} is loaded: \\[\smallskipamount] %\verb|\documentclass[german]{article}| \\ %\verb|\usepackage{babel}| \\ %\verb|\usepackage[useregional]{datetime2}| \\ %\verb|\begin{document}| \\ %\verb|\today| \\ %\verb|\end{document}| \\[\medskipamount] % % \textbf{Variant 3:} \\ % When using \sty{polyglossia}, you should request the desired language module by passing the "german", "de-DE", "de-AT" or "de-CH" option to the \sty{datetime2} package: \\[\smallskipamount] %\verb|\documentclass{article}| \\ %\verb|\usepackage{polyglossia}| \\ %\verb|\setmainlanguage{german}| \\ %\verb|\usepackage[german]{datetime2}| \\ %\verb|\begin{document}| \\ %\verb|\today| \\ %\verb|\end{document}| % % % \subsection{Other features} % \subsubsection{Showing the weekday} % All language modules shipped with \sty{datetime2-german} support showing the weekday. \\ % To enable this feature, pass the \opt{showdow} option to the \sty{datetime2} package. \\ % Please note, that this has no effect when using the "numeric" style of the "de-AT" variant. % % \subsubsection{Using abbreviated weekday and month names} % To enable abbreviated weekday and month names, use \verb|\DTMlangsetup[german]{abbr}|. \\ % To disable them, use \verb|\DTMlangsetup[german]{abbr=false}|. % % \medskip % In both cases, replace "german" with the used variant style ("de-DE", "de-AT" or "de-CH"). \\ % Please note, that this has no effect when using the "numeric" style of the "de-AT" variant. % % % \section{Style examples} % \subsection{Regionless style} % \begin{itemize} % \item Non--numeric style: \\ % 3. Oktober 2017, 12:51:04 MESZ \\ % 3. Okt. '17, 12:51:04 MESZ \hfill \textit{abbreviated version} \\ % Dienstag, 3. Oktober 2017, 12:51:04 MESZ \hfill \textit{with \opt{showdow} option} \\ % Di, 3. Okt. '17, 12:51:04 MESZ \hfill \textit{abbreviated version with \opt{showdow} option} % % % \item Numeric style: \\ % 03.10.2017, 12:51:04 MESZ \\ % 03.10.17, 12:51:04 MESZ \hfill \textit{abbreviated version} \\ % Dienstag, 03.10.2017, 12:51:04 MESZ \hfill \textit{with \opt{showdow} option} \\ % Di, 03.10.17, 12:51:04 MESZ \hfill \textit{abbreviated version with \opt{showdow} option} % \end{itemize} % % % \subsection{German style (\texttt{de-DE})} % \begin{itemize} % \item Non--numeric style: \\ % 3. Oktober 2017, 12:51:04 MESZ \\ % 3. Okt. '17, 12:51:04 MESZ \hfill \textit{abbreviated version} \\ % Dienstag, 3. Oktober 2017, 12:51:04 MESZ \hfill \textit{with \opt{showdow} option} \\ % Di, 3. Okt. '17, 12:51:04 MESZ \hfill \textit{abbreviated version with \opt{showdow} option} % % % \item Numeric style: \\ % 03.10.2017, 12:51:04 MESZ \\ % 03.10.17, 12:51:04 MESZ \hfill \textit{abbreviated version} \\ % Dienstag, 03.10.2017, 12:51:04 MESZ \hfill \textit{with \opt{showdow} option} \\ % Di, 03.10.17, 12:51:04 MESZ \hfill \textit{abbreviated version with \opt{showdow} option} % \end{itemize} % % % \subsection{Austrian style (\texttt{de-AT})} % \begin{itemize} % \item Non--numeric style: \\ % 3. Oktober 2017, 12:51:04 MESZ \\ % 3. Okt. 2017, 12:51:04 MESZ \hfill \textit{abbreviated version} \\ % Dienstag, 3. Oktober 2017, 12:51:04 MESZ \hfill \textit{with \opt{showdow} option} \\ % Di, 3. Okt. 2017, 12:51:04 MESZ \hfill \textit{abbreviated version with \opt{showdow} option} % % % \item Numeric style: \\ % 2017-10-03, 12:51:04 MESZ % \end{itemize} % % % \subsection{Swiss style (\texttt{de-CH})} % \begin{itemize} % \item Non--numeric style: \\ % 3. Oktober 2017, 12.51.04 Uhr MESZ \\ % 3. Okt. 2017, 12.51.04 Uhr MESZ \hfill \textit{abbreviated version} \\ % Dienstag, 3. Oktober 2017, 12.51.04 Uhr MESZ \hfill \textit{with \opt{showdow} option} \\ % Di, 3. Okt. 2017, 12.51.04 Uhr MESZ \hfill \textit{abbreviated version with \opt{showdow} option} % % % \item Numeric style: \\ % 03.10.2017, 12.51.04 Uhr MESZ \\ % 03.10.17, 12.51.04 Uhr MESZ \hfill \textit{abbreviated version} \\ % Dienstag, 03.10.2017, 12.51.04 Uhr MESZ \hfill \textit{with \opt{showdow} option} \\ % Di, 03.10.17, 12.51.04 Uhr MESZ \hfill \textit{abbreviated version with \opt{showdow} option} % \end{itemize} % % % % \section{Further customization of styles} % There are a number of settings provided that can be used in \verb|\DTMlangsetup| to modify the date-time style. These are: % \begin{description} % \item["dowdaysep"]% % The separator between the day of week name and the day of month number. % % \item["daymonthsep"]% % The separator between the day and the month name % % \item["monthyearsep"]% % The separator between the month name and year % % \item["datesep"]% % The separator between the date numbers in the "numeric style"s % % \item["timesep"]% % The separator between hours, minutes and seconds % % \item["datetimesep"]% % The separator between the date and time for the full date-time format % % \item["timezonesep"]% % The separator between the time and zone for the full date-time format % % \item["abbr"]% % This is a boolean key. If "true", the month (and weekday name, if shown) is abbreviated. % % \item["mapzone"]% % This is a boolean key. If "true", the time zone mappings are applied. % % \item["showdayofmonth"]% % A boolean key that determines whether or not to show the day of the month % % \item["showyear"]% % A boolean key that determines whether or not to show the year %\end{description} % % % Although the keys listed here are \textit{defined} for all variant styles, it depends on \sty{datetime2}'s setup and the requested styles whether they're \textit{used}. \\ % For more information about the \verb|\DTMlangsetup| command see the documentation of the main \sty{datetime2} package. % % % \section{License} % This material is subject to the \LaTeX\ Project Public License, Version 1.3c or later. \\ % See the copyright headers of the single files for further details. % % % %\StopEventually{% %\clearpage %\phantomsection %\addcontentsline{toc}{section}{Change History}% %\PrintChanges %\addcontentsline{toc}{section}{\indexname}% %\PrintIndex} %\clearpage %\part{The Code} %\iffalse % \begin{macrocode} %<*datetime2-german-utf8.ldf> % \end{macrocode} %\fi %\section{Basic German module} % This module defines the \enquote{basic} German style, which contains the necessary vocab for all German localizations. \\ % The date and time format is based on the "de-DE" variant. % %\subsection{Weekday and month names (UTF-8)} %This file contains the settings that use UTF-8 characters. This %file is loaded if \hologo{XeLaTeX} or \hologo{LuaLaTeX} are used. Please make sure %your text editor is set to UTF-8 if you want to view this code. %\changes{1.0}{2015-03-27}{Initial release} % % Identify module % \begin{macrocode} \ProvidesDateTimeModule{german-utf8}[2017/11/13 v2.1] % \end{macrocode} %\begin{macro}{\DTMgermanordinal} % \begin{macrocode} \newcommand*{\DTMgermanordinal}[1]{% \number#1 } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermanmonthname} % German month names. % \begin{macrocode} \newcommand*{\DTMgermanmonthname}[1]{% \ifcase#1 \or Januar% \or Februar% \or März% \or April% \or Mai% \or Juni% \or Juli% \or August% \or September% \or Oktober% \or November% \or Dezember% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeATmonthname} %\changes{2.0}{2017-10-03}{Austrian month names implemented} % Austrian German month names. Spot the difference :D % \begin{macrocode} \newcommand*{\DTMdeATmonthname}[1]{% \ifcase#1 \or Jänner% \or Februar% \or März% \or April% \or Mai% \or Juni% \or Juli% \or August% \or September% \or Oktober% \or November% \or Dezember% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermanshortmonthname} % Abbreviated German month names. %\changes{1.2}{2017-09-10}{Short month names implemented} %\changes{2.0}{2017-10-03}{Short month names fixed} % \begin{macrocode} \newcommand*{\DTMgermanshortmonthname}[1]{% \ifcase#1 \or Jan.% \or Feb.% \or März% \or Apr.% \or Mai% \or Juni% \or Juli% \or Aug.% \or Sept.% \or Okt.% \or Nov.% \or Dez.% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeATshortmonthname} %\changes{2.0}{2017-10-03}{Austrian short month names implemented} % Abbreviated Austrian German month names. % \begin{macrocode} \newcommand*{\DTMdeATshortmonthname}[1]{% \ifcase#1 \or Jän.% \or Feb.% \or März% \or Apr.% \or Mai% \or Juni% \or Juli% \or Aug.% \or Sept.% \or Okt.% \or Nov.% \or Dez.% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHshortmonthname} % Abbreviated Swiss German month names. %\changes{2.0}{2017-10-03}{Swiss German short month names implemented} % \begin{macrocode} \newcommand*{\DTMdeCHshortmonthname}[1]{% \ifcase#1 \or Jan.% \or Febr.% \or März% \or April% \or Mai% \or Juni% \or Juli% \or Aug.% \or Sept.% \or Okt.% \or Nov.% \or Dez.% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermanweekdayname} % Provides weekday names % \begin{macrocode} \newcommand*{\DTMgermanweekdayname}[1]{% \ifcase#1 Montag% \or Dienstag% \or Mittwoch% \or Donnerstag% \or Freitag% \or Samstag% \or Sonntag% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermanshortweekdayname} %Provides abbreviated weekday names %\changes{1.2}{2017-09-10}{Short weekday names implemented} %\changes{2.0}{2017-10-03}{Short weekday names fixed} % \begin{macrocode} \newcommand*{\DTMgermanshortweekdayname}[1]{% \ifcase#1 Mo% \or Di% \or Mi% \or Do% \or Fr% \or Sa% \or So% \fi } % \end{macrocode} %\end{macro} % %\iffalse % \begin{macrocode} % % \end{macrocode} %\fi %\iffalse % \begin{macrocode} %<*datetime2-german-ascii.ldf> % \end{macrocode} %\fi %\subsection{Weekday and month names (ASCII)} %This file contains the settings that use \LaTeX\ commands for %non-ASCII characters. This should be input if neither \hologo{XeLaTeX} nor %\hologo{LuaLaTeX} are used. Even if the user has loaded \sty{inputenc} with %"utf8", this file should still be used not the %\texttt{datetime2-german-utf8.ldf} file as the non-ASCII %characters are made active in that situation and would need %protecting against expansion. %\changes{1.0}{2015-03-27}{Initial release} % % Identify module % \begin{macrocode} \ProvidesDateTimeModule{german-ascii}[2017/11/13 v2.1] % \end{macrocode} % %\begin{macro}{\DTMgermanordinal} % \begin{macrocode} \newcommand*{\DTMgermanordinal}[1]{% \number#1 } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermanmonthname} % German month names. % \begin{macrocode} \newcommand*{\DTMgermanmonthname}[1]{% \ifcase#1 \or Januar% \or Februar% \or M\protect\"arz% \or April% \or Mai% \or Juni% \or Juli% \or August% \or September% \or Oktober% \or November% \or Dezember% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeATmonthname} %\changes{2.0}{2017-10-03}{Austrian month names implemented} % Austrian German month names. % \begin{macrocode} \newcommand*{\DTMdeATmonthname}[1]{% \ifcase#1 \or J\protect\"anner% \or Februar% \or M\protect\"arz% \or April% \or Mai% \or Juni% \or Juli% \or August% \or September% \or Oktober% \or November% \or Dezember% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermanshortmonthname} % Abbreviated German month names. %\changes{1.2}{2017-09-10}{Short month names implemented} %\changes{2.0}{2017-10-03}{Short month names fixed} % \begin{macrocode} \newcommand*{\DTMgermanshortmonthname}[1]{% \ifcase#1 \or Jan.% \or Feb.% \or M\protect\"arz% \or Apr.% \or Mai% \or Juni% \or Juli% \or Aug.% \or Sept.% \or Okt.% \or Nov.% \or Dez.% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeATshortmonthname} %\changes{2.0}{2017-10-03}{Austrian short month names implemented} % Abbreviated Austrian German month names. % \begin{macrocode} \newcommand*{\DTMdeATshortmonthname}[1]{% \ifcase#1 \or J\protect\"an.% \or Feb.% \or M\protect\"arz% \or Apr.% \or Mai% \or Juni% \or Juli% \or Aug.% \or Sept.% \or Okt.% \or Nov.% \or Dez.% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHshortmonthname} % Abbreviated Swiss German month names. %\changes{2.0}{2017-10-03}{Swiss German short month names implemented} % \begin{macrocode} \newcommand*{\DTMdeCHshortmonthname}[1]{% \ifcase#1 \or Jan.% \or Febr.% \or M\protect\"arz% \or April% \or Mai% \or Juni% \or Juli% \or Aug.% \or Sept.% \or Okt.% \or Nov.% \or Dez.% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermanweekdayname} %Provides weekday names % \begin{macrocode} \newcommand*{\DTMgermanweekdayname}[1]{% \ifcase#1 Montag% \or Dienstag% \or Mittwoch% \or Donnerstag% \or Freitag% \or Samstag% \or Sonntag% \fi } % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermanshortweekdayname} %Provides abbreviated weekday names %\changes{1.2}{2017-09-10}{Short weekday names implemented} %\changes{2.0}{2017-10-03}{Short weekday names fixed} % \begin{macrocode} \newcommand*{\DTMgermanshortweekdayname}[1]{% \ifcase#1 Mo% \or Di% \or Mi% \or Do% \or Fr% \or Sa% \or So% \fi } % \end{macrocode} %\end{macro} % %\iffalse % \begin{macrocode} % % \end{macrocode} %\fi % %\subsection{Basic German Module (\texttt{datetime2-german.ldf})} %\changes{1.0}{2015-03-27}{Initial release} % %\iffalse % \begin{macrocode} %<*datetime2-german.ldf> % \end{macrocode} %\fi % % Identify Module % \begin{macrocode} \ProvidesDateTimeModule{german}[2017/11/13 v2.1] % \end{macrocode} % Need to find out if \hologo{XeTeX} or \hologo{LuaTeX} are being used. % \begin{macrocode} \RequirePackage{ifxetex,ifluatex} % \end{macrocode} % \hologo{XeTeX} and \hologo{LuaTeX} natively support UTF-8, so load % \texttt{german-utf8} if either of those engines are used % otherwise load \texttt{german-ascii}. % \begin{macrocode} \ifxetex \RequireDateTimeModule{german-utf8} \else \ifluatex \RequireDateTimeModule{german-utf8} \else \RequireDateTimeModule{german-ascii} \fi \fi % \end{macrocode} % % Define the \texttt{german} style. % % Allow the user a way of configuring the "german" and % "german-numeric" styles. This doesn't use the package wide % separators such as % \cs{dtm@datetimesep} in case other date formats are also required. % %\begin{macro}{\DTMgermandowdaysep} % The separator between weekday and day % \begin{macrocode} \newcommand*{\DTMgermandowdaysep}{,\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermandaymonthsep} % The separator between the day and month for the text format. % \begin{macrocode} \newcommand*{\DTMgermandaymonthsep}{.\DTMtexorpdfstring{\protect~}{\space}} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermanmonthyearsep} % The separator between the month and year for the text format. % \begin{macrocode} \newcommand*{\DTMgermanmonthyearsep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermandatetimesep} % The separator between the date and time blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMgermandatetimesep}{,\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermantimezonesep} % The separator between the time and zone blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMgermantimezonesep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermandatesep} % The separator for the numeric date format. % \begin{macrocode} \newcommand*{\DTMgermandatesep}{.} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMgermantimesep} % The separator for the numeric time format. % \begin{macrocode} \newcommand*{\DTMgermantimesep}{:} % \end{macrocode} %\end{macro} % %Provide keys that can be used in \cs{DTMlangsetup} to set these %separators. % \begin{macrocode} \DTMdefkey{german}{dowdaysep}{\renewcommand*{\DTMgermandowdaysep}{#1}} \DTMdefkey{german}{daymonthsep}{\renewcommand*{\DTMgermandaymonthsep}{#1}} \DTMdefkey{german}{monthyearsep}{\renewcommand*{\DTMgermanmonthyearsep}{#1}} \DTMdefkey{german}{datetimesep}{\renewcommand*{\DTMgermandatetimesep}{#1}} \DTMdefkey{german}{timezonesep}{\renewcommand*{\DTMgermantimezonesep}{#1}} \DTMdefkey{german}{datesep}{\renewcommand*{\DTMgermandatesep}{#1}} \DTMdefkey{german}{timesep}{\renewcommand*{\DTMgermantimesep}{#1}} % \end{macrocode} % % % Define a boolean key that can switch between full and abbreviated formats for % the month and day of week names in the text format. % \begin{macrocode} \DTMdefboolkey{german}{abbr}[true]{} % \end{macrocode} % % The default is full name % \begin{macrocode} \DTMsetbool{german}{abbr}{false} % \end{macrocode} % % Define a boolean key that determines if the time zone mappings % should be used. % \begin{macrocode} \DTMdefboolkey{german}{mapzone}[true]{} % \end{macrocode} % The default is to use mappings. % \begin{macrocode} \DTMsetbool{german}{mapzone}{true} % \end{macrocode} % % Define a boolean key that determines if the day of month should be % displayed. % \begin{macrocode} \DTMdefboolkey{german}{showdayofmonth}[true]{} % \end{macrocode} % The default is to show the day of month. % \begin{macrocode} \DTMsetbool{german}{showdayofmonth}{true} % \end{macrocode} % % Define a boolean key that determines if the year should be % displayed. % \begin{macrocode} \DTMdefboolkey{german}{showyear}[true]{} % \end{macrocode} % The default is to show the year. % \begin{macrocode} \DTMsetbool{german}{showyear}{true} % \end{macrocode} % % Define the "german" style. %\changes{1.1}{2017-03-09}{fixed bug in \cs{DTMDisplaydate}} %\changes{1.2}{2017-09-10}{Short month names implemented} %\changes{1.2}{2017-09-10}{Short weekday names implemented} %\changes{1.2}{2017-09-10}{Day of week implemented} %\changes{2.1}{2017-11-13}{Fixed strange spacing when switching languages} % \begin{macrocode} \DTMnewstyle {german}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{german}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMgermandowdaysep \fi \fi % \DTMifbool{german}{showdayofmonth}% {\DTMgermanordinal{##3}\DTMgermandaymonthsep}% {}% % \DTMifbool{german}{abbr}% {\DTMgermanshortmonthname{##2}}% {\DTMgermanmonthname{##2}}% % \DTMifbool{german}{showyear}% {% \DTMgermanmonthyearsep% \DTMifbool{german}{abbr}% {'\DTMtwodigits{##1}}% {\number##1 }% space intended }% {}% }% \renewcommand*\DTMDisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{german}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMgermandowdaysep \fi \fi % \DTMifbool{german}{showdayofmonth}% {\DTMgermanordinal{##3}\DTMgermandaymonthsep}% {}% % \DTMifbool{german}{abbr}% {\DTMgermanshortmonthname{##2}}% {\DTMgermanmonthname{##2}}% % \DTMifbool{german}{showyear}% {% \DTMgermanmonthyearsep% \DTMifbool{german}{abbr}% {'\DTMtwodigits{##1}}% {\number##1 }% space intended }% {}% }% }% {% time style (use default) \renewcommand*\DTMdisplaytime[3]{% \DTMtwodigits{##1}% \DTMgermantimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMgermantimesep\DTMtwodigits{##3}\fi }% }% {% zone style \DTMresetzones \DTMgermanzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{german}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMgermantimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMgermandatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMgermantimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}[9]{% \ifDTMshowdate \DTMDisplaydate{##1}{##2}{##3}{##4}% \DTMgermandatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMgermantimezonesep \DTMdisplayzone{##8}{##9}% \fi }% }% % \end{macrocode} % % Define numeric style. %\changes{1.2}{2017-09-10}{Day of week implemented} %\changes{2.0}{2017-10-03}{Bugfix: month-year-separator} % \begin{macrocode} \DTMnewstyle {german-numeric}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{german}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMgermandowdaysep \fi \fi % \DTMifbool{german}{showdayofmonth}% {% \DTMtwodigits{##3}% \DTMgermandatesep }% {}% \DTMtwodigits{##2}% \DTMgermandatesep% \DTMifbool{german}{showyear}% {% \DTMifbool{german}{abbr}% {\DTMtwodigits{##1}}% {\number##1 }% space intended }% {}% }% \renewcommand*{\DTMDisplaydate}[4]{\DTMdisplaydate{##1}{##2}{##3}{##4}}% }% {% time style \renewcommand*\DTMdisplaytime[3]{% \DTMtwodigits{##1}% \DTMgermantimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMgermantimesep\DTMtwodigits{##3}\fi }% }% {% zone style \DTMresetzones \DTMgermanzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{german}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMgermantimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMgermandatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMgermantimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}{\DTMdisplay}% } % \end{macrocode} % %\begin{macro}{\DTMgermanzonemaps} % The time zone mappings are set through this command, which can be % redefined if extra mappings are required or mappings need to be % removed. %\changes{1.2}{2017-09-10}{German time zone names (ME[S]Z)} % \begin{macrocode} \newcommand*{\DTMgermanzonemaps}{% \DTMdefzonemap{01}{00}{MEZ}% \DTMdefzonemap{02}{00}{MESZ}% } % \end{macrocode} %\end{macro} % Switch style according to the \opt{useregional} setting. % \begin{macrocode} \DTMifcaseregional {}% do nothing {\DTMsetstyle{german}} {\DTMsetstyle{german-numeric}} % \end{macrocode} % % Redefine \cs{dategerman} (or \cs{date}\meta{dialect}) to prevent % \sty{babel} from resetting \cs{today}. (For this to work, % \sty{babel} must already have been loaded if it's required.) % \begin{macrocode} \ifcsundef{date\CurrentTrackedDialect} {% \ifundef\dategerman {% do nothing }% {% \def\dategerman{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{german}}% {\DTMsetstyle{german-numeric}}% }% }% }% {% \csdef{date\CurrentTrackedDialect}{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{german}}% {\DTMsetstyle{german-numeric}}% }% }% % \end{macrocode} %\iffalse % \begin{macrocode} % % \end{macrocode} %\fi % % % % % % % % % % % \section{German localization (\texttt{de-DE}, \texttt{datetime2-de-DE.ldf})} %\changes{2.0}{2017-10-03}{German localization added} %\iffalse % \begin{macrocode} %<*datetime2-de-DE.ldf> % \end{macrocode} %\fi % Identify Module % \begin{macrocode} \ProvidesDateTimeModule{de-DE}[2017/11/13 v2.1] % \end{macrocode} % Require the basic German module % \begin{macrocode} \RequireDateTimeModule{german} % \end{macrocode} % % % Allow the user a way of configuring the "de-DE" and % "de-DE-numeric" styles. This doesn't use the package wide % separators such as % \cs{dtm@datetimesep} in case other date formats are also required. % %\begin{macro}{\DTMdeDEdowdaysep} % The separator between weekday and day % \begin{macrocode} \newcommand*{\DTMdeDEdowdaysep}{,\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeDEdaymonthsep} % The separator between the day and month for the text format. % \begin{macrocode} \newcommand*{\DTMdeDEdaymonthsep}{.\DTMtexorpdfstring{\protect~}{\space}} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeDEmonthyearsep} % The separator between the month and year for the text format. % \begin{macrocode} \newcommand*{\DTMdeDEmonthyearsep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeDEdatetimesep} % The separator between the date and time blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMdeDEdatetimesep}{,\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeDEtimezonesep} % The separator between the time and zone blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMdeDEtimezonesep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeDEdatesep} % The separator for the numeric date format. % \begin{macrocode} \newcommand*{\DTMdeDEdatesep}{.} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeDEtimesep} % The separator for the numeric time format. % \begin{macrocode} \newcommand*{\DTMdeDEtimesep}{:} % \end{macrocode} %\end{macro} % % Provide keys that can be used in \cs{DTMlangsetup} to set these % separators. % \begin{macrocode} \DTMdefkey{de-DE}{dowdaysep}{\renewcommand*{\DTMdeDEdowdaysep}{#1}} \DTMdefkey{de-DE}{daymonthsep}{\renewcommand*{\DTMdeDEdaymonthsep}{#1}} \DTMdefkey{de-DE}{monthyearsep}{\renewcommand*{\DTMdeDEmonthyearsep}{#1}} \DTMdefkey{de-DE}{datetimesep}{\renewcommand*{\DTMdeDEdatetimesep}{#1}} \DTMdefkey{de-DE}{timezonesep}{\renewcommand*{\DTMdeDEtimezonesep}{#1}} \DTMdefkey{de-DE}{datesep}{\renewcommand*{\DTMdeDEdatesep}{#1}} \DTMdefkey{de-DE}{timesep}{\renewcommand*{\DTMdeDEtimesep}{#1}} % \end{macrocode} % % % Define a boolean key that can switch between full and abbreviated formats for % the month and day of week names in the text format. % \begin{macrocode} \DTMdefboolkey{de-DE}{abbr}[true]{} % \end{macrocode} % % The default is full name % \begin{macrocode} \DTMsetbool{de-DE}{abbr}{false} % \end{macrocode} % % Define a boolean key that determines if the time zone mappings % should be used. % \begin{macrocode} \DTMdefboolkey{de-DE}{mapzone}[true]{} % \end{macrocode} % The default is to use mappings. % \begin{macrocode} \DTMsetbool{de-DE}{mapzone}{true} % \end{macrocode} % % Define a boolean key that determines if the day of month should be % displayed. % \begin{macrocode} \DTMdefboolkey{de-DE}{showdayofmonth}[true]{} % \end{macrocode} % The default is to show the day of month. % \begin{macrocode} \DTMsetbool{de-DE}{showdayofmonth}{true} % \end{macrocode} % % Define a boolean key that determines if the year should be % displayed. % \begin{macrocode} \DTMdefboolkey{de-DE}{showyear}[true]{} % \end{macrocode} % The default is to show the year. % \begin{macrocode} \DTMsetbool{de-DE}{showyear}{true} % \end{macrocode} % % % Define the "de-DE" style % \begin{macrocode} \DTMnewstyle {de-DE}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-DE}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeDEdowdaysep \fi \fi % \DTMifbool{de-DE}{showdayofmonth}% {\DTMgermanordinal{##3}\DTMdeDEdaymonthsep}% {}% % \DTMifbool{de-DE}{abbr}% {\DTMgermanshortmonthname{##2}}% {\DTMgermanmonthname{##2}}% % \DTMifbool{de-DE}{showyear}% {% \DTMdeDEmonthyearsep% \DTMifbool{de-DE}{abbr}% {'\DTMtwodigits{##1}}% {\number##1 }% space intended }% {}% }% \renewcommand*\DTMDisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-DE}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeDEdowdaysep \fi \fi % \DTMifbool{de-DE}{showdayofmonth}% {\DTMgermanordinal{##3}\DTMdeDEdaymonthsep}% {}% % \DTMifbool{de-DE}{abbr}% {\DTMgermanshortmonthname{##2}}% {\DTMgermanmonthname{##2}}% % \DTMifbool{de-DE}{showyear}% {% \DTMdeDEmonthyearsep% \DTMifbool{de-DE}{abbr}% {'\DTMtwodigits{##1}}% {\number##1 }% space intended }% {}% } }% {% time style (use default) \renewcommand*\DTMdisplaytime[3]{% \DTMtwodigits{##1}% \DTMdeDEtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMdeDEtimesep\DTMtwodigits{##3}\fi }% }% {% zone style \DTMresetzones \DTMgermanzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{de-DE}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMdeDEtimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMdeDEdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeDEtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}[9]{% \ifDTMshowdate \DTMDisplaydate{##1}{##2}{##3}{##4}% \DTMdeDEdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeDEtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% }% % \end{macrocode} % % Define numeric style. % \begin{macrocode} \DTMnewstyle {de-DE-numeric}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-DE}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeDEdowdaysep \fi \fi % \DTMifbool{de-DE}{showdayofmonth}% {% \DTMtwodigits{##3}% \DTMdeDEdatesep }% {}% \DTMtwodigits{##2}% \DTMdeDEdatesep% \DTMifbool{de-DE}{showyear}% {% \DTMifbool{de-DE}{abbr}% {\DTMtwodigits{##1}}% {\number##1 }% space intended }% {}% }% \renewcommand*{\DTMDisplaydate}[4]{\DTMdisplaydate{##1}{##2}{##3}{##4}}% }% {% time style \renewcommand*\DTMdisplaytime[3]{% \DTMtwodigits{##1}% \DTMdeDEtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMdeDEtimesep\DTMtwodigits{##3}\fi }% }% {% zone style \DTMresetzones \DTMgermanzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{de-DE}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMgermantimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMdeDEdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeDEtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}{\DTMdisplay}% } % \end{macrocode} % % Switch style according to the \opt{useregional} setting. % \begin{macrocode} \DTMifcaseregional {}% do nothing {\DTMsetstyle{de-DE}} {\DTMsetstyle{de-DE-numeric}} % \end{macrocode} % % Redefine \cs{dategerman} (or \cs{date}\meta{dialect}) to prevent % \sty{babel} from resetting \cs{today}. (For this to work, % \sty{babel} must already have been loaded if it's required.) % \begin{macrocode} \ifcsundef{date\CurrentTrackedDialect} {% \ifundef\dategerman {% do nothing }% {% \def\dategerman{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{german}}% {\DTMsetstyle{german-numeric}}% }% }% }% {% \csdef{date\CurrentTrackedDialect}{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{de-DE}}% {\DTMsetstyle{de-DE-numeric}} }% }% % \end{macrocode} % %\iffalse % \begin{macrocode} % % \end{macrocode} %\fi % % % % % % % % % % % \section{Austrian German localization (\texttt{de-AT}, \texttt{datetime2-de-AT.ldf})} %\changes{2.0}{2017-10-03}{Austrian German localization added} % %\iffalse % \begin{macrocode} %<*datetime2-de-AT.ldf> % \end{macrocode} %\fi % Identify Module % \begin{macrocode} \ProvidesDateTimeModule{de-AT}[2017/11/13 v2.1] % \end{macrocode} % Require the basic German module % \begin{macrocode} \RequireDateTimeModule{german} % \end{macrocode} % % % Allow the user a way of configuring the "de-AT" and % "de-AT-numeric" styles. This doesn't use the package wide % separators such as % \cs{dtm@datetimesep} in case other date formats are also required. % %\begin{macro}{\DTMdeATdowdaysep} % The separator between weekday and day % \begin{macrocode} \newcommand*{\DTMdeATdowdaysep}{,\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeATdaymonthsep} % The separator between the day and month for the text format. % \begin{macrocode} \newcommand*{\DTMdeATdaymonthsep}{.\DTMtexorpdfstring{\protect~}{\space}} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeATmonthyearsep} % The separator between the month and year for the text format. % \begin{macrocode} \newcommand*{\DTMdeATmonthyearsep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeATdatetimesep} % The separator between the date and time blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMdeATdatetimesep}{,\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeATtimezonesep} % The separator between the time and zone blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMdeATtimezonesep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeATdatesep} % The separator for the numeric date format. % \begin{macrocode} \newcommand*{\DTMdeATdatesep}{-} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeATtimesep} % The separator for the numeric time format. % \begin{macrocode} \newcommand*{\DTMdeATtimesep}{:} % \end{macrocode} %\end{macro} % % Provide keys that can be used in \cs{DTMlangsetup} to set these % separators. % \begin{macrocode} \DTMdefkey{de-AT}{dowdaysep}{\renewcommand*{\DTMdeATdowdaysep}{#1}} \DTMdefkey{de-AT}{daymonthsep}{\renewcommand*{\DTMdeATdaymonthsep}{#1}} \DTMdefkey{de-AT}{monthyearsep}{\renewcommand*{\DTMdeATmonthyearsep}{#1}} \DTMdefkey{de-AT}{datetimesep}{\renewcommand*{\DTMdeATdatetimesep}{#1}} \DTMdefkey{de-AT}{timezonesep}{\renewcommand*{\DTMdeATtimezonesep}{#1}} \DTMdefkey{de-AT}{datesep}{\renewcommand*{\DTMdeATdatesep}{#1}} \DTMdefkey{de-AT}{timesep}{\renewcommand*{\DTMdeATtimesep}{#1}} % \end{macrocode} % % % Define a boolean key that can switch between full and abbreviated formats for % the month and day of week names in the text format. % \begin{macrocode} \DTMdefboolkey{de-AT}{abbr}[true]{} % \end{macrocode} % % The default is full name % \begin{macrocode} \DTMsetbool{de-AT}{abbr}{false} % \end{macrocode} % % Define a boolean key that determines if the time zone mappings % should be used. % \begin{macrocode} \DTMdefboolkey{de-AT}{mapzone}[true]{} % \end{macrocode} % The default is to use mappings. % \begin{macrocode} \DTMsetbool{de-AT}{mapzone}{true} % \end{macrocode} % % Define a boolean key that determines if the day of month should be % displayed. % \begin{macrocode} \DTMdefboolkey{de-AT}{showdayofmonth}[true]{} % \end{macrocode} % The default is to show the day of month. % \begin{macrocode} \DTMsetbool{de-AT}{showdayofmonth}{true} % \end{macrocode} % % Define a boolean key that determines if the year should be % displayed. % \begin{macrocode} \DTMdefboolkey{de-AT}{showyear}[true]{} % \end{macrocode} % The default is to show the year. % \begin{macrocode} \DTMsetbool{de-AT}{showyear}{true} % \end{macrocode} % % % Define the "de-AT" style % \begin{macrocode} \DTMnewstyle {de-AT}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-AT}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeATdowdaysep \fi \fi % \DTMifbool{de-AT}{showdayofmonth}% {\DTMgermanordinal{##3}\DTMdeATdaymonthsep}% {}% % \DTMifbool{de-AT}{abbr}% {\DTMdeATshortmonthname{##2}}% {\DTMdeATmonthname{##2}}% % \DTMifbool{de-AT}{showyear}% {% \DTMdeATmonthyearsep% \number##1 % space intended }% {}% }% \renewcommand*\DTMDisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-AT}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeATdowdaysep \fi \fi % \DTMifbool{de-AT}{showdayofmonth}% {\DTMgermanordinal{##3}\DTMdeATdaymonthsep}% {}% % \DTMifbool{de-AT}{abbr}% {\DTMdeATshortmonthname{##2}}% {\DTMdeATmonthname{##2}}% % \DTMifbool{de-AT}{showyear}% {% \DTMdeATmonthyearsep% \number##1 % space intended }% {}% }% }% {% time style (use default) \renewcommand*\DTMdisplaytime[3]{% \DTMtwodigits{##1}% \DTMdeATtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMdeATtimesep\DTMtwodigits{##3}\fi }% }% {% zone style \DTMresetzones \DTMgermanzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{de-AT}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMdeATtimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMdeATdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeATtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}[9]{% \ifDTMshowdate \DTMDisplaydate{##1}{##2}{##3}{##4}% \DTMdeATdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeATtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% }% % \end{macrocode} % % Define numeric style. % \begin{macrocode} \DTMnewstyle {de-AT-numeric}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \DTMifbool{de-AT}{showyear}% {% \number##1 % space intended \DTMdeATdatesep% }% {}% % \DTMtwodigits{##2}% % \DTMifbool{de-AT}{showdayofmonth}% {% \DTMdeATdatesep% \DTMtwodigits{##3}% }% {}% }% \renewcommand*{\DTMDisplaydate}[4]{\DTMdisplaydate{##1}{##2}{##3}{##4}}% }% {% time style \renewcommand*\DTMdisplaytime[3]{% \DTMtwodigits{##1}% \DTMdeATtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMdeATtimesep\DTMtwodigits{##3}\fi }% }% {% zone style \DTMresetzones \DTMgermanzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{de-AT}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMgermantimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMdeATdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeATtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}{\DTMdisplay}% } % \end{macrocode} % % Switch style according to the \opt{useregional} setting. % \begin{macrocode} \DTMifcaseregional {}% do nothing {\DTMsetstyle{de-AT}}% {\DTMsetstyle{de-AT-numeric}}% % \end{macrocode} % % Redefine \cs{dategerman} (or \cs{date}\meta{dialect}) to prevent % \sty{babel} from resetting \cs{today}. (For this to work, % \sty{babel} must already have been loaded if it's required.) % \begin{macrocode} \ifcsundef{date\CurrentTrackedDialect} {% \ifundef\dategerman {% do nothing }% {% \def\dategerman{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{german}}% {\DTMsetstyle{german-numeric}}% }% }% }% {% \csdef{date\CurrentTrackedDialect}{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{de-AT}}% {\DTMsetstyle{de-AT-numeric}}% }% }% % \end{macrocode} % %\iffalse % \begin{macrocode} % % \end{macrocode} %\fi % % % % % % % % % % % \section{Swiss German localization (\texttt{de-CH}, \texttt{datetime2-de-CH.ldf})} %\changes{2.0}{2017-10-03}{Swiss German localization added} %\iffalse % \begin{macrocode} %<*datetime2-de-CH.ldf> % \end{macrocode} %\fi % Identify Module % \begin{macrocode} \ProvidesDateTimeModule{de-CH}[2017/11/13 v2.1] % \end{macrocode} % Require the basic German module % \begin{macrocode} \RequireDateTimeModule{german} % \end{macrocode} % % % Allow the user a way of configuring the "de-CH" and % "de-CH-numeric" styles. This doesn't use the package wide % separators such as % \cs{dtm@datetimesep} in case other date formats are also required. % %\begin{macro}{\DTMdeCHdowdaysep} % The separator between weekday and day % \begin{macrocode} \newcommand*{\DTMdeCHdowdaysep}{,\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHdaymonthsep} % The separator between the day and month for the text format. % \begin{macrocode} \newcommand*{\DTMdeCHdaymonthsep}{.\DTMtexorpdfstring{\protect~}{\space}} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHmonthyearsep} % The separator between the month and year for the text format. % \begin{macrocode} \newcommand*{\DTMdeCHmonthyearsep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHdatetimesep} % The separator between the date and time blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMdeCHdatetimesep}{,\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHtimezonesep} % The separator between the time and zone blocks in the full format % (either text or numeric). % \begin{macrocode} \newcommand*{\DTMdeCHtimezonesep}{\space} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHdatesep} % The separator for the numeric date format. % \begin{macrocode} \newcommand*{\DTMdeCHdatesep}{.} % \end{macrocode} %\end{macro} % %\begin{macro}{\DTMdeCHtimesep} % The separator for the numeric time format. % \begin{macrocode} \newcommand*{\DTMdeCHtimesep}{.} % \end{macrocode} %\end{macro} % % Provide keys that can be used in \cs{DTMlangsetup} to set these % separators. % \begin{macrocode} \DTMdefkey{de-CH}{dowdaysep}{\renewcommand*{\DTMdeCHdowdaysep}{#1}} \DTMdefkey{de-CH}{daymonthsep}{\renewcommand*{\DTMdeCHdaymonthsep}{#1}} \DTMdefkey{de-CH}{monthyearsep}{\renewcommand*{\DTMdeCHmonthyearsep}{#1}} \DTMdefkey{de-CH}{datetimesep}{\renewcommand*{\DTMdeCHdatetimesep}{#1}} \DTMdefkey{de-CH}{timezonesep}{\renewcommand*{\DTMdeCHtimezonesep}{#1}} \DTMdefkey{de-CH}{datesep}{\renewcommand*{\DTMdeCHdatesep}{#1}} \DTMdefkey{de-CH}{timesep}{\renewcommand*{\DTMdeCHtimesep}{#1}} % \end{macrocode} % % % Define a boolean key that can switch between full and abbreviated formats for % the month and day of week names in the text format. % \begin{macrocode} \DTMdefboolkey{de-CH}{abbr}[true]{} % \end{macrocode} % % The default is full name % \begin{macrocode} \DTMsetbool{de-CH}{abbr}{false} % \end{macrocode} % % Define a boolean key that determines if the time zone mappings % should be used. % \begin{macrocode} \DTMdefboolkey{de-CH}{mapzone}[true]{} % \end{macrocode} % The default is to use mappings. % \begin{macrocode} \DTMsetbool{de-CH}{mapzone}{true} % \end{macrocode} % % Define a boolean key that determines if the day of month should be % displayed. % \begin{macrocode} \DTMdefboolkey{de-CH}{showdayofmonth}[true]{} % \end{macrocode} % The default is to show the day of month. % \begin{macrocode} \DTMsetbool{de-CH}{showdayofmonth}{true} % \end{macrocode} % % Define a boolean key that determines if the year should be % displayed. % \begin{macrocode} \DTMdefboolkey{de-CH}{showyear}[true]{} % \end{macrocode} % The default is to show the year. % \begin{macrocode} \DTMsetbool{de-CH}{showyear}{true} % \end{macrocode} % % % Define the "de-CH" style % \begin{macrocode} \DTMnewstyle {de-CH}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-CH}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeCHdowdaysep \fi \fi % \DTMifbool{de-CH}{showdayofmonth}% {\DTMgermanordinal{##3}\DTMdeCHdaymonthsep}% {}% % \DTMifbool{de-CH}{abbr}% {\DTMdeCHshortmonthname{##2}}% {\DTMgermanmonthname{##2}}% % \DTMifbool{de-CH}{showyear}% {% \DTMdeCHmonthyearsep% \number##1 % space intended }% {}% }% \renewcommand*\DTMDisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-CH}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeCHdowdaysep \fi \fi % \DTMifbool{de-CH}{showdayofmonth}% {\DTMgermanordinal{##3}\DTMdeCHdaymonthsep}% {}% % \DTMifbool{de-CH}{abbr}% {\DTMdeCHshortmonthname{##2}}% {\DTMgermanmonthname{##2}}% % \DTMifbool{de-CH}{showyear}% {% \DTMdeCHmonthyearsep% \number##1 % space intended }% {}% } }% {% time style (use default) \renewcommand*\DTMdisplaytime[3]{% \DTMtwodigits{##1}% \DTMdeCHtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMdeCHtimesep\DTMtwodigits{##3}\fi\space% Uhr% }% }% {% zone style \DTMresetzones \DTMgermanzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{de-CH}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMdeCHtimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMdeCHdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeCHtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}[9]{% \ifDTMshowdate \DTMDisplaydate{##1}{##2}{##3}{##4}% \DTMdeCHdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeCHtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% }% % \end{macrocode} % % Define numeric style. % \begin{macrocode} \DTMnewstyle {de-CH-numeric}% label {% date style \renewcommand*\DTMdisplaydate[4]{% \ifDTMshowdow \ifnum##4>-1 \DTMifbool{de-CH}{abbr}% {\DTMgermanshortweekdayname{##4}}% {\DTMgermanweekdayname{##4}}% \DTMdeCHdowdaysep \fi \fi % \DTMifbool{de-CH}{showdayofmonth}% {% \DTMtwodigits{##3}% \DTMdeCHdatesep }% {}% \DTMtwodigits{##2}% \DTMdeCHdatesep% \DTMifbool{de-CH}{showyear}% {% \number##1 % space intended }% {}% }% \renewcommand*{\DTMDisplaydate}[4]{\DTMdisplaydate{##1}{##2}{##3}{##4}}% }% {% time style \renewcommand*\DTMdisplaytime[3]{% \DTMtwodigits{##1}% \DTMdeCHtimesep\DTMtwodigits{##2}% \ifDTMshowseconds\DTMdeCHtimesep\DTMtwodigits{##3}\fi\space% Uhr% }% }% {% zone style \DTMresetzones \DTMgermanzonemaps \renewcommand*{\DTMdisplayzone}[2]{% \DTMifbool{de-CH}{mapzone}% {\DTMusezonemapordefault{##1}{##2}}% {% \ifnum##1<0\else+\fi\DTMtwodigits{##1}% \ifDTMshowzoneminutes\DTMgermantimesep\DTMtwodigits{##2}\fi }% }% }% {% full style \renewcommand*{\DTMdisplay}[9]{% \ifDTMshowdate \DTMdisplaydate{##1}{##2}{##3}{##4}% \DTMdeCHdatetimesep \fi \DTMdisplaytime{##5}{##6}{##7}% \ifDTMshowzone \DTMdeCHtimezonesep \DTMdisplayzone{##8}{##9}% \fi }% \renewcommand*{\DTMDisplay}{\DTMdisplay}% } % \end{macrocode} % % Switch style according to the \opt{useregional} setting. % \begin{macrocode} \DTMifcaseregional {}% do nothing {\DTMsetstyle{de-CH}}% {\DTMsetstyle{de-CH-numeric}}% % \end{macrocode} % % Redefine \cs{dategerman} (or \cs{date}\meta{dialect}) to prevent % \sty{babel} from resetting \cs{today}. (For this to work, % \sty{babel} must already have been loaded if it's required.) % \begin{macrocode} \ifcsundef{date\CurrentTrackedDialect} {% \ifundef\dategerman {% do nothing }% {% \def\dategerman{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{german}}% {\DTMsetstyle{german-numeric}}% }% }% }% {% \csdef{date\CurrentTrackedDialect}{% \DTMifcaseregional {}% do nothing {\DTMsetstyle{de-CH}}% {\DTMsetstyle{de-CH-numeric}}% }% }% % \end{macrocode} % %\iffalse % \begin{macrocode} % % \end{macrocode} %\fi % % % % % % % % % % %\Finale \endinput