datetime2——使用 showyear 设置时发出警告

datetime2——使用 showyear 设置时发出警告

通过以下 MWE,我收到两个警告:

\documentclass{article}

\usepackage[en-US]{datetime2}

\begin{document}

\DTMlangsetup{showyear=false}
\DTMdate{2017-03-13}
\DTMlangsetup{showyear=true}

\end{document}

这些警告是:

Package datetime2 Warning: Region `english-base' has ignored 
(datetime2)                the following settings:
(datetime2)                showyear=false
 on input line 7.

Package datetime2 Warning: Region `english-base' has ignored 
(datetime2)                the following settings:
(datetime2)                showyear=true
 on input line 9.

尽管这些警告表明设置被忽略,但结果还是如预期的那样是 3 月 13 日。如果我不打算使用 babel 和 datetime2-* 语言包,这会在将来引起问题吗?或者这只是使用默认语言包的结果,因此 datetime2 会感到困惑?

(虽然删除[en-US]会导致警告消失,但也会导致日期被打印为2017-03-13,这是不可取的。)

答案1

如果未使用可选参数\DTMlangsetup,它将迭代全部加载datetime2语言文件并依次将设置应用于每个文件。在 的情况下en-US,此列表为en-USenglish-baseenglish-base语言模块由所有en-地区模块,因为这是定义月份和星期名称的文件。因此\DTMlangsetup{showyear=false}尝试\DTMlangsetup[en-US]{showyear=false},它可以工作,但它也尝试\DTMlangsetup[english-base]{showyear=false},但此模块没有此设置,这就是为什么会出现警告。

如果您想避免警告,有两种方法:

  1. 使用可选参数来指示确切的语言模块:\DTMlangsetup[en-US]{showyear=false}

  2. 使用带星号的表格,这样不会发出警告:\DTMlangsetup*{showyear=false}。(需要datetime2v1.3+)

相关内容