При использовании 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}