Yıl olmadan tarih
Paket tarafından kontrol edilen bir belgede tarih dilini istiyorum. Görünüşe göre datetime2bunu yapan tek çağdaş paket bu. Ancak, bazen yıl olmadan yalnızca gün ve ayı göstermem gerekiyor, yani
21th March
Mümkün mü? Bunu gün için yapan belgelenmemiş (!) showdayofmonthBayrak ( Latekste Ay / Yıl Biçimi ) olduğunu biliyorum, ancak yıl için benzerini bulamadım.
Belki başka bir paket denemeliyim? Belki babel? Ne öneriyorsun?
MWE
\documentclass{scrbook}
\usepackage[english,main=british]{babel}
\usepackage[useregional]{datetime2}
\begin{document}
\DTMDisplaydate{0}{2}{10}{-1}
\end{document}
Yanıtlar
Düzenleme: Belgelenmemiş bir showyearanahtar var. Bunu örneğin kullanarak tek bir dil için \DTMsetbool{en-GB}{showyear}{false}veya kullanan tüm diller için uygulayabilirsiniz \DTMlangsetup{showyear=false}. İkinci sürüm bir uyarı verir çünkü anahtar hiyerarşideki bazı bölgeler için geçerli değildir, örneğin english-base. Bu uyarı kullanılarak bastırılabilir \DTMlangsetup*( datetime2 - showyear ayarını kullanırken uyarılara bakın ).
Bu ayar \DTMDisplaydate, belge genelinde davranışını değiştirir , ancak kullanımdan sonra sıfırlayabilirsiniz.
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}
Sonuç:
Orijinal cevap:
Kılavuzda açıklandığı gibi, yıl olmadan yeni bir tarih formatı tanımlayabilirsiniz (örn., Sayfa 96 ve daha fazlası).
Yeni formatı kullanmak istediğinizde, onu \DTMsetdatestyleetkileyecek olanı ayarlamanız gerekir \DTMDisplaydate. Bunu sadece tek kullanım için ayarlamak mümkün görünmüyor, bu yüzden daha sonra stili daha önce olduğu gibi sıfırlamanız gerekiyor, MWE'de bu en-GB(çünkü main=british). Makroyu kullanmak calciçin paket seçeneğini eklemeniz gerektiğini unutmayın .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}
Sonuç:
Yeniden tanımlamanın \DTMenglishordinal, sıralı (th) 'nin üst simge olarak yazdırılmasını önlemek için içerdiğini unutmayın . Daha uluslararası versiyonu \ordinalnumdan fmtcount(Avrupa dilleri destekler) paketin fakat sadece üst simge olarak bildiğim kadarıyla kadar.
\stripyearYardım etmek için tanıştırıyorum .
\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}