fecha sin año

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, ocasionalmente sólo necesito mostrar el día y el mes sin el año, es decir

21th March

¿Es eso posible? Sé que hay una showdayofmonthbandera de indocumentados (!) (Formato Mes/Año en Latex) que hace eso por el día, pero no pude encontrar algo similar para el año.

¿Quizás debería probar con otro paquete? Tal vez babel? ¿Qué sugieres?

MWE

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

\begin{document}

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

\end{document}

Respuesta1

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*(verdatetime2 - Advertencias al usar la configuración showyear).

Esta configuración cambia el comportamiento de \DTMDisplaydatetodo el documento, pero puede restablecerla 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:

ingrese la descripción de la imagen aquí


Respuesta original:

Puede definir un nuevo formato de fecha sin año, como se describe en lamanual(por ejemplo, página 96 y siguientes).

Cuando desee utilizar el nuevo formato, deberá configurarlo mediante \DTMsetdatestyleel cual afectará \DTMDisplaydate. No parece posible configurarlo para un solo uso, por lo que luego debe restablecer el estilo al que tenía antes, en 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:

ingrese la descripción de la imagen aquí

Tenga en cuenta que la redefinición incluye \DTMenglishordinalpara evitar que el ordinal (th) se imprima como superíndice. Hay una versión más internacional \ordinalnumdel fmtcountpaquete (que admite varios idiomas europeos), pero hasta donde yo sé, solo como superíndice.

Respuesta2

Me 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}

ingrese la descripción de la imagen aquí

información relacionada