答案1
最好换成新的datetime2
包,用于替换datetime
。此示例还需要datetime2-english
因为datetime2
语言模块是分开分布的。
\documentclass{article}
\usepackage[en-GB]{datetime2}
\DTMlangsetup[en-GB]{showdayofmonth=false,monthyearsep={,\space}}
\begin{document}
\DTMdate{2016-02-01}. % not expandable
\DTMdisplaydate{2016}{2}{1}{-1}. % expandable
\end{document}
您可以本地化\DTMlangsetup
:
\documentclass{article}
\usepackage[en-GB]{datetime2}
\DTMlangsetup[en-GB]{monthyearsep={,\space}}% global
\begin{document}
\section{Before}
Just using global setting.
\DTMdate{2016-02-01}.
\DTMdisplaydate{2016}{2}{1}{-1}.
\today.
\section{Scoped}
Localising one of the settings. The non-conflicting global settings
are still in place.
{% scope
\DTMlangsetup[en-GB]{showdayofmonth=false}% local
\DTMdate{2016-02-01}.
\DTMdisplaydate{2016}{2}{1}{-1}.
\today.
}
\section{After}
Just using global setting.
\DTMdate{2016-02-01}.
\DTMdisplaydate{2016}{2}{1}{-1}.
\today.
\end{document}
\DTMdate
calc
具有更方便的界面,并且如果使用包选项(这会datetime2.sty
自动加载)则能够计算星期几datetime2-calc.sty
,但它很健壮并且不能在可扩展的环境中使 用,例如将信息写入外部文件(例如目录或书签)。
例如,如果\DTMdate{2016-02-01}
在分段命令中使用 (例如\chapter
或\section
),它将被写入文件.toc
,而\DTMdate{2016-02-01}
不是February, 2016
(或当时的样式格式)。这意味着日期将以.toc
读取文件时当前有效的样式出现在目录中\tableofcontents
,而章节标题将使用当时有效的样式。
坚固的非可扩展材料也不能用于 PDF 书签。该命令将被丢弃,您只剩下参数。
例如:
\documentclass{article}
\usepackage[en-GB]{datetime2}
\usepackage[hidelinks]{hyperref}
\DTMlangsetup[en-GB]{monthyearsep={,\space}}% global
\begin{document}
\tableofcontents
\DTMlangsetup[en-GB]{showdayofmonth=false}
\section{\DTMdate{2016-02-01}}
\end{document}
这会触发警告:
Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding):
(hyperref) removing `\DTMdate' on input line 11.
书签显示该部分为“2016-02-01”,目录显示该部分为“2016 年 2 月 1 日”,部分标题显示为“2016 年 2 月”。
如果\DTMdisplaydate
改用,结果会更加一致:
\documentclass{article}
\usepackage[en-GB]{datetime2}
\usepackage[hidelinks]{hyperref}
\DTMlangsetup[en-GB]{monthyearsep={,\space}}% global
\begin{document}
\tableofcontents
\DTMlangsetup[en-GB]{showdayofmonth=false}
\section{\DTMdisplaydate{2016}{02}{01}{-1}}
\end{document}
书签、目录和章节现在都显示相同的“2016 年 2 月”,这是\section
使用时有效的样式。