연도가없는 날짜

Sep 20 2020

패키지에서 제어하는 ​​문서 내의 날짜 언어를 원합니다. 이 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}

답변

4 Marijn Sep 20 2020 at 20:56

편집 : 문서화되지 않은 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 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}