luaotfload 字体名称数据库创建时出错

luaotfload 字体名称数据库创建时出错

在运行 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.lualuaotfload-database.lua,您必须替换行luaotfload-diagnostics.lualuaotfload-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 源代码中了解到,%Rin的出现$OPENTYPEFONTS是硬编码的,所以这是我在不重新编译 MiKTeX 的情况下找到的唯一方法……

相关内容