scrlttr2-Dokument schlägt mit datetime2-Paket fehl

scrlttr2-Dokument schlägt mit datetime2-Paket fehl

Beim Verwenden des datetime2Pakets in einem scrlttr2Dokument 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 \todayist 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 scrlttr2es nur \todayam Anfang des Dokuments definiert wird (im Gegensatz zu den meisten Klassen, die definieren, \todaywann die Klasse geladen wird). Ab v1.4 datetime2wird jetzt geprüft, ob scrlttr2(und nicht angenommen wird, \todaydass 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}

verwandte Informationen