datetime2 パッケージで短縮された月を再定義する

datetime2 パッケージで短縮された月を再定義する

短縮された月を再定義する方法があるかどうか疑問に思っていましたdatetime2パッケージでは、コマンドを使用すると\today、月が下の画像の最初の列とまったく同じように書き込まれます。

\documentclass{article}
\usepackage[en-US]{datetime2}
\DTMlangsetup[en-US]{abbr}
\begin{document}
    \today
\end{document}

すでに解決策はある---\today を使って小文字の月名を作る方法---datetimeパッケージを使用して月スタイルを再定義しますが、このパッケージはドキュメントとのコンフィを作成します。

ありがとう。

ここに画像の説明を入力してください

編集@quark67 の解決策を考慮すると:

quark67 のソリューションを使用して、ハイフネーションに使用される との競合を特定しました\usepackage[USenglish]{babel}。 quark67 のソリューションを機能させるには引数を削除するだけで済みました[USenglish]が、 はそのまま保持したいと思います\usepackage[USenglish]{babel}

解決

この投稿に関連して:今日の再定義 - バベルとの衝突、@quark67 のコードを内部に配置すると\AtBeginDocument{...}解決しました。

答え1

これを試してみてください(パッケージの読み込みに注意してください)datetime2 計算数値から短い月名への変換用)。

編集:あなたが言うように、ドキュメントクラスが必要ですルーセシスhttps://scholarship.rice.edu/handle/1911/21747) をコメントに追加して、このドキュメント クラスを使用してコードを更新します。

また、新しい要件 (6 月は「June」と省略し、「Jun.」は使用せず、7 月は「Jul.」は使用せず、「July」と省略する) が追加されたため、コードを更新しました (ダミーのバグを修正しました。5 月は「May.」と省略されることはありません)。

編集2:表の最初の列にあるように、「9月」は「Sep.」ではなく「Sept.」と省略されます。

\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}

結果:

ここに画像の説明を入力してください

コメントでは、使用しているパッケージが原因で前のコードが機能しないと述べていますが、どの追加パッケージを使用しているかは述べていないため、このコードが実際の使用状況で機能することを保証することはできません。

関連情報