我怎样才能让 ConTeXt 忽略我的系统字体?
目前,ConTeXt 首先扫描并使用所有系统字体(Windows 7 字体文件夹中的所有文件),然后扫描并使用 ConTeXt 文件夹中的字体。
我希望 ConTeXt 忽略系统字体并仅使用 ConTeXt 文件夹中的字体。
答案1
回答:ConTeXt 默认包含系统字体,除非用户通过两步阻止它。(在 Windows 下测试并发现 MacOS 有类似的代码,但可能不适用于 Linux)
必须设置环境变量OSFONTDIR
,并且不能为空。它可以指向您想要在 ConTeXt 中使用的字体的所需字体目录,也可以指向一个空目录。
至少在 Windows 系统上,\fonts\conf\fonts.conf
还必须更改该文件。默认情况下,还必须更改 XML 条目<dir>c:/windows/fonts</dir>
并将其设置为字体的所需位置。
背景:如果环境变量OSFONTDIR
未设置或设置为空字符串,则使用系统字体目录的路径填充mtxrun.lua
do
local osfontdir=osgetenv("OSFONTDIR")
if osfontdir and osfontdir~="" then
elseif osname=="windows" then
ossetenv("OSFONTDIR","c:/windows/fonts//")
elseif osname=="macosx" then
ossetenv("OSFONTDIR","$HOME/Library/Fonts//;/Library/Fonts//;/System/Library/Fonts//")
end
end