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 について