任意日期,使用多种语言进行本地化格式化

任意日期,使用多种语言进行本地化格式化

我希望能够定义任意日期的变量并以不同的语言打印它。由于可以polyglossia自动格式化\today日期,我相信这可以实现。

我检查了

它们都使用datetime2(取代datetime) 或isodate包。我不太想加载这些包 - 尤其是因为它们datetime2会干扰polyglossia并为所用的每种语言下载一个子包。

没错,我可以手动更改\day\month\year变量,例如

\day=5
\month=2
\year=2017
\today

重新定义\today并打印昨天的日期。但这样一来,真正的今天日期就丢失了。

那么,有没有办法定义一个任意日期用于polyglossia本地化格式,以及这个变量的正确语法是什么?

答案1

您可以将寄存器设置为一组。

\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}

\setmainfont{EB Garamond}
\setmainlanguage{french}
\setotherlanguage{russian}

\newcommand{\printdate}[3]{% {<year>}{<month>}{<day>}
  \begingroup
  \year=#1\relax
  \month=#2\relax
  \day=#3\relax
  \today
  \endgroup
}

\begin{document}

Aujourd'hui: \today

Il y a quelque temps: \printdate{1969}{7}{11}

Aujourd'hui: \today

\begin{otherlanguage*}{russian}
Cегодня: \today

некоторое время назад: \printdate{1969}{7}{11}

Cегодня: \today
\end{otherlanguage*}

\end{document}

在此处输入图片描述

相关内容