我想知道是否有办法重新定义缩写的月份datetime2
包,这样,当使用命令时\today
,月份的写法与下图的第一列完全一样。
\documentclass{article}
\usepackage[en-US]{datetime2}
\DTMlangsetup[en-US]{abbr}
\begin{document}
\today
\end{document}
已经有解决方案了——如何使用 \today 创建小写的月份名称---使用datetime
包来重新定义月份样式,但是这个包与我的文档创建了一个confit。
谢谢。
编辑根据@quark67的解决方案:
我发现使用 quark67 的解决方案与 存在冲突\usepackage[USenglish]{babel}
,用于连字符。我只需删除该参数[USenglish]
即可使 quark67 的解决方案有效,但我仍然希望保留\usepackage[USenglish]{babel}
。
解决方案
参考这篇文章:\today 的重新定义——与 babel 的冲突,将@quark67 的代码放在里面\AtBeginDocument{...}
就解决了。
答案1
尝试一下(注意包的加载datetime2-计算用于从数值到短月份名称的转换)。
编辑:正如你所说,你需要文档类鲁塞西斯(https://scholarship.rice.edu/handle/1911/21747) 在评论中,我用这个文档类更新了我的代码。
此外,由于您添加了新要求(June 必须缩写为“June”,不能缩写为“Jun.”,July 必须缩写为“July”,不能缩写为“Jul.”),我已更新代码(并更正了我的虚拟错误,May 永远不会缩写为“May.”)
编辑2:“September” 缩写为“Sept.”,而不是表格第一列的“Sep.”。
\documentclass{ruthesis}
\usepackage[en-US]{datetime2}
\usepackage{datetime2-calc}
\DTMnewdatestyle{mydate}{%
\renewcommand*{\DTMdisplaydate}[4]{%
\edef\paramTwo{##2}%
\def\monthV{05}%
\def\monthVI{06}%
\def\monthVII{07}%
\def\monthIX{09}%
\DTMshortmonthname{##2}%
\ifx\paramTwo\monthV%
\else\ifx\paramTwo\monthVI%
e%
\else\ifx\paramTwo\monthVII
y%
\else\ifx\paramTwo\monthIX
t.%
\else
.%
\fi\fi\fi\fi%
\ \DTMtwodigits{##3}, ##1}%
\renewcommand*{\DTMDisplaydate}{\DTMdisplaydate}%
}
\DTMsetdatestyle{mydate}
\begin{document}
\today % Mar. 11, 2023
\DTMdate{2023-06-11}
\DTMdate{2023-05-11}
\DTMdate{2023-04-11}
\DTMdate{2023-07-11}
\end{document}
结果:
在评论中,您说前面的代码由于您使用的包而无法运行,但是您没有说您使用了哪些附加包,所以我不能保证该代码在您的实际使用中能够运行。