
我使用 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)