更新你自己的字体

更新你自己的字体

在我的场景中,我使用自己的自定义字体。它是一种 OpenType 字体 - 也不是 tex 打包的字体,只是我在 FontCreator (Windows 7) 中制作的字体。现在,我想将此字体与 一起使用,因此我在此处 lualatex放置了一个副本,然后它就会被选中。myfont.otfC:\texlive\2013\texmf-dist\fonts\truetype\public

我的问题:如果我更新myfont.otf并用新副本替换该文件夹中的副本,则它不会被使用,因为它lualatex正在使用其缓存中的副本,如以下日志条目所反映的那样:

luaotfload | load: auto-selecting default features for script: dflt(load luc: C:/texlive/2013/texmf-var/luatex-cache/generic/fonts/otf/myfont.luc)

现在,到目前为止,我发现使用字体的唯一方法(替换后)是:

  1. 删除lualatex处的缓存目录C:\texlive\2013\texmf-var\luatex-cache\%USERPROFILE%\.texlive2013\texmf-var然后C:\texlive\texmf-var\lualatex-cache
  2. 然后运行texhash
  3. 然后运行updmap

当我编译下一个 tex 文件时,它会使用新字体重建缓存:

luaotfload | resolve: font family='priory', subfamily='regular' found: c:/texliv
e/2013/texmf-dist/fonts/truetype/public/myfont.otf(save: C:/texlive/2013/texmf-v
ar/luatex-cache/generic/fonts/otf/myfont.lua)(save: C:/texlive/2013/texmf-var/lu
atex-cache/generic/fonts/otf/myfont.luc)

有没有更好的方法?我可以重建字体缓存而不必手动删除目录吗?

答案1

好吧,我手动删除了这个目录:C:\texlive\2013\texmf-var\luatex-cache\

相同的过程可以通过命令行完成(感谢 Ulrik):

luaotfload-tool --cache=erase

然后,如果您的字体名称不同(或者您添加了新的字体名称),您需要执行以下操作:

texhash

但是,我的问题的评论者是对的。最好不要使用 tex 系统文件夹。在 Windows 中,将其称为系统文件夹很有趣,因为它只对 tex 重要。但我将字体移到C:\texlive\texmf-local\fonts\truetype\public 并运行了这些命令,一切都正常。我可以从编译日志中看到字体已从新位置提取。

所以这个 tex 用户目录更好,但是命令是一样的:

luaotfload-tool --cache=erase
texhash

相关内容