O documento scrlttr2 falha com o pacote datetime2

O documento scrlttr2 falha com o pacote datetime2

Ao usar o datetime2pacote em um scrlttr2documento, recebo o erro:

/usr/share/texlive/texmf-dist/tex/latex/datetime2/datetime2.sty:368: Erro LaTeX: \hoje indefinido.

Consulte o manual do LaTeX ou o LaTeX Companion para obter explicações. Digite H para ajuda imediata. ... l.368 \renewcommand*{\today} {%

O código para reproduzir isso é semelhante a:

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

Se você retirar datetime2, o documento funciona bem e \todayfica definido.

A única maneira que encontrei de corrigir temporariamente o problema é ligar \newcommand\today{}antes de carregar datetime2, mas seria bom saber por que preciso fazer isso.

Responder1

Conforme mencionado nos comentários, o problema decorre da scrlttr2definição apenas \todayno início do documento (ao contrário da maioria das classes que definem \todayquando a classe é carregada). A partir da v1.4, datetime2agora verifica scrlttr2(e não assume \todayque já está definido). Para versões anteriores, o seguinte é uma correção temporária:

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

informação relacionada