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