这个问题类似于格式化日期而不包含年份,但我无法推断答案。我想删除日期中的年份,
\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}