बिना साल की तारीख

Sep 20 2020

मैं पैकेज द्वारा नियंत्रित दस्तावेज़ के भीतर दिनांक भाषा को पसंद करूंगा। ऐसा लगता है कि datetime2इस सामान को करने वाला एकमात्र समकालीन पैकेज है। हालांकि, कभी-कभी मुझे केवल वर्ष के बिना दिन और महीने प्रदर्शित करने की आवश्यकता होती है, अर्थात

21th March

क्या यह संभव है? मुझे पता है कि वहाँ अनिर्दिष्ट (!) showdayofmonthझंडा ( लेटेक्स में महीना / वर्ष प्रारूप ) है जो दिन के लिए ऐसा करता है, लेकिन मुझे वर्ष के लिए समान नहीं मिला।

शायद मुझे एक और पैकेज की कोशिश करनी चाहिए? हो सकता है babel? आप क्या सुझाव देंगे?

मेगावाट

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

\begin{document}

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

\end{document}

जवाब

4 Marijn Sep 20 2020 at 20:56

संपादित करें: एक अनिर्दिष्ट showyearकुंजी है। आप उदाहरण के लिए \DTMsetbool{en-GB}{showyear}{false}या सभी भाषाओं का उपयोग करके एकल भाषा के लिए इसे लागू कर सकते हैं \DTMlangsetup{showyear=false}। दूसरा संस्करण एक चेतावनी जारी करता है क्योंकि कुंजी पदानुक्रम में कुछ क्षेत्रों पर लागू नहीं होती है, जैसे कि english-base। इस चेतावनी को दबाकर उपयोग किया जा सकता है \DTMlangsetup*(देखें डेटाइम 2 - दिखावटी सेटिंग का उपयोग करते समय चेतावनी )।

यह सेटिंग \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। यह केवल एकल उपयोग के लिए सेट करना संभव नहीं लगता है, इसलिए बाद में आपको स्टाइल को फिर से सेट करने की आवश्यकता है जो कि पहले था, एमडब्ल्यूई में यह 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अधिशेष (वें) को सुपरस्क्रिप्ट के रूप में मुद्रित होने से रोकने के लिए शामिल है। एक और अधिक अंतरराष्ट्रीय संस्करण है \ordinalnumसे fmtcountपैकेज (जो यूरोपीय भाषाओं की एक संख्या का समर्थन करता है), लेकिन केवल सुपरस्क्रिप्ट के रूप में तक मुझे पता है के रूप में।

2 StevenB.Segletes Sep 20 2020 at 21:25

मैं \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}