
パッケージによって制御される文書内の日付言語が欲しいです。これが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
を追加する必要があることに注意してください。calc
datetime2
\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}