Ao usar o datetime2
pacote em um scrlttr2
documento, 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 \today
fica 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 scrlttr2
definição apenas \today
no início do documento (ao contrário da maioria das classes que definem \today
quando a classe é carregada). A partir da v1.4, datetime2
agora verifica scrlttr2
(e não assume \today
que 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}