通过以下 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-US
和english-base
。english-base
语言模块由所有en-
地区模块,因为这是定义月份和星期名称的文件。因此\DTMlangsetup{showyear=false}
尝试\DTMlangsetup[en-US]{showyear=false}
,它可以工作,但它也尝试\DTMlangsetup[english-base]{showyear=false}
,但此模块没有此设置,这就是为什么会出现警告。
如果您想避免警告,有两种方法:
使用可选参数来指示确切的语言模块:
\DTMlangsetup[en-US]{showyear=false}
使用带星号的表格,这样不会发出警告:
\DTMlangsetup*{showyear=false}
。(需要datetime2
v1.3+)