lualatex fontdb 不断重建

lualatex fontdb 不断重建

我使用 lualatex 只是因为我可以使用当前常见的字体类型。我的项目有其奇怪之处,因此需要运行 5 次 lualatex 才能完成构建。我注意到很多构建时间都用于重建其字体数据库。我总是收到相同的消息

luaotfload | db : Reload initiated (formats: otf,ttf,ttc,dfont); reason: "Font lmromancaps10-regular.otf not found.".

然而,这不是一种特殊的字体,而是与所有其他 LM 字体共存

/usr/share/texmf/fonts/opentype/public/lm

浏览我的文档时,我注意到在使用此字体之前,有两行使用不同字体的输出,显然没有丢失。所以显然有一个可用的数据库。我完全不明白为什么每次运行 lualatex 时都要重新加载/重建数据库。这是正常的吗?重用数据库不是更明智吗?

我真的很想加快 lualatex 的运行速度,因为它们比 pdflatex 运行时间长得多。使用 pdflatex 构建整个项目所花的时间与单次 lualatex 运行的时间差不多……至少以前是这样;我想我不小心破坏了引用样式的兼容性。

梅威瑟:

\documentclass{standalone}

\usepackage{fontspec}
\usepackage[latin1]{luainputenc}

\setmainfont[%
          SmallCapsFont = lmromancaps10-regular.otf,
    ]{lmroman12}
\begin{document}
Will never get here
\end{document}

答案1

问题是,我通过文件名指定了字体,如下所示:

 \setmainfont[%
      UprightFont = *-regular,
      BoldFont    = *-bold,
      ItalicFont  = *-italic,
      BoldItalicFont  = lmroman10-bolditalic.otf,
      SmallCapsFont = lmromancaps10-regular.otf,
      SmallCapsFeatures = {Scale=MatchUppercase},
      SlantedFont = lmromanslant12-regular.otf,
      BoldSlantedFont = lmromanslant10-bold.otf,
      Renderer=Basic
 ]{lmroman12}

这就是触发数据库重新加载的原因。如果我按名称包含字体,如下所示:

 \setmainfont[%
      UprightFont = *-regular,
      BoldFont    = *-bold,
      ItalicFont  = *-italic,
      BoldItalicFont  = lmroman10-bolditalic,
      SmallCapsFont = lmromancaps10-regular,
      SmallCapsFeatures = {Scale=MatchUppercase},
      SlantedFont = lmromanslant12-regular,
      BoldSlantedFont = lmromanslant10-bold,
      Renderer=Basic
 ]{lmroman12}

错误没有发生,数据库也没有重新加载。我还注意到了速度的提升!

请注意,字体名称不区分大小写。

这是 LuaTeX,版本 beta-0.79.1 (TeX Live 2014/Debian) (rev 4971)

相关内容