将 \dayofweekname 首字母大写

将 \dayofweekname 首字母大写

我正在处理日期,特别是\dayofweekname。有没有办法将首字母大写(即输出周一应该成为周一)?我尝试使用\MakeUppercase和,\capitalisewords但编译器甚至没有输出文件(我猜是因为命令的内部结构发生冲突)。

这是一个 MWE

\documentclass[12pt, italian]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{fancyhdr}
\usepackage{datetime}

\pagestyle{fancy}
\rhead{\dayofweekname{12}{03}{2023} 12/03/2023}

\begin{document}

\section{Introduction}

\end{document}

提前致谢。

答案1

意大利语的小写星期几名称在 中是硬编码的dt-italian.def,随datetime包装一起提供。

% dt-italian.def
\providecommand{\dayofweeknameiditalian}[1]{%
\ifcase#1\relax
\or domenica%
\or luned\`{\i}%
\or marted\`{\i}%
\or mercoled\`{\i}%
\or gioved\`{\i}%
\or venerd\`{\i}%
\or sabato%
\fi}%
\global\let\dayofweeknameiditalian\dayofweeknameiditalian

简单的重新定义应该可以起作用,但我不知道意大利语中是否需要全部小写的星期几名称。

\documentclass[12pt, italian]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{fancyhdr}
\usepackage{datetime}

\renewcommand{\dayofweeknameiditalian}[1]{%
  \ifcase#1\relax
  \or Domenica%
  \or Luned\`{\i}%
  \or Marted\`{\i}%
  \or Mercoled\`{\i}%
  \or Gioved\`{\i}%
  \or Venerd\`{\i}%
  \or Sabato%
  \fi}%

\pagestyle{fancy}
\rhead{\dayofweekname{12}{03}{2023} 12/03/2023}

\begin{document}

\section{Introduction}

\end{document}

在此处输入图片描述

备注:datetime已过时并被 取代datetime2。但根据 OP 的用例,它似乎datetime2没有改进。星期几仍然全部小写,例如“domenica”)。

\documentclass[12pt, italian]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{fancyhdr}
% also need package datetime2-italian
\usepackage[calc]{datetime2}

\pagestyle{fancy}
\DTMcomputedayofweekindex{2023-03-12}\dowindex
\rhead{\DTMweekdayname{\dowindex} 12/03/2023}

\begin{document}

\section{Introduction}

\end{document}

相关内容