是否可以让 LaTeX 从系统时钟检索日期信息?

是否可以让 LaTeX 从系统时钟检索日期信息?

嗯,这个问题很奇怪 ;) 我知道 TeX 是严格沙盒化的,但我猜至少还是有一定可能性的?毕竟,系统时钟(例如,类 UNIX 系统上的 UNIX 时间)在内存中只有 8 个字节左右。

如果真的可以在 LaTeX 中检索日期信息,我会非常感动!:D 这样,我就可以创建这样一个模板,而不需要调整每篇新文章的日期……

答案1

你是说类似这样的东西

cat wr.tex
...
\immediate\write18{date > date.tex}
\begin{document}
\input{date}
\end{document}

latex -enable-write18 wr.tex

??

如果您不需要时间而只需要日期,那么有像\year\month和 这样的计数器\day

要在文本中输入当前年份\number\year,请输入月份数字,使用相同的构造。要输入月份名称,必须在文件中有一个构造,babel例如\today(将今天的日期输入文档),或者您可以进行如下构造

\def\monthname{\ifcase\month\or January\or February\or March … \fi}

然后宏\monthname会将当前月份的名称写入文档。

答案2

但是,整数寄存器\year\month包含\day您可能需要的日期信息。还\time包含从作业启动时的午夜开始的分钟数。

有关更多详细信息,使用pdftex(因此使用latexpdflatex使用相同的二进制程序),您可以访问将在 PDF 文件中标记的创建日期

\pdfcreationdate

扩展为以下形式的字符串

D:20130115083308+01'00'

那是

D:YYYYMMDDHHMMSSshh'mm'

其中 s 是+或和-与 一起给出与 UTC 的本地偏移量。此命令也可与but一起使用hhmmluatex不是使用 XeTeX。

例如,如果你想获取年、月、日,你可以说

\def\getdate{\expandafter\getdateaux\pdfcreationdate}
\def\getdateaux#1#2#3'{\getdateaux#3'}
\def\getdateaux#1#2#3#4#5#6#7#8{%
  \def\YEAR{#1#2#3#4}%
  \def\MONTH{#5#6}%
  \def\DAY{#7#8}}

相关内容