嗯,这个问题很奇怪 ;) 我知道 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
(因此使用latex
和pdflatex
使用相同的二进制程序),您可以访问将在 PDF 文件中标记的创建日期
\pdfcreationdate
扩展为以下形式的字符串
D:20130115083308+01'00'
那是
D:YYYYMMDDHHMMSSshh'mm'
其中 s 是+
或和-
与 一起给出与 UTC 的本地偏移量。此命令也可与but一起使用hh
mm
luatex
不是使用 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}}