这与我的另一个问题相关:TEXMFHOME 中的 fontspec 搜索路径
我正在尝试通过 编写一个使用特定 opentype 字体的包fontspec
。
在 Debian 计算机上使用 TeXLive 2013(一位同事确认 Mac OS X 也有同样的行为)我看到以下行为:
- 作为系统字体安装的字体(在 ~/.fonts 中):
lualatex
通过字体名称查找,
xelatex
通过字体文件名查找但不是通过文件名 - 安装在 TEXMFHOME (~/texmf/fonts/opentype/FONT/) 中的字体:
lualatex
通过字体名称查找,
xelatex
通过文件名查找但不是通过字体名称
xelatex (至少在 Linux/Mac 上是 TeXLive) 确实可以找到文件吗?仅有的当作为系统字体安装时按字体名称仅有的在 texmf 树中安装时按文件名查找?还是我遗漏了什么?
如果这是真的,有人能告诉我在 Windows/其他 TeX 发行版上是否也存在同样的情况吗?
我对最通用的答案感兴趣,因为我必须告诉用户(对于任意操作系统/发行版组合)在下载包后在哪里复制(或链接)字体文件夹。
答案1
简短的回答:是的。
当要求 XeTeX 通过文件名加载字体时,它会将名称传递给 kpathea 库,因此其工作方式与任何其他 TeX 文件路径搜索(例如\input
'd 文件)一样。
当要求通过字体名称加载字体时,它将在 Linux 和 Windows 上使用 FontConfig,在 Mac 上使用 Core Text 字体管理器,因此无论找到什么字体,XeTeX 都能够使用。