我如何重新定义\today
以便今天的当前日期采用以下格式
May 26th, 2016
我需要将“th”作为上标。
它应该出现在页面的右下角。当我在以下环境 XeLaTeX 中使用它时,代码不起作用。
% Preamble:
\NeedsTeXFormat{LaTeX2e}
\LoadClass{article}
\usepackage[head=12pt, foot=12pt, top=18mm, bottom=15mm, left=12.7mm, right=12.7mm]{geometry}
\usepackage[absolute]{textpos}
\usepackage[UKenglish]{babel}
\usepackage[en-US]{datetime2}
\DTMlangsetup{ord=raise}
\usepackage{rotating}
% Main Tex:
\begin{document}
\setlength{\TPHorizModule}{1mm}
\setlength{\TPVertModule}{1mm}
\textblockorigin{0mm}{5mm}
\begin{textblock}{60}(205,207)
\begin{turn}{90}
Last Updated on
\today
\end{turn}
\end{textblock}
\end{document}
我需要将其作为 [最后更新于 2016 年 5 月 26 日]。“th / st /nd”提升到上标高度。旋转 90 度。页面右下角。请查看下面的 MWE 链接。
我还不断收到此警告:
Package datetime2 Warning: Region `english-base' has ignored (datetime2) the following settings: (datetime2) ord=raise on input line 13.
答案1
我建议你使用datetime2带有选项的包en-US
:
该指令\DTMlangsetup{ord=raise}
指示datetime2
将日期数字视为序数,并将st
/ nd
/rd
粒子提升至上标高度。
\documentclass{article}
\usepackage[en-US]{datetime2}
\DTMlangsetup{ord=raise}
\begin{document}
\today
\end{document}
附录回答 OP 的补充问题:看起来您正在使用UKenglish
作为主要语言选项babel
,但还想要一个美国风格的日期字符串(“2016 年 5 月 26 日”--“th”升高),而不是英国风格的日期字符串(“2016 年 5 月 26 日”--“th”未升高)。为了实现此目标,您需要 (a) 在加载时提供“USenglish”作为次要语言选项,以及 (b) 在环境内babel
执行指令。\selectlanguage{USenglish}
textblock
下面显示的代码在 pdfLaTeX、XeLaTeX 和 LuaLaTeX 下应该可以同样好地编译。
\documentclass{article}
\usepackage[head=12pt,foot=12pt,top=18mm,bottom=15mm,hmargin=12.7mm]{geometry}
\usepackage[absolute]{textpos}
\usepackage[USenglish,UKenglish]{babel}
\usepackage[en-US]{datetime2}
\DTMlangsetup[en-US]{ord=raise}
\usepackage{rotating} % provides \turn macro
\begin{document}
\setlength{\TPHorizModule}{1mm}
\setlength{\TPVertModule}{1mm}
\textblockorigin{0mm}{5mm}
\begin{textblock}{60}(205,207)
\selectlanguage{USenglish}
\begin{turn}{90}
Last Updated on \today
\end{turn}
\end{textblock}
\end{document}