最后修改的LaTeX命令

DaC*_*own 12 latex date

是否有LaTeX命令打印实际文档的"上次修改"日期?由于LaTeX项目由多个文件组成,因此该命令理想地打印实际文件的日期,而不是项目的日期.

Wil*_*son 10

pdfTeX提供了\pdffilemoddate查询文件的此信息的原语.(LuaTeX使用自己的Lua函数进行相同的操作.)由于pdfTeX在过去几年中(至少)在所有LaTeX发行版中默认使用,因此使用新功能没有任何害处,除非您处理非常旧的生产系统.这是一个例子:

\documentclass{article}
\begin{document}
\def\parsedate #1:20#2#3#4#5#6#7#8\empty{20#2#3/#4#5/#6#7}
\def\moddate#1{\expandafter\parsedate\pdffilemoddate{#1}\empty}
this is the moddate: \moddate{\jobname.tex}
\end{document}

(假设该文件自2000年以来已被修改.)


Grz*_*nio 6

软件包filemod似乎完全符合您的需求.要获取文件的最后修改日期,您只需按常规方式包含该包:

\usepackage{filemod}
Run Code Online (Sandbox Code Playgroud)

并且当前文档的修改时间打印为:

\filemodprintdate{\jobname}
Run Code Online (Sandbox Code Playgroud)

您还可以打印修改时间,并且有许多选项可以格式化输出.


Rub*_*ben 3

不幸的是,TeX 不提供此类信息的命令;获得此类信息的唯一方法是

  1. 在运行 LaTeX之前运行一个非 TeX 脚本来创建一个 TeX 文件,并以某种方式将该文件包含在您的主 LaTeX 文档中,或者
  2. 通过从TeX运行外部脚本(只有在启用了所谓的 write18 或 shellescape 功能时才有效;为此,您必须查阅 TeX 实现手册,并且没有顽固的系统管理员)。

扩展 TeX 可能确实支持文件信息命令(也许是 luaTeX?),但它不是 TeX 本身的一部分。