TeXLive 查找 opentype 字体文件的路径是可以配置的。在 Windows 系统中默认只有 c:\WINDOWS\fonts
和 TeXLive 自带的那些 opentype 字体。
LuaTeX 使用 luaotfload 查找 opentype 字体,而它使用 kpathsea 查找字体文件,直接编辑 kpsewhich.exe texmf.cnf
输出的那个文件,加上
% TrueType outline fonts.
TTFONTS = $TEXMFDOTDIR;$TEXMF/fonts/{truetype,opentype}//;$OSFONTDIR//;C:/your/fonts/dir//
% OpenType outline fonts.
OPENTYPEFONTS = $TEXMFDOTDIR;$TEXMF/fonts/{opentype,truetype}//;$OSFONTDIR//;C:/your/fonts/dir//
每项用英文分号分隔,前面三项如果不知道是什么含义就不要修改。这是跨平台的。
XeTeX 在 Windows 和 Linux 平台使用 fontfonfig,(除非你使用 xetex-specimen)。
在 Linux 平台,根据 fontconfig 文档的说明改动即可。
在 Windows 平台,编辑 kpsewhich.exe --var-value XE_FONTCONFIG_PATH
输出的那个文件夹下的 conf.d/51-local.conf
,改为
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<dir>D:/your/fonts/dir1</dir>
<dir>D:/your/fonts/dir2</dir>
... 其它东西,不要改动
</fontconfig>
如果要修改,建议同时修改这两处。
修改完成后,再依次执行 texhash
和 fc-cache -fv
。
问 windows系统下为何字体需要为所有用户安装才能LaTeX找到,希望找到kpathsea的字体文件搜寻逻辑