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)

相關內容