Stix Two Math 不断使用 lualatex 重写缓存

Stix Two Math 不断使用 lualatex 重写缓存

Tex Live 版本:TeX 3.14159265 (TeX Live 2020)

此 MWE 在整个过程中使用:

\documentclass[a4paper]{article}

\usepackage{unicode-math}
\setmainfont{Tex Gyre Schola}[Scale=0.97]
\setmathfont{Tex Gyre Schola Math}[Scale=MatchLowercase]
\setmathfont[range={\int,\iint}]{Stix Two Math}
\setsansfont{TeX Gyre Heros}[Scale=MatchLowercase]
\setmonofont{inconsolatan}[Scale=MatchLowercase,StylisticSet={1,3}]

\begin{document}

\section*{The first section}
The quick brown fox jumps over the lazy dog's back.
\begin{equation}
  x=\alpha + \beta
\end{equation}
The quick brown fox jumps over the lazy dog's back.

\verb!The quick brown fox jumps \emph{emphasized} over the lazy dog's back.!

\end{document}

它顺利通过了 lualatex,并按预期给出了 .pdf。

我的问题与字体缓存有关。...texmf-var/luatex-cache/generic-dev/fonts/otl这是运行我的 MWE 之前的字体缓存列表:

Created at 2020-08-31 16:30 with ls -ltr, i.e. latest file last.
    .
    .
    .
-rw-rw-r-- 1 leif leif  337751 2020-08-29 14:36 texgyreschola-regular.lua
-rw-rw-r-- 1 leif leif  204144 2020-08-29 14:36 texgyreschola-regular.luc
-rw-rw-r-- 1 leif leif  333538 2020-08-29 14:36 texgyreschola-bolditalic.lua
-rw-rw-r-- 1 leif leif  198037 2020-08-29 14:36 texgyreschola-bolditalic.luc
    .
    .
    .
-rw-rw-r-- 1 leif leif  722234 2020-08-30 12:47 stix2text-regular.lua
-rw-rw-r-- 1 leif leif  466687 2020-08-30 12:47 stix2text-regular.luc
    .
    .
-rw-rw-r-- 1 leif leif  764569 2020-08-30 12:47 stix2text-italic.lua
-rw-rw-r-- 1 leif leif  477285 2020-08-30 12:47 stix2text-italic.luc
-rw-rw-r-- 1 leif leif 1042702 2020-08-31 15:03 stix2math.lua
-rw-rw-r-- 1 leif leif  628077 2020-08-31 15:03 stix2math.luc

运行 MWE 后,缓存如下所示

Created at 2020-08-31 16:44 with ls -ltr, i.e. latest file last.
    .
    .
    .
-rw-rw-r-- 1 leif leif  764569 2020-08-30 12:47 stix2text-italic.lua
-rw-rw-r-- 1 leif leif  477285 2020-08-30 12:47 stix2text-italic.luc
-rw-rw-r-- 1 leif leif 1042702 2020-08-31 16:44 stix2math.lua
-rw-rw-r-- 1 leif leif  628077 2020-08-31 16:44 stix2math.luc

如您所见,其他所有条目均未受影响,但两个文件已stix2math被重写。

你可能会问,我为什么要抱怨。毕竟,lualatex 只重写大约 2MB,这在我的计算机上只需几秒钟。原因是我用它latexmk来处理我的文档,并且在latexmk决定是否需要再次运行时会考虑缓存中的文件。由于缓存中的文件在每次运行时都会更改,因此latexmk永远不会考虑已完成的工作,但会继续,直到达到最大运行次数。

我的问题是

  • 有没有办法可以lualatex不重写缓存文件?

或者

  • 在决定是否需要再次运行时,有没有办法latexmk忽略字体缓存文件?

编辑我在两次运行之间对 stix2math.lua 进行了差异分析lualatex <file>,结果如下

--- before.lua  2020-08-31 18:10:56.636561526 +0200
+++ after.lua   2020-08-31 18:11:29.024059824 +0200
@@ -658,9 +658,9 @@
    ["math"]={
     ["accent"]=440,
     ["kerns"]={
-     ["bottomleft"]=20,
-     ["bottomright"]=19,
-     ["topright"]=19,
+     ["bottomleft"]=19,
+     ["bottomright"]=20,
+     ["topright"]=20,
     },
    },
    ["name"]="M",
@@ -22748,7 +22748,7 @@
        ["kern"]=100,
       },
      },
-     ["topright"]=20,
+     ["topright"]=19,
     },
    },
    ["unicode"]=119813,

然后它继续这样下去,通常许多项目中都会有一个单位发生变化。

相关内容