年なしの日付

年なしの日付

パッケージによって制御される文書内の日付言語が欲しいです。これがdatetime2このことを行う唯一の最新のパッケージのようです。しかし、時々年を表示せずに日と月だけを表示したいことがあります。

21th March

それは可能ですか?文書化されていない(!)showdayofmonthフラグ(LaTeX での月/年の形式) は日単位で同じことを行いますが、年単位で同様のことを行うものは見つかりませんでした。

別のパッケージを試した方がいいでしょうか? 多分babel? 何かお勧めはありますか?

ムウェ

\documentclass{scrbook}
\usepackage[english,main=british]{babel}
\usepackage[useregional]{datetime2}

\begin{document}

\DTMDisplaydate{0}{2}{10}{-1}

\end{document}

答え1

編集: 文書化されていないキーがありますshowyear。これを、たとえば を使用して単一の言語に適用することも\DTMsetbool{en-GB}{showyear}{false}、 を使用してすべての言語に適用することもできます。2\DTMlangsetup{showyear=false}番目のバージョンでは、キーが などの階層内の一部の領域に適用できないため、警告が表示されます。この警告は、( を参照)english-baseを使用して抑制できます。\DTMlangsetup*datetime2 -- showyear 設定使用時の警告)。

\DTMDisplaydateこの設定により、ドキュメント全体の動作が変更されますが、使用後にリセットすることができます。

MWE:

\documentclass{scrbook}
\usepackage[english,main=british]{babel}
\usepackage[useregional]{datetime2}

\begin{document}

\DTMlangsetup*{showyear=false}
\DTMDisplaydate{2020}{2}{10}{-1} is the date

\DTMlangsetup*{showyear=true}
\DTMDisplaydate{2020}{2}{10}{-1} is the date

\end{document}

結果:

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


元の回答:

年を除いた新しい日付形式を定義することもできます。マニュアル(例:96ページ以降)

新しい形式を使用する場合は、 を使用して設定する必要があります。\DTMsetdatestyleこれは に影響します\DTMDisplaydate。 一度だけの使用のために設定することは不可能なようですので、その後、スタイルを以前の状態にリセットする必要があります。MWE では、これはen-GB( のため) です。 マクロを使用するには、 のパッケージ オプションmain=britishを追加する必要があることに注意してください。calcdatetime2\DTMmonthname

MWE:

\documentclass{scrbook}
\usepackage[english,main=british]{babel}
\usepackage[useregional,calc]{datetime2}

\begin{document}

\DTMnewdatestyle{noyear}{%
\renewcommand{\DTMdisplaydate}[4]{%
\DTMenglishordinal{##3} \DTMmonthname{##2}}%
}
\DTMsetdatestyle{noyear}
\DTMDisplaydate{2020}{2}{10}{-1}

\DTMsetdatestyle{en-GB}
\DTMDisplaydate{2020}{2}{10}{-1}

\end{document}

結果:

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

再定義には、\DTMenglishordinal序数 (th) が上付き文字として印刷されないようにする が含まれていることに注意してください。より国際的なバージョンはパッケージ\ordinalnumにありますfmtcount(これは多くのヨーロッパ言語をサポートしています) が、私の知る限り、上付き文字としてのみ使用できます。

答え2

お手伝いのために紹介します\stripyear

\documentclass{scrbook}
\usepackage[english,main=british]{babel}
\usepackage[useregional]{datetime2}
\newcommand\stripyear[1]{%
  \edef\tmp{#1}\expandafter\stripyearaux\tmp\relax}
\def\stripyearaux#1 #2 #3\relax{#1 #2}
\begin{document}
\stripyear{\DTMDisplaydate{2020}{2}{10}{-1}}.
\end{document}

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

関連情報