将 datetime2 中的月份名称更改为短月份名称(德语)

将 datetime2 中的月份名称更改为短月份名称(德语)

我使用\usepackage[ngerman]{datetime2}并尝试创建一个使用 的缩写形式的日期Monthname

当我输入时,\DTMdate{2016-12-4}我得到了结果4. Dezember 2016。但我想要简短的Monthname 4. Dez. 2016

我查阅了文档,尝试更改样式,搜索了论坛和网络,但找不到任何解决方案。我认为问题之一是,包ngermandatetime2支持短Monthnames?

但我也尝试过用

\newcommand*{\DTMgermanshortMonthname}[1]{%
  \ifcase#1
  \or
  Jän.%
  \or
  Feb.%
  \or
  März%
  \or
  Apr.%
  \or
  Mai%
  \or
  Juni%
  \or
  Juli%
  \or
  Aug.%
  \or
  Sep.%
  \or
  Okt.%
  \or
  Nov.%
  \or
  Dez.%
  \fi
}

当我尝试这个时,我总是收到错误消息,并且我仍然不确定如何datetime2改变样式来使用shortMonthname

我不敢相信我花了 3 个小时才改变这一点 -,-

感谢您的帮助!

最小示例:

\documentclass{scrartcl}

\usepackage[ngerman]{babel}
\usepackage[ngerman]{datetime2}

\begin{document}

\DTMdate{2016-12-4}

\end{document}

答案1

不确定这是否是最好的方法,但我定义了\DTMshortdate{}

\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[ngerman]{datetime2}
\let\svDTMgermanmonthname\DTMgermanmonthname
\newcommand\DTMshortdate[1]{%
  \def\DTMgermanmonthname##1{%
    \ifcase##1%
    \or Jän.\or Feb.\or März\or Apr.\or Mai\or Juni% 
    \or Juli\or Aug.\or Sep.\or Okt.\or Nov.\or Dez.\fi
  }%
  \DTMdate{#1}%
  \let\DTMgermanmonthname\svDTMgermanmonthname%
}
\begin{document}
\DTMshortdate{2016-12-4}

\DTMdate{2016-12-4}
\end{document}

在此处输入图片描述

如果你不需要长日期形式,并希望定义\DTMdate始终使用短日期,那么这更简单

\documentclass{scrartcl}
\usepackage[ngerman]{babel}
\usepackage[ngerman]{datetime2}
  \def\DTMgermanmonthname#1{%
    \ifcase#1%
    \or Jän.\or Feb.\or März\or Apr.\or Mai\or Juni% 
    \or Juli\or Aug.\or Sep.\or Okt.\or Nov.\or Dez.\fi
  }%
\begin{document}
\DTMdate{2016-12-4}
\end{document}

相关内容