![避免因 lualatex 缓存的新时间戳而强制重新运行 latexmk](https://linux22.com/image/475050/%E9%81%BF%E5%85%8D%E5%9B%A0%20lualatex%20%E7%BC%93%E5%AD%98%E7%9A%84%E6%96%B0%E6%97%B6%E9%97%B4%E6%88%B3%E8%80%8C%E5%BC%BA%E5%88%B6%E9%87%8D%E6%96%B0%E8%BF%90%E8%A1%8C%20latexmk.png)
我正在尝试使用 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'}='^';