我想知道是否有辦法重新定義縮寫月份datetime2
包,這樣,當使用命令時\today
,月份的寫法與下圖的第一列完全相同。
\documentclass{article}
\usepackage[en-US]{datetime2}
\DTMlangsetup[en-US]{abbr}
\begin{document}
\today
\end{document}
已經有解決辦法了——如何使用 \today 建立小寫月份名稱---withdatetime
包重新定義月份樣式,但是這個包與我的文檔創建了一個confit。
謝謝。
編輯根據@quark67的解決方案:
我使用 quark67 的解決方案將衝突確定為 with \usepackage[USenglish]{babel}
,用於連字符。我只需刪除參數[USenglish]
即可使 quark67 的解決方案起作用,但我仍然想保留\usepackage[USenglish]{babel}
.
解決方案
參考這篇文章:重新定義\今天-與babel的衝突,將@quark67的程式碼放入其中\AtBeginDocument{...}
解決了它。
答案1
試試這個(注意包的加載datetime2 計算用於從數值到短月份名稱的轉換)。
編輯:正如你所說,你需要文檔類魯西斯(https://scholarship.rice.edu/handle/1911/21747)在評論中,我用這個文檔類別更新了我的程式碼。
另外,由於您添加了新的要求(六月必須縮寫為“六月”,而不是“六月”,七月必須縮寫為“七月”,而不是“七月”),我更新了代碼(並糾正了我的虛擬錯誤) ,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}
結果:
在評論中,您說前面的程式碼由於您使用的套件而不起作用,但您沒有說您使用了哪些附加包,所以我不能保證此程式碼在您的實際使用中可以工作。