すべてのカスタマイズとフォントをアセット フォルダーに格納して、複数のドキュメントで使用し、同じスタイルを維持できるようにしようとしています。残念ながら、フォントを 2 レベル深いパスに配置しようとすると、ドキュメントをコンパイルできません。次のエラーが発生します。
! error: (type 2): cannot find file ''
! ==> Fatal error occurred, no output PDF file produced!
以下の作品:
\newcommand{\fontmercury}{\setmainfont[Path = ./fonts/,
BoldFont=mercurybd.ttf,
ItalicFont=mercuryi.ttf,
BoldItalicFont=mercurybi.ttf
]{mercury.ttf}
}
これは動作しません:
\newcommand{\fontmercury}{\setmainfont[Path = ./assets/fonts/,
BoldFont=mercurybd.ttf,
ItalicFont=mercuryi.ttf,
BoldItalicFont=mercurybi.ttf
]{mercury.ttf}
}
パスは正しいのですが、1 レベル以上深く行くとエラーが発生します。
編集: 解決しました。ここで説明されているキャッシュの問題でした。私の場合は、otl フォルダーを削除するとコンパイルできるようになりました。LuaTeX は既存のフォントを見つけることができません
答え1
古くなったotl
ディレクトリを削除することに加えて、 の別の設定を使用することも検討する必要があります\fontmercury
。fontspec
パッケージは ディレクティブを提供します\newfontfamily
。 この場合、ディレクティブ\newfontfamily
を発行するよりも を使用する方が効率的であると思われます\setmainfont
。 プリアンブルに次の命令を挿入できます。
\newfontfamily{\mercury}{mercury.ttf}%
[Path = ./fonts/,
BoldFont = mercurybd.ttf,
ItalicFont = mercuryi.ttf,
BoldItalicFont = mercurybi.ttf]
\newcommand{\fontmercury}[1]{{\mercury #1}}
そして、文書の本文には次のように書きます。
\fontmercury{...}
答え2
これを回答としてマークする方法がわからないため、回答として投稿することにしました。しかし、投稿後すぐに解決しました。私は TeXLive + TeXWorks を使用しています。そのため、パス内の otl フォルダーを削除しましたC:\texlive\2017\texmf-var\luatex-cache\generic\fonts\otl
。その後、ドキュメントをビルドするときに機能しました。