這個問題類似於設定不含年份的日期格式,但我無法推斷出答案。我想刪除日期中的年份,
\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}