TeXでは \today で現在の日付を取得できる。\maketitle で \date を省略すると現在の日付になる。
しかし、TeX文書の「内容」に関わる日付と言ったら、ファイルの更新日時ではないだろうか。タイトルのところにファイルの更新日時を(自動で)出す方法はあるか。
ググってみたら割と簡単に答えが出てきた。
pdfTeXだと \pdffilemoddate というプリミティブがあるらしい。例えば \pdffilemoddate{\jobname} と書くとコンパイル中のファイルの更新日時が D:20150829212230+09'00' というようなフォーマットで取得できるようだ。
LuaTeXだと \pdffilemoddate はないが、Luaを使えば同じようなことはできるだろう。まあ自分でLuaコードを書いて実装するのは面倒なので、既製品を使おう。
filemodというパッケージはpdfTeXとLuaTeXで使えて、ファイルの更新日時を取得するだけじゃなくて、\today と同じような読みやすいフォーマットにしてくれるようだ。例えば、ファイルのプリアンブルに
\usepackage{filemod}
\date{\Filemodtoday{\jobname}}
と書けばタイトルの日付がファイルの更新日時になる。
複数のファイルの中で最も新しい更新日時を使いたいときは、試してないけど \filemodNewest を使えば良さそう。
既に書いたように、filemodパッケージはpdfTeXかLuaTeXが必要で、pTeXやXeTeXでは動かない。
【2016年12月12日 追記】ε-pTeX では \pdffilemoddate を含むいくつかの pdfTeX primitive が実装されているため、 filemod パッケージを使うことができる。参考:ε-pTeX について

ピンバック: TeX における日付と時刻 | 雑記帳