дата и время: дата без года

дата и время: дата без года

Этот вопрос похож наФормат даты без года, но я не могу вывести ответы. Я хотел бы удалить год в дате,

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

так как я использую babel-spanish, этого достаточно на этом языке, но и на других языках может быть полезным для других людей.

решение1

datetimeпредоставляет \newdateformatкоманду именно для таких случаев:

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

введите описание изображения здесь

решение2

Я не говорю по-испански, но это просто вращается вокруг обновления \formatdate. Ниже я предоставил, \noyeardateчто удаляет год из вывода. Кроме того, он добавляется deк названию месяца:

введите описание изображения здесь

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

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