背景
我想创建一个基于年份的时间线,但我不想处理负数和正数的混合(例如公元前/公元,这给我们今年是 2016 年,而 4032 年前也是 2016 年)。
我的问题是,如果我将起始年份设置得足够远,以便始终向前计数,那么年数将变得非常大。例如,假设我想包括恐龙,那么当前年份将是数百万。因此,解决方案显然是始终从现在开始向后计数,但在实施时,这比我想象的要困难得多。
有一种公认的时间线叫做“现前”(BP),从公元 1950 年开始,因为他们通常谈论更早的事情。但是如果你用这种方式来计算,那么公元 1951 年就变成了 -1 BP,这又带来了负时间的问题。
LaTeX 已经包含了命令\today
,它给出了当前时间。但如果我定义一种新的计时方式,那么\today
减去 5 就是明年不同的年份。所以时间应该不断更新。
Datetime2 包
世界各地使用许多不同的纪元,不仅仅是公元前/公元。例如,泰国使用佛教纪元,因此当前年份是公元 2560 年,而不是公元 2017 年。如果能够处理这些类型的日期就太好了。
有一个名为的软件包datetime2
可以处理创建新的日期和时间样式,并且它具有多语言支持,可能能够支持不同类型的时代,我猜?文档可在此处找到:http://ctan.megagod.net/tex-archive/macros/latex/contrib/datetime2/datetime2.pdf。
我的问题是我不知道如何把这些代码放在一起来解决我的问题。他们提供了命令\DTMnewdatestyle
,建议这样使用:
\DTMnewdatestyle{mydate}{%
\renewcommand{\DTMdisplaydate}[4]{\number##3-\number##2-\number##1 }%
\renewcommand{\DTMDisplaydate}{\DTMdisplaydate}%
}
据我所知,这会修改\today
命令...但我想要的是能够获得\today
编译文档时的输出,然后使用命令(例如)来\bptime{-1,BP}
获得与完全相同的输出\bptime{1951,AD}
,这将产生与完全相同的输出。如果年份是 2017 年,\bptime{2494,BE}
那么所有这些的输出应为减去 66 年。\today
\today
那么我该怎么做呢?有没有关于如何让它工作的至少一个基本示例的指示?