我从官方手册中读到(http://wiki.contextgarden.net/Fonts_in_LuaTex#How_LuaTeX_handles_system_fonts),我需要export OSFONTDIR="/usr/local/share/fonts;$HOME/.fonts"
指定在哪里查找字体。但是,它只会搜索fonts
和.fonts
。如果我在这两个的子目录中有字体,它们将不会被发现。我觉得很不方便。
是否可以让它搜索子文件夹?
答案1
与其他与 TeX 相关的环境变量一样,控制OSFONTDIR
需要了解变量是如何扩展自kpathsea
。关键是要知道//
(两个连续的/
字符)被视为“递归”标记。因此你想要的是
export OSFONTDIR="/usr/local/share/fonts//;$HOME/.fonts//"
在更改此值之前,我想先检查一下当前设置
kpsewhich --var-value=OSFONTDIR
因为它可能已经是正确的了。
答案2
跑步
luaotfload-tool -fuvvv --log=stdout
它会显示字体的搜索位置
答案3
我不确定你如何在 TeX 系统中做到这一点,或者是否可以做到这一点,所以这只是部分答案。你可以这样做(你的系统上的语法可能不同)
for d in $HOME/.fonts/*/; do
OSFONTDIR+=":$d"
done
以递归方式将 $HOME/.fonts 的所有子目录添加到 OSFONTDIR。