將 \dayofweekname 第一個字母大寫

將 \dayofweekname 第一個字母大寫

我正在處理日期,特別是\dayofweekname.有沒有辦法將第一個字母大寫(即輸出週一應該成為週一)?我嘗試使用\MakeUppercaseand\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}

相關內容