将 LaTex 中的 datetime2 格式化为 2016 年 9 月 4 日,不包含当前日期?

将 LaTex 中的 datetime2 格式化为 2016 年 9 月 4 日,不包含当前日期?

我目前正在使用

\usepackage[UKenglish]{babel}
\usepackage{datetime}

我得到 2016 年 9 月 4 日星期日

使用命令\today或使用\newdate{example}{01}{09}{2016}(在文档之外\begin{document})和\displaydate{example}在文档内部。

我如何重新格式化此日期以使其不包含星期几的名称(最好使用 datetime2)?例如 2016 年 9 月 4 日。将“th”作为高位字母,如下所示:在此处输入图片描述

完整文档示例:

\documentclass[a4paper, 12pt, DIV=calc, headings=small]{scrreprt}
%Used packages
\usepackage[UKenglish]{babel}
\usepackage[utf8]{luainputenc}
\usepackage{datetime}

%Other definitions
\pagenumbering{arabic}

\newdate{sample}{31}{01}{2017}


\begin{document}
\displaydate{sample}\\
\today
\end{document}

答案1

既然您要求datetime2解决方案:

\documentclass{article}

\usepackage[UKenglish]{babel}
\usepackage[useregional]{datetime2}

\DTMlangsetup[en-GB]{ord=raise,monthyearsep={,\space}}

\DTMsavedate{sample}{2017-01-31}

\begin{document}
\DTMusedate{sample}

\today

\end{document}

生产

2017 年 1 月 31 日 2016 年 9 月 4 日

需要datetime2(基本代码)和datetime2-english(为了en-GB风格)。

答案2

日期的名称是用宏定义的\dayofweekname,你可以简单地用以下方法停用它\renewcommand{\dayofweekname}[3]{\relax}

代码

\documentclass[a4paper, 12pt, DIV=calc, headings=small]{scrreprt}
%Used packages
\usepackage[UKenglish]{babel}
\usepackage[utf8]{luainputenc}
\usepackage{datetime}
%Other definitions
\pagenumbering{arabic}

\newdate{sample}{31}{01}{2017}

\renewcommand{\dayofweekname}[3]{\relax}

\begin{document}
\displaydate{sample}\\
\today
\end{document}

输出

在此处输入图片描述

相关内容