Esta questão é semelhante aFormatar data sem ano, mas não consigo deduzir as respostas. Eu gostaria de deletar o ano em uma data,
\documentclass{article}
\usepackage[spanish,mexico]{babel}
\usepackage{datetime}
\begin{document}
I have: \today
I want: 15 de diciembre
I have: \longdate\today
I want: lunes 15 de diciembre
\end{document}
como eu uso o babel-spanish, é suficiente neste idioma, mas em outro idioma pode ser útil para outras pessoas.
Responder1
datetime
fornece o \newdateformat
comando apenas para esses casos:
\documentclass{article}
\usepackage[spanish,mexico]{babel}
\usepackage{datetime}
\newdateformat{myshort}{%
\THEDAY\ de \monthname[\THEMONTH]%
}
\newdateformat{mylong}{%
\dayofweekname{\THEDAY}{\THEMONTH}{\THEYEAR}
\THEDAY\ de \monthname[\THEMONTH]%
}
\begin{document}
I have: \today
I now have: \myshort\today
I want: 15 de diciembre
I have: \longdate\today
I now have: \mylong\today
I want: lunes 15 de diciembre
\end{document}
Responder2
Eu não falo nenhum tipo de espanhol, mas isso gira puramente em torno de uma atualização para o \formatdate
. Abaixo forneci \noyeardate
o que elimina a produção do ano. Além disso, ele precede de
o nome do mês:
\documentclass{article}
\usepackage[spanish,mexico]{babel}
\usepackage{datetime}
\makeatletter
\let\oldmonthname\monthname
\DeclareRobustCommand*{\longdate}{%
\renewcommand*{\formatdate}[3]{%
\ifshowdow\dayofweekname{##1}{##2}{##3} \fi
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\ordinaldate{\the\@day}\ \monthname[\@month]}%, \the\@year}%
\renewcommand{\monthname}{de \oldmonthname}%
}
\DeclareRobustCommand*{\noyeardate}{%
\renewcommand*{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##2\relax
\number\@day~de \monthname[\@month]}%
}
\makeatother
\begin{document}
\noyeardate
I have: \today
I want: 15 de diciembre
\bigskip
I have: \longdate\today
I want: lunes 15 de diciembre
\end{document}