有没有办法在 XeTeX 中包含文档创建时间?

有没有办法在 XeTeX 中包含文档创建时间?

我目前使用\isodate{\today} \currenttime}来包含 XeTeX 文档的大致创建时间。这“足够好”,但不包括时区。在 pdflatex 中,可以使用 来包含文档的创建时间\pdfcreationdate,是否有适用于 XeTeX 的等效命令?

答案1

这可以通过运行外部程序来实现,例如date在 Unix 系统上。输出可以重定向到文件,然后由 TeX 读取。在 Unix 系统上,也可以使用管道。

例子:

\documentclass{article}

\immediate\write18{date >\jobname.date}

\begin{document}
Current time is: \input{\jobname.date}
\end{document}

结果

可以通过命令行选项-shell-escape(TeX Live)或--enable-write18(MiKTeX)启用 shell 转义功能。

答案2

也许您可以使用编辑器提供的功能。如果是emacs,您可以使用time-stamp。首先,您必须调整变量time-stamp-formattime-stamp-pattern。我建议使用文件本地版本,方法是在文档末尾放置类似以下内容:

%%% Local Variables: 
%%% mode: latex
%%% eval: (set (make-local-variable 'time-stamp-format) "%3a %02d/%02m/%4y %02H:%02M:%02S %Z")
%%% eval: (set (make-local-variable 'time-stamp-pattern) "\\\\newcommand{\\\\timestamp}{%%}")
%%% TeX-master: t
%%% End: 

接下来,在文档的第一行输入以下内容:

\newcommand{\timestamp}{}

后面跟着其余的 LaTeX 代码。每次保存文档时,emacs都会自动更新的参数\timestamp,您可以在文档中使用该命令,例如:

\newcommand{\timestamp}{Don 21/05/2015 23:05:25 Mitteleuropäische Sommerzeit}

\documentclass{article}
\begin{document}
\texttt{Last saved: \timestamp}
\end{document}

这是我盒子上的结果。

答案3

似乎有一个包Datetime。这似乎也可以打印时区。使用命令\DTMnow

參閱http://ctan.org/pkg/datetime2

相关内容