由于datetime
被 取代datetime2
,我正在努力使用新包实现以下目标:
在英文文档中,我想像\today
这样显示一次当前日期()2017 年 12 月 20 日并且一旦像这样2017-12-20。
根据文档,对于整个文档,我只能以一种方式全局正确执行。我没有找到一个简单的示例来告诉我如何完成此操作。
答案在https://tex.stackexchange.com/a/250057摆弄\@dtm@month
等。有那么难吗?应该很简单
答案1
您无需定义新格式。您可以使用区域英语日月格式之一,例如en-GB
,用于文本日期和iso
数字 ISO 样式日期:
\documentclass{article}
\usepackage[en-GB]{datetime2}
\DTMlangsetup[en-GB]{ord=level}
\begin{document}
\today. \DTMsetstyle{iso}\today.
\end{document}
要求datetime2
和datetime2-english
已安装。
答案2
为了提出一个简短的例子,我自己解决了它:
\documentclass[english]{scrartcl}
\usepackage[showdow,en-GB]{datetime2}
\DTMlangsetup[en-GB]{ord=raise}
\DTMnewdatestyle{myShortDate}{%
\renewcommand{\DTMdisplaydate}[4]{\number##1-\number##2-\number##3}%
\renewcommand{\DTMDisplaydate}{\DTMdisplaydate}%
}
\DTMnewdatestyle{myLongDate}{%
\renewcommand*{\DTMenglishfmtordsuffix}{\DTMenGBfmtordsuffix}%
\renewcommand{\DTMdisplaydate}[4]{\DTMenglishordinal{##3}\ \DTMenglishmonthname{##2}\ \number##1}%
\renewcommand{\DTMDisplaydate}{\DTMdisplaydate}%
}
\begin{document}
{\DTMsetdatestyle{myShortDate}\today}\par
\today\par
{\DTMsetdatestyle{myLongDate}\today}\par
\end{document}
虽然它不像 Nicola Talbot 的回答那么简短