Datum ohne Jahr

Datum ohne Jahr

Ich möchte die Datumssprache innerhalb eines Dokuments, das durch ein Paket gesteuert wird. Es scheint, dass dies datetime2das einzige aktuelle Paket ist, das diese Funktion bietet. Gelegentlich muss ich jedoch nur Tag und Monat ohne Jahr anzeigen, d. h.

21th March

Ist das möglich? Ich weiß, dass es eine undokumentierte (!) showdayofmonthFlagge gibt (Monats-/Jahresformat in Latex), das dies für den Tag tut, aber ich konnte nichts Ähnliches für das Jahr finden.

Vielleicht sollte ich ein anderes Paket ausprobieren? Vielleicht babel? Was würden Sie vorschlagen?

MWE

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

\begin{document}

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

\end{document}

Antwort1

Edit: Es gibt einen nicht dokumentierten showyearSchlüssel. Sie können diesen beispielsweise für eine einzelne Sprache \DTMsetbool{en-GB}{showyear}{false}oder für alle Sprachen mit anwenden \DTMlangsetup{showyear=false}. Die zweite Version gibt eine Warnung aus, da der Schlüssel für einige Bereiche in der Hierarchie nicht anwendbar ist, wie beispielsweise english-base. Diese Warnung kann unterdrückt werden mit \DTMlangsetup*(siehedatetime2 – Warnungen bei Verwendung der Einstellung „showyear“).

Diese Einstellung ändert das Verhalten im \DTMDisplaydategesamten Dokument, Sie können es jedoch nach der Verwendung zurücksetzen.

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}

Ergebnis:

Bildbeschreibung hier eingeben


Ursprüngliche Antwort:

Sie können ein neues Datumsformat ohne Jahr definieren, wie im AbschnittHandbuch(zB Seite 96 und weiter).

Wenn Sie das neue Format verwenden möchten, müssen Sie es mit festlegen, \DTMsetdatestylewas sich auf auswirkt \DTMDisplaydate. Es scheint nicht möglich zu sein, es nur für eine einmalige Verwendung festzulegen, daher müssen Sie den Stil anschließend auf den vorherigen Zustand zurücksetzen. Im MWE ist dies en-GB(aufgrund von ). Beachten Sie, dass Sie die Paketoption für main=britishhinzufügen müssen, um das Makro zu verwenden .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}

Ergebnis:

Bildbeschreibung hier eingeben

Beachten Sie, dass die Neudefinition dazu dient \DTMenglishordinal, zu verhindern, dass die Ordnungszahl (th) hochgestellt wird. Eine internationalere Version ist \ordinalnumim fmtcountPaket enthalten (das eine Reihe europäischer Sprachen unterstützt), aber meines Wissens nur als hochgestellte Zahl.

Antwort2

Ich stelle vor \stripyear, um zu helfen.

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

Bildbeschreibung hier eingeben

verwandte Informationen