Xelatex 和 Lualatex 中的字体管理

Xelatex 和 Lualatex 中的字体管理

参考这个帖子:Xelatex 与 Lualatex 对比 PetiteCaps

我按照以下步骤解决了该问题:

  • 我保留了 EB Garamond 的 Texlive 版本(/usr/local/texlive/2021/texmf-dist/...)和我自己安装的最新版本(/usr/local/share/fonts/...);

  • 我清除了/var/cache/fontconfig/的缓存;

  • 我删除了~/.texlive2021;

  • 我使用 fc-cache -sfv 重新生成了缓存。

此时,Xelatex 无论如何都会使用 Texlive 版本进行编译:实际上是日志文件(使用 \XeTeXtracingfonts = 1 选项执行的编译):

Requested font "EB Garamond / OT: script = latn; language = dflt;" at 10.00002pt -> /usr/local/texlive/2021/texmf-dist/fonts/opentype/public/ebgaramond/EBGaramond-Regular.otf

使用 Luatex 编译的相同代码使用了我较新的版本:

avail lists: 1: 1,2: 56,3: 12,4: 1,5: 23,6: 6,7: 194,9: 26,11: 20 </usr/local/share/fonts/opentype/EBGaramond/EBGaramond-Regular.otf>

现在,示例文件可以在 PetiteCapital 和两个编译器上正确编译。我仍然不明白的是,为什么这两个编译器在没有任何提示的情况下使用不同目录中的文件。

事实上,我观察到,在重新生成字体缓存的情况下 - 并且我的 HOME 中没有 ~/.texlive2021 - Xelatex 会立即启动并编译,而 Lualatex 会首先在 ~/.texlive2021 中创建(经过几秒钟的工作)自己的缓存,然后才开始编译 .tex 文件。

了解两个编译器用来管理字体的 PATH 指示位于何处以及造成这种不同行为的原因将会很有趣。

谢谢

答案1

Lua(La)TeX 使用自己的字体列表,该列表由 生成luaotfload-tool,并可由

bash-3.2$ luafindfont EBGaramond
We are using Lua 5.3
Looking for font "ebgaramond"
Check for file /usr/local/texlive/2021/texmf-var/luatex-cache/generic/names/luaotfload-names
 No.                       Fontname           Symbolic Name                                                                  Path
   1.            EBGaramond-Bold.otf              ebgaramond  /usr/local/texlive/2021/texmf-dist/fonts/opentype/public/ebgaramond/
   2.      EBGaramond-BoldItalic.otf              ebgaramond  /usr/local/texlive/2021/texmf-dist/fonts/opentype/public/ebgaramond/
   3.       EBGaramond-ExtraBold.otf              ebgaramond  /usr/local/texlive/2021/texmf-dist/fonts/opentype/public/ebgaramond/
   4. EBGaramond-ExtraBoldItalic.otf              ebgaramond  /usr/local/texlive/2021/texmf-dist/fonts/opentype/public/ebgaramond/
   5.        EBGaramond-Initials.otf      ebgaramondinitials  /usr/local/texlive/2021/texmf-dist/fonts/opentype/public/ebgaramond/
   6.          EBGaramond-Italic.otf              ebgaramond  /usr/local/texlive/2021/texmf-dist/fonts/opentype/public/ebgaramond/
   7.          EBGaramond-Medium.otf              ebgaramond  /usr/local/texlive/2021/texmf-dist/fonts/opentype/public/ebgaramond/
   8.    EBGaramond-MediumItalic.otf              ebgaramond  /usr/local/texlive/2021/texmf-dist/fonts/opentype/public/ebgaramond/
   9.         EBGaramond-Regular.otf              ebgaramond  /usr/local/texlive/2021/texmf-dist/fonts/opentype/public/ebgaramond/
  10.        EBGaramond-SemiBold.otf              ebgaramond  /usr/local/texlive/2021/texmf-dist/fonts/opentype/public/ebgaramond/
  11.  EBGaramond-SemiBoldItalic.otf              ebgaramond  /usr/local/texlive/2021/texmf-dist/fonts/opentype/public/ebgaramond/
  12.                 EBGaramond.otf              ebgaramond                                   /Users/voss/Library/Fonts/Garamond/
  13.       EBGaramond08-Regular.otf              ebgaramond                                   /Users/voss/Library/Fonts/Garamond/
  14.            EBGaramond08-SC.otf              ebgaramond                                   /Users/voss/Library/Fonts/Garamond/
  15.         EBGaramond12-AllSC.otf       ebgaramond12allsc                                   /Users/voss/Library/Fonts/Garamond/
  16.        EBGaramond12-Italic.otf              ebgaramond                                   /Users/voss/Library/Fonts/Garamond/
  17.       EBGaramond12-Regular.otf              ebgaramond                                   /Users/voss/Library/Fonts/Garamond/
  18.            EBGaramond12-SC.otf              ebgaramond                                   /Users/voss/Library/Fonts/Garamond/
  19.            EBGaramondAllSC.otf         ebgaramondallsc                                   /Users/voss/Library/Fonts/Garamond/
  20.             EBGaramondBold.otf              ebgaramond                                   /Users/voss/Library/Fonts/Garamond/
  21.       EBGaramondInitialsF1.otf ebgaramondinitialsfill1                                   /Users/voss/Library/Fonts/Garamond/
  22.       EBGaramondInitialsF2.otf ebgaramondinitialsfill2                                   /Users/voss/Library/Fonts/Garamond/
  23.           EBGaramondItalic.otf              ebgaramond                                   /Users/voss/Library/Fonts/Garamond/
  24.               EBGaramondSC.otf            ebgaramondsc                                   /Users/voss/Library/Fonts/Garamond/
bas

Xe(La)TeX用于fontconfig搜索系统字体和kpsefindTeX 字体的默认字体。此字体只能通过其文件名而不是符号名称找到,而 Lua(La)TeX 还会通过其符号名称找到 TeX 字体,例如\setmainfont{EBGaramond}

相关内容