연도가 없는 날짜

연도가 없는 날짜

패키지로 제어되는 문서 내의 날짜 언어를 원합니다. datetime2이 작업을 수행하는 유일한 현대 패키지인 것 같습니다 . 그러나 때로는 연도 없이 일과 월만 표시해야 하는 경우도 있습니다.

21th March

그게 가능합니까? 문서화되지 않은(!) showdayofmonth플래그(Latex의 월/년 형식) 그날은 그렇게 했는데, 올해에는 비슷한 것을 찾을 수 없었습니다.

다른 패키지를 시도해 봐야 할까요? 아마도 babel? 무엇을 제안하시겠습니까?

MWE

\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}하거나 를 사용하여 모든 언어에 적용할 수 있습니다 \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}

여기에 이미지 설명을 입력하세요

관련 정보