更新:我正在努力寻找解决方案。这有效:
\setmainfont{EBGaramond}[
UprightFont = /Users/moacir/Library/Fonts/EBGaramond ,
% Pick a system font that is also .otf:
BoldFont = /System/Library/Fonts/SFNSDisplayCondensed-Thin ,
Extension = .otf
]
因此,不使用Path
fontspec 中的选项是解决此问题的一种方法。
但如果我删除Extension
,就像这样:
\setmainfont{EBGaramond}[
UprightFont = /Users/moacir/Library/Fonts/EBGaramond.otf ,
BoldFont = /System/Library/Fonts/SFNSDisplayCondensed-Thin.otf
]
有时候是这样的:
/usr/local/texlive/2017/texmf-dist/web2c/mktexnam: Could not map source abbreviation E for EBGaramond.
换句话说,除非Extension
定义,否则无法找到 EBGaramond。但如果我定义它,那么我就无法使用 Helvetica Bold。它不是.otf
,而是隐藏在 里面/System/Library/Fonts/Helvetica.dfont
。
最后,如果我将 EB Garamond 换成 Humboldt Fraktur ( /Users/moacir/Library/Fonts/HumboldtFraktur-Regular.ttf
),也会得到类似的错误,这意味着 EB Garamond 是不是负责任的:
/usr/local/texlive/2017/texmf-dist/web2c/mktexnam: Could not map source abbreviation H for HumboldtFraktur-Regular
因为 EB Garamond 没有与之关联的粗体,所以在极少数情况下我需要粗体字体时,我会改用 Helvetica Bold。我以前这样做:
\setmainfont[BoldFont={Helvetica Bold}]{EB Garamond}
这很有效只要计算机可以找到 EB Garamond。当它找不到时,这似乎是越来越频繁,那我就没那么幸运了。但如果我尝试:
\setmainfont{EBGaramond}[
Path = /Users/moacir/Library/Fonts/,
BoldFont = {Helvetica Bold} ,
Extension = .otf
]
它在我定义的路径中寻找 Helvetica:
kpathsea:make_tex: Invalid fontname `[/Users/moacir/Library/Fonts/Helvetica Bold.otf]/OT', contains '['
它不在那里;它是系统加载的字体。我怎样才能让它找到 Helvetica?