告诉 luaotfload 在哪里寻找字体

告诉 luaotfload 在哪里寻找字体

luaotfload 的文档指出,在 Linux 上,fontconfig 用于查找字体位置。但是我安装的所有字体/usr/share/local/fonts 编辑:(/usr/local/share/fonts因为我不想弄乱我的包管理)对 luaotfload 不可见,但对系统中也使用 fontconfig 的所有其他应用程序可见。我如何告诉 luaotfload 在哪里寻找字体?

我正在使用 Ubuntu 中包含的 TeXLive 2012。

答案1

这需要一点调试... 你有/etc/fonts/fonts.conf引用这些字体的文件吗?这可能非常重要,因为 luaotfload 的代码依赖于此文件。如果它在你的系统上不起作用,可能是因为 fontconfig 文件中的更新导致 luaotfload 代码需要更新... 如果你愿意,只要你给我一个 teamviewer 或 ssh 访问权限,我就可以调试它...

编辑:这确实与 debian 错误有关。实际上,这更像是 luaotfload 中的错误,而不是 debian 或 texlive 中的错误。我将在下一个版本中修复它,今天或明天在 CTAN 上。

答案2

环境变量 OSFONTDIR 将覆盖字体配置信息。使用双斜杠指定目录表示“请递归到子目录中”。例如:

OSFONTDIR=${HOME}/.fonts:/usr/share/fonts//:/usr/share/texmf/fonts//

编辑:Debian(以及 Ubuntu)texlive 打包似乎存在问题,它为 OSFONTDIR 提供了 /usr/share/font 的默认值,这意味着从未调用 fontconfig 支持。

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=683943

答案3

将其放入/usr/local/share/fonts/或者 放入你的主目录中.fonts/

跑去mkluatexfontdb -v | grep "local/share" 看看发生了什么事。

答案4

问题似乎是,fontconfig 似乎会自动查找,/usr/local/share/fonts而无需在配置中明确指定。但是 luaotfload 不使用 fontconfig,而是直接加载配置。因此,它不会查找这个隐式位置。

相关内容