我正在尝试使用 CI 设置 GitLab 项目,以便仅当源 tex 文件发生更改时才会在作业中构建 PDF 工件。我已经通过使用解决了 tex 文件修改日期的问题git-restore-mtime
。但是,即使源文件比缓存的 PDF 旧,latexmk
它仍会运行lualatex
。原因如下:
Latexmk: This is Latexmk, John Collins, 7 Jan. 2023. Version 4.79.
Latexmk: applying rule 'lualatex'...
Rule 'lualatex': Reasons for rerun
Changed files or newly in use/created:
/usr/share/texmf-var/luatex-cache/generic/names/luaotfload-lookup-cache.luc
Category 'changed_user':
/usr/share/texmf-var/luatex-cache/generic/names/luaotfload-lookup-cache.luc
当我打印出 的修改时间戳时luaotfload-lookup-cache.luc
,它是当前时间。因此,似乎一旦创建 Docker 容器,就会设置此修改时间戳。我确实luaotfload-tool --update
在创建 Docker 映像时运行过,但这没有帮助。
有什么方法可以解决所述问题。也就是说,当 tex 源不比缓存的 PDF 新时,设置它不会强制重新运行构建latexmk
?lualatex
更新
我另外将以下行放入latexmkrc
(如上所述这里),但由于某种原因,它并没有停止重新运行:
$hash_calc_ignore_pattern{'luc'}='^';