使用 datetime2 套件重新定義縮寫月份

使用 datetime2 套件重新定義縮寫月份

我想知道是否有辦法重新定義縮寫月份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}

結果:

在此輸入影像描述

在評論中,您說前面的程式碼由於您使用的套件而不起作用,但您沒有說您使用了哪些附加包,所以我不能保證此程式碼在您的實際使用中可以工作。

相關內容