我正在使用 vc 包来提供\date
最新 git 提交的日期。有没有办法将此日期格式化为与 输出相同的格式\today
?我知道 中的不同日期格式vc 软件包手册但没有一个对应于的格式today
。
下面是一个可以使用的示例:
\immediate\write18{./vc}
\input{vc}
\documentclass{article}
\usepackage[utf8]{inputenc}
\title{[Title]}
\date{\VCDateISO}% I want to format this date...
\begin{document}
\maketitle
\today% ... like this date.
\end{document}
答案1
VC 手册指出\VCDateISO
返回日期为 YYYY-MM-DD。如果是这种情况,您可以使用以下代码提取三个值并相应地设置 TeX 日期寄存器。然后\today
将返回此日期。这当然应该在组内发生。
%\immediate\write18{./vc}
%\input{vc}
\def\VCDateISO{2011-05-24}
\documentclass{article}
\makeatletter
\newcommand\VCDateToday{%
\expandafter\@VCDateToday\VCDateISO\relax
}
\def\@VCDateToday#1-#2-#3\relax{%
\begingroup
\year=#1\relax
\month=#2\relax
\day=#3\relax
\today
\endgroup
}
\makeatother
\begin{document}
\VCDateToday
\end{document}
我无法自己测试它,因为 VC 包不是 TeXLive 或 MikTeX 的一部分,而且我不想仅仅为了这个而手动安装它。
如果您想使用svn-multi
,您可以简单地使用\svntoday
。与 VC 文档所说的相反,当前版本还支持二进制文件。
答案2
使用该isodate
软件包,您可以相当简单地完成此操作:
\usepackage[american]{isodate}
\date{\printdate{\VCDateISO}}
注异日期需求要指定的语言,因此如果您不使用,babel
则需要明确调用语言选项。
尴尬的是,american
和english
打印日期的方式不同。\usepackage[english]{isodate}
即使只使用 ,调用也会改变日期的显示方式\today
。