在过去的几年中,我遇到了一个罕见但反复出现的问题,当我使用安装在我的 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 解决方案中获得帮助。