ConTeXt 系统字体搜索路径

ConTeXt 系统字体搜索路径

我从官方手册中读到(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。

相关内容