在运行 luaotfload 工具时,我在新的 MiKTeX 2.9 win7 64 位安装中遇到错误。
luaotfload | Updating the font names database:
luaotfload | Font names database not found, generating new one.
This can take several minutes; please be patient.
luaotfload | Updating the font names database:
<omitted>
The network name cannot be found.
Data: \\MiKTeX\]MPM[\fonts\opentype
该错误非常隐晦,类似于
无法在 MiKTeX 2.9 中创建 LuaTeX 字体数据库
不幸的是,这个话题没有得到解答。不过,我深入挖掘了一下,找到了真正的原因。MikTex 中的 $OPENTYPEFONTS 路径设置为(除其他外)'%R\fonts\opentype//'
现在我检查了使用以下方法扩展此路径
kpsewhich --expand-path='%R'
我得到了同样的错误。但如果我使用小写字母 r
kpsewhich --expand-path="%r"
它运行得很好。
我如何使 kpsewhich 不区分大小写或更新 $OPENTYPEFONTS 变量以获得较小的 %r
答案1
我遇到了同样的问题,并尝试实施您的解决方案。也许有人知道更优雅的方法,但它现在对我来说有效:在目录中每个受影响的 Lua 文件中tex/latex/luaotfload
(对我来说:、和luaotfload-configuration.lua
)luaotfload-database.lua
,您必须替换行luaotfload-diagnostics.lua
luaotfload-parsers.lua
local kpseexpand_path = kpse.expand_path
经过
local kpseexpand_path = function (p) return kpse.expand_path(string.gsub(kpse.expand_var(p), '%%R', '%%r')) end
它扩展了变量$OPENTYPEFONTS
和其他变量,但%R
在%r
依次扩展之前用替换。据我从 MiKTeX 源代码中了解到,%R
in的出现$OPENTYPEFONTS
是硬编码的,所以这是我在不重新编译 MiKTeX 的情况下找到的唯一方法……