Mac 更新时出现 fontspec font-not-found / 字体名称无效

Mac 更新时出现 fontspec font-not-found / 字体名称无效

在过去的几年中,我遇到了一个罕见但反复出现的问题,当我使用安装在我的 Mac 上的 EB Garamond 排版文档时,收到以下错误:

(/usr/local/texlive/2017/texmf-dist/tex/latex/fontspec/fontspec.cfg)))kpathsea:make_tex: Invalid fontname `EB Garamond', contains ' '
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "EB Garamond" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................

即使是最基本的 MWE 也会出现这种情况,而且在软件完全更新后也会发生这种情况。它似乎只影响本地安装的字体,即/Users/moacir/Library/Fonts。底部是两个罪魁祸首字体的系统分析器描述示例。

当我从 TeXShop 调用时不会发生这种情况xelatex,即使 TeXShop 使用与 TeXLive 完全相同的路径。系统字体似乎也不会发生这种情况,我指的是安装在/System或中的字体/Library。例如,如果我有 Helvetica Neue 中的部分,它们就会出现在 pdf 中。EB Garamond 中的部分是空白的。

当问题出现时重新启动 Mac 似乎可以解决问题,但我宁愿每次出现问题时不必重新启动计算机。

以下是我首先问这个问题2016年12月:

  • 在 2017 年初,每次使用 XeLaTeX 时,它都运行良好。我一直关注 MacOS 更新,但没有安装 TeXLive 2017。
  • 七月中旬,我使用 XeLaTeX 排版了一篇我在 EB Garamond 中写的文章。这是我最后一次知道我从命令行使用了该软件。
  • 7 月底,我将我的电脑更新到 10.12.6(需要重启)。
  • 8 月 1 日,我开始从事一个涉及 TeX 的新项目,然后出现错误。我不记得自从升级到 10.12.6 以来我是否使用过 XeLaTeX。
  • 8月2日,我发布了这个问题的第一个版本。
  • 然后我将 TeXLive 更新到 2017(模糊地认为这解决了上次遇到的问题),但问题仍然存在。
  • 我重新启动计算机,问题就消失了。
  • 8 月 4 日,问题再次出现。重启后问题消失。
  • 8 月 5 日,问题再次出现。重启后问题消失。

我遇到过四次这个问题(包括 2016 年),其中一次是“神奇地”解决的,三次是通过重启解决的。不过,我希望我能找到比这两种方法更有用的解决方案。

目前,系统运行良好。

梅威瑟:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{EB Garamond}
\begin{document}
All human beings are born free and equal in dignity and rights.
\end{document}

以下是我的系统上两种出现问题的字体(HumboldtFraktur 和 EB Garamond)的字体描述:

EBGaramond.otf:

  Kind: OpenType
  Valid: Yes
  Enabled: Yes
  Location: /Users/moacir/Library/Fonts/EBGaramond.otf
  Typefaces:
    EBGaramond:
      Full Name: EB Garamond
      Family: EB Garamond
      Style: Regular
      Version: Version 000.010
      Unique Name: FontForge 2.0 : EB Garamond : 6-3-2011
      Copyright: Created by Georg Duffner with FontForge 2.0 (http://fontforge.sf.net)
      Outline: Yes
      Valid: Yes
      Enabled: Yes
      Duplicate: No
      Copy Protected: No
      Embeddable: Yes

HumboldtFraktur-Regular.ttf:

  Kind: TrueType
  Valid: Yes
  Enabled: Yes
  Location: /Users/moacir/Library/Fonts/HumboldtFraktur-Regular.ttf
  Typefaces:
    HumboldtFraktur:
      Full Name: HumboldtFraktur
      Family: HumboldtFraktur
      Style: Regular
      Version: Version 1.0; 2002; initial release
      Unique Name: TypographerMediengestaltung: HumboldtFraktur: 2002
      Designer: Dieter Steffmann
      Copyright: Copyright (c) Typographer Mediengestaltung, 2002. All rights reserved. Humboldt-Fraktur geschaffen von Hiero Rhode, 1938. Digitalisiert und ergaenzt durch Dieter Steffmann, Kreuztal.
      Description: Humboldt-Fraktur geschaffen von Hiero Rhode, 1938. Digitalisiert und ergaenzt durch Dieter Steffmann, Kreuztal.
      Outline: Yes
      Valid: Yes
      Enabled: Yes
      Duplicate: No
      Copy Protected: No
      Embeddable: Yes

答案1

根据 @WillRobertson 的建议,目前的答案似乎是避免使用 fontspec 的字体查找功能并将 MWE 更改为:

\documentclass{article}
\usepackage{fontspec}
\setmainfont{EBGaramond}[
  Path = /Users/moacir/Library/Fonts/,
  UprightFont = * ,
  ItalicFont = *12-Italic ,
  SmallCapsFont = *SC ,
  Extension = .otf
  ]
\begin{document}
  All human beings are born free and equal in dignity and rights.
\end{document}

请注意,ItalicFont 和 SmallCapsFont 的设置与 EB Garamond 提供的设置一致。

答案2

可能不再相关,但我在 macOS 上使用 lualatex 时也遇到了同样的问题。对于我和上述组合来说,它通过 解决了luaotfload-tool,它是 -package 的一部分luaotfload加拿大运输安全局)。

更具体地说,运行以下命令(sudo)解决了该问题:

luaotfload-tool --update

记下这个以防其他人遇到同样的问题,发现同样的问题,并可能从这个 lua 解决方案中获得帮助。

相关内容