Beim Verwenden des datetime2
Pakets in einem scrlttr2
Dokument erhalte ich die folgende Fehlermeldung:
/usr/share/texlive/texmf-dist/tex/latex/datetime2/datetime2.sty:368: LaTeX-Fehler: \today undefiniert.
Eine Erklärung finden Sie im LaTeX-Handbuch oder im LaTeX Companion. Geben Sie H ein, um sofort Hilfe zu erhalten. ... l.368 \renewcommand*{\today} {%
Der Code zur Reproduktion sieht folgendermaßen aus:
\documentclass[british]{scrlttr2}
%\usepackage{polyglossia}
%\setmainlanguage[variant=british]{english}
\usepackage{babel}
\usepackage{datetime2}
\begin{document}
\begin{letter}{test}
\opening{Hello}
\today
\closing{Bye}
\end{letter}
\end{document}
Wenn Sie herausnehmen datetime2
, funktioniert das Dokument einwandfrei und \today
ist definiert.
\newcommand\today{}
Die einzige Möglichkeit, die ich gefunden habe, um das Problem vorübergehend zu beheben, besteht darin , vor dem Laden anzurufen datetime2
, aber es wäre schön zu wissen, warum ich das tun muss.
Antwort1
Wie in den Kommentaren erwähnt, liegt das Problem darin, dass scrlttr2
es nur \today
am Anfang des Dokuments definiert wird (im Gegensatz zu den meisten Klassen, die definieren, \today
wann die Klasse geladen wird). Ab v1.4 datetime2
wird jetzt geprüft, ob scrlttr2
(und nicht angenommen wird, \today
dass es bereits definiert ist). Für frühere Versionen gibt es Folgendes als vorübergehende Lösung:
\documentclass[british]{scrlttr2}
\usepackage{babel}
\def\today{}
\usepackage{datetime2}
\let\orgtoday\today
\begin{document}
\let\today\orgtoday
\begin{letter}{test}
\opening{Hello}
\today
\closing{Bye}
\end{letter}
\end{document}