![如何自定义编译日期和时间的显示](https://linux22.com/image/463405/%E5%A6%82%E4%BD%95%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BC%96%E8%AF%91%E6%97%A5%E6%9C%9F%E5%92%8C%E6%97%B6%E9%97%B4%E7%9A%84%E6%98%BE%E7%A4%BA.png)
如何自定义编译日期和时间的显示日期和时间?我看到该datetime2
包提供了许多预定义选项,但如果我想做一些独特的事情怎么办?datetime2
提到了\DTMnewstyle
命令。 但我不知道如何使用它。
例子:
10:15am | Mon Jan 02, 2023
% 日期之前的时间。小写“am”,无空格。用竖线分隔。三个字母的日期。三个字母的月份。两位数的日期。四位数的年份。
Jan/02/23
% 元素以“/”分隔。三个字母的月份,两位数的日期,两位数的年份。除了帮助了解如何自定义之外,没有任何用处。
10:15:00
,2023 年 1 月 2 日,星期一 % 时间以冒号分隔秒数。不区分“上午”和“下午”。逗号分隔符。完整的星期几。完整的月份。两位数的日期。逗号。四位数的年份。
01#02#2023
% 两位数的日期。两位数的月份。四位数的年份。“#”分隔符。
23%01%02
& 两位数年份。两位数月份。两位数日期。“%”分隔符。这增加了使用“%”字符的复杂性。
我的实际用例是在我的草稿文档的标题中添加一个唯一的时间戳。但我想自定义它的外观。了解如何自定义,也将使我和其他人拥有更大的灵活性。组合示例是尝试在日期/时间上等效于敏捷的棕色狐狸跳过了懒狗我希望社区会发现它很有用。
答案1
你还没有说明你使用的问题\DTMnewstyle
是什么。因此,这里有两个例子来解释如何\DTMnewdatestyle
使用:
\documentclass{article}
\usepackage[yearmonthsep=\%,monthdaysep=\%]{datetime2}
\DTMnewdatestyle{Twodigits}{%
\renewcommand*{\DTMdisplaydate}[4]{%
\DTMtwodigits{##1}% use exact (last) two digits of the year
\DTMsep{yearmonth}% add the yearmonth separator given by package option yearmonthsep
\DTMtwodigits{##2}\DTMsep{monthday}% similar for month
\DTMtwodigits{##3}% similar for day
}%
}
\DTMnewdatestyle{TwodayTwomonthFouryear}{%
\renewcommand*{\DTMdisplaydate}[4]{%
\DTMtwodigits{##3}\DTMsep{monthday}% start with day
\DTMtwodigits{##2}\DTMsep{yearmonth}% similar for month
\number ##1\relax% year should always be with four digits so use it as is
}%
}
\DTMsetdatestyle{Twodigits}%
\begin{document}
\DTMtoday
\DTMsetdatestyle{TwodayTwomonthFouryear}
\setkeys{datetime2.sty}{yearmonthsep=\#,monthdaysep=\#}
\DTMtoday
\end{document}
如果要使用\DTMnewstyle
,则不仅必须重新定义\DTMdisplaydate
(在第二个参数中),还必须重新定义\DTMdisplaytime
(在第三个参数中)、\DTMdisplayzone
(在第四个参数中)和\DTMdisplay
(在第五个参数中)。所有这些命令的参数均在手册第 3 节中进行了解释。
例如,显示当前时间的命令是\DTMcurrenttime
。例如,显示所有内容的命令是\DTMnow
。这些也记录在手册的第 3 部分中。
有关更多示例,请参阅手册。您可以在手册的“代码”部分找到所有样式的定义。对于日期或月份的名称也datetime2-calc
可能有用。