避免通过 luaotfload 更新字体名称数据库

避免通过 luaotfload 更新字体名称数据库

我正在使用LuaLaTeX系统字体排版文档。编译需要很长时间才能更新字体数据库:luaotfload | Updating the font names database:。我认为这次更新没有必要,因为我不会每次都更换字体。如果我的假设是正确的,是否可以避免这次更新?

显示问题的最小示例:

\documentclass[paper = a4]{scrartcl} 
\usepackage{blindtext, fontspec}

% Typewriter (\ttfamily)
\setmonofont[BoldFont = VeraMoBd, ItalicFont = VeraMoIt, Scale = MatchLowercase]{VeraMono}

\begin{document}
\blinddocument
\end{document}

\setmainfont我使用了和设置的不同字体\setsansfont,但只有等宽字体VeraMono在更新字体名称数据库时挂起。

免费字体Bitstream Vera可用这里

答案1

总结评论中的讨论:

luaotfload每次运行时更新字体名称数据库,因为字体名称错误,因此luaotfload无法在数据库中通过名称找到字体(最终找到了它,因为 VeraMono 是文件名)。

正确的调用方式是:

\setmonofont[BoldFont = BitstreamVeraSansMono-Bold, ItalicFont = BitstreamVeraSansMono-Oblique]{BitstreamVeraSansMono}

例如,可以在其他办公应用程序的字体选择对话框中或 luaotfload 创建的数据库中找到正确的字体名称(otfl-names.lua 使用旧版本的 luaotfload(TL2012/当前 miktex)和luaotfload-names.luaTL2013)。

可以打印字体列表,如中所述https://tex.stackexchange.com/a/14171/14200(实际代码取决于luaotfload版本)。

答案2

如果您在 macos 上发现此问题。请尝试使用 sudo 重建数据库。

sudo luaotfload-tool --update

这解决了每次 tex 编译时尝试重建数据库的问题。

相关内容