我有两个几乎相同的文档,但设置略有不同(一个使用 11pt 字体,另一个使用 10pt),例如book10.tex
和book11.tex
。他们使用 minted 导入代码片段\inputminted
。
我正在尝试将第一本书的缓存重新用于其他书,不幸的是,缓存文件名似乎不同。使用 xelatex 编译两本书后:
xelatex --shell-escape book10.tex && xelatex --shell-escape book11.tex
我似乎有两个 .pygtex 文件,其中哈希的第一部分相同,但第二部分不同:
$ ls
FCA5498F9EAF9E235804E47AA988230D31F590DAF3C4999269D16864F0C9105B.pygtex
FCA5498F9EAF9E235804E47AA988230D796938E665113EC976EFD1EDB1C66E95.pygtex
...
它们的内容完全相同,但是文件名不同。
根据文档,“缓存文件使用突出显示设置和突出显示文本的 MD5 哈希值命名”。我可以理解“突出显示文本”部分,但是突出显示设置是什么,为什么它们的哈希值不同?
我的 MWE 是:
你好.hs
module Main where
main :: IO ()
main = putStrLn "Hello world!
book10.tex和book11.tex (简体)
\documentclass{article}
\usepackage[cachedir=_mycache]{minted}
\begin{document}
\inputminted{octave}{hello.hs}
\end{document}
问题:我可以覆盖生成的文件名吗?我想保留内容的哈希值,而忽略设置哈希值。
注意:该解决方案\finalizecache
不适用于我的情况,因为某些文件使用导入不同语言的片段的宏。
答案1
我找到了解决办法!我仔细研究了minted.sty
文件,并注意到被jobname
视为哈希的一部分。所以我现在指定相同的-jobname
为 xelatex 指定相同的值,它似乎有效!
我在minted
github 上问了这个问题,回答我建议做一些类似的事情,\minted@jobname
直接在 .tex 文件中指定。
如果有帮助的话,我总结步骤在我的博客上。