我希望能够定义任意日期的变量并以不同的语言打印它。由于可以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}