lualatex fontdb が再構築を続けている

lualatex fontdb が再構築を続けている

私は、現在の一般的なフォントタイプを使用できるという理由だけで、lualatex を使用しています。私のプロジェクトには奇妙な点があるため、完全なビルドには lualatex を 5 回実行する必要があります。ビルド時間の多くはフォント データベースの再構築にかかっていることがわかりました。常に同じメッセージが表示されます。

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

これは特別なフォントではありませんが、他のすべてのLMフォントと一緒に存在します。

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

ドキュメントを調べてみると、このフォントを使用する前に、異なるフォントを使用した出力が 2 行あることに気付きました。どうやら、フォントは欠落していないようです。つまり、データベースが利用可能のようです。lualatex を実行するたびにデータベースが再ロード/再構築される理由がまったくわかりません。これは正常なのでしょうか。データベースを再利用した方が賢明ではないでしょうか。

lualatex の実行は pdflatex の実行よりも途方もなく時間がかかるため、ぜひとも lualatex の実行を高速化したいです。pdflatex を使用してプロジェクト全体をビルドするには、lualatex を 1 回実行するのと同じくらいの時間がかかります... 少なくとも以前はそうでした。引用スタイルとの互換性を誤って壊してしまったのだと思います。

MWE:

\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}

これが DB の再ロードをトリガーします。次のようにフォントを名前で含めると:

 \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}

エラーは発生せず、DB は再ロードされません。また、速度が向上したこともわかりました。

フォント名では大文字と小文字が区別されないことに注意してください。

これは LuaTeX、バージョン beta-0.79.1 (TeX Live 2014/Debian) (rev 4971) です。

関連情報