我尝试使用该包datetime2
获取今天星期几的完整名称,然后xstring
根据需要对其进行修剪。但是当我运行以下代码时,结果根本没有被修剪:
\documentclass{article}
\usepackage[calc]{datetime2}
\usepackage{xstring}
\newcommand{\mytoday}{%
\DTMcomputedayofweekindex{\DTMtoday}{\todaydowindex}
\DTMtoday-\StrLeft{\DTMweekdayname{\todaydowindex}}{3}
}
\title{Example}
\date{\mytoday}
\begin{document}
\maketitle
\end{document}
我知道它也可以用来完成\ifcase
,但我想了解为什么我的代码不起作用并返回这个未修剪的结果。
答案1
datetime2
已经有了\DTMshortweekdayname
,不需要重新发明轮子。
\documentclass[english]{article}
\usepackage[calc]{datetime2}
\newcommand{\mytoday}{%
\DTMcomputedayofweekindex{\DTMtoday}{\todaydowindex}%
\DTMtoday-\DTMshortweekdayname{\todaydowindex}}
\title{Example}
\date{\mytoday}
\begin{document}
\maketitle
\end{document}
编辑:另一种方法是,鉴于注释指出该文档实际上是法语的,并且datetime2
在这种情况下在星期几中添加了缩写点,这是不受欢迎的。手册中datetime2
对月份和星期几名称进行了以下说明:
如果您希望月份名称或星期名称出现在章节标题中,最好使用语言模块提供的可扩展命令,而不是 提供的强大命令
datetime2-calc
。请记住,您不能在 PDF 书签中使用强大命令,并且此类命令可能会阻止使用 的页面样式的标题中的大小写更改\MakeUppercase
。
因此,如果您可以指定正在使用的语言,您就可以获得可扩展的星期几名称,并执行您最初打算做的事情。
\documentclass[french]{article}
\usepackage[calc]{datetime2}
\usepackage{xstring}
\newcommand{\myfrenchtoday}{%
\DTMcomputedayofweekindex{\DTMtoday}{\todaydowindex}%
% or \DTMfrenchshortWeekdayname
\DTMtoday-\StrLeft{\DTMfrenchshortweekdayname{\todaydowindex}}{3}}
\title{Example}
\date{\myfrenchtoday}
\begin{document}
\maketitle
\end{document}