Документ scrlttr2 не работает с пакетом datetime2

Документ scrlttr2 не работает с пакетом datetime2

При использовании datetime2пакета в scrlttr2документе возникает ошибка:

/usr/share/texlive/texmf-dist/tex/latex/datetime2/datetime2.sty:368: Ошибка LaTeX: \today не определено.

См. руководство LaTeX или LaTeX Companion для объяснений. Введите H для немедленной помощи. ... l.368 \renewcommand*{\today} {%

Код для воспроизведения этого выглядит так:

\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}

Если убрать datetime2, документ работает нормально и \todayопределяется.

Единственный способ, который я нашел, временно решить эту проблему — позвонить \newcommand\today{}перед загрузкой datetime2, но было бы неплохо узнать, зачем это нужно.

решение1

Как упоминалось в комментариях, проблема возникает из- scrlttr2за определения только \todayв начале документа (в отличие от большинства классов, которые определяются \todayпри загрузке класса). Начиная с версии 1.4, datetime2теперь проверяется scrlttr2(и не предполагается, \todayчто уже определено). Для более ранних версий временное исправление:

\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}

Связанный контент