Fecha sin año
Me gustaría el idioma de las fechas dentro de un documento controlado por paquete. Parece que datetime2es el único paquete contemporáneo que hace estas cosas. Sin embargo, en ocasiones solo necesito mostrar el día y el mes sin año, es decir
21th March
¿Es eso posible? Sé que hay una showdayofmonthbandera indocumentada (!) ( Formato de mes / año en látex ) que hace eso para el día, pero no pude encontrar algo similar para el año.
¿Quizás debería probar con otro paquete? babel¿ Quizás ? ¿Qué sugieres?
MWE
\documentclass{scrbook}
\usepackage[english,main=british]{babel}
\usepackage[useregional]{datetime2}
\begin{document}
\DTMDisplaydate{0}{2}{10}{-1}
\end{document}
Respuestas
Editar: hay una showyearclave indocumentada . Puede aplicar esto para un solo idioma usando por ejemplo \DTMsetbool{en-GB}{showyear}{false}o para todos los idiomas usando \DTMlangsetup{showyear=false}. La segunda versión emite una advertencia porque la clave no es aplicable a algunas regiones de la jerarquía, como english-base. Esta advertencia se puede suprimir usando \DTMlangsetup*(ver datetime2 - Advertencias cuando se usa la configuración showyear ).
Esta configuración cambia el comportamiento de en \DTMDisplaydatetodo el documento, pero puede restablecerlo después de su uso.
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}
Resultado:
Respuesta original:
Puede definir un nuevo formato de fecha sin año, como se describe en el manual (p. Ej., Página 96 y más).
Cuando desee utilizar el nuevo formato, deberá configurarlo con el \DTMsetdatestyleque afectará \DTMDisplaydate. No parece posible configurarlo solo para un solo uso, por lo que luego debe restablecer el estilo a lo que era antes, en el MWE esto es en-GB(debido a main=british). Tenga en cuenta que debe agregar la calcopción de paquete para datetime2usar la \DTMmonthnamemacro.
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}
Resultado:
Tenga en cuenta que la redefinición incluye \DTMenglishordinalpara evitar que el ordinal (th) se imprima como superíndice. Una versión más internacional es \ordinalnumdel fmtcountpaquete (que admite varios idiomas europeos), pero solo como superíndice que yo sepa.
Presento \stripyearpara ayudar.
\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}