ttf
我使用 Font Book 应用程序在我的计算机(Mac)上安装了 Adobe Garamond Pro 的一个版本。字体文件位于 中/Library/Fonts/
。我想知道 XeLaTeX 和 LuaLaTeX 最终如何选择您可以引用字体的名称。以下 MWE 将使用 XeLaTeX 进行编译,但不会使用 LuaLaTeX 进行编译:
\documentclass{article}
\usepackage{fontspec}
\setmainfont
[
Ligatures={
TeX,
Common
},
BoldFont={* Semibold}
]
{Adobe Garamond Pro}
\begin{document}
asdf \textbf{asdf}
\end{document}
如果我尝试使用 LuaLaTeX 进行编译,我会收到以下错误:
Users/adamliter/Library/texlive/2017/texmf-var/luatex-cache/generic/fonts/otl/adobe-garamond-pro-italic-2009.luc)
luaotfload | resolve : sequence of 3 lookups yielded nothing appropriate.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "AdobeGaramondProSemibold" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................
l.20 {Adobe Garamond Pro}
(但是,我相信在某个时间点 - 也许是使用 TeX Live 2015 或 2016 - 我可以根据.tex
我计算机上的旧文档使用 LuaLaTeX 编译该 MWE。)
然而,以下 MWE做使用 LuaLaTeX(以及 XeLaTeX)进行编译:
\documentclass{article}
\usepackage{fontspec}
\setmainfont
[
Ligatures={
TeX,
Common
},
BoldFont={AGaramondPro-Semibold}
]
{AGaramondPro-Regular}
\begin{document}
asdf \textbf{asdf}
\end{document}
虽然这不是什么大问题,但我确实觉得这有点烦人。我希望能够利用 的fontspec
功能来指定变体*
。但是,至少在 LuaLaTeX 中,我似乎只能将 Adobe Garamond Pro 的 Semibold 变体引用为AGaramondPro-Semibold
,这使我无法使用 将粗体变体指定为 Semibold *
。
(奇怪的是,我似乎可以在使用 LuaLaTeX 时引用AGaramondPro-Regular
。Adobe Garamond Pro
换句话说,如果我删除BoldFont
第一个 MWE 中的键值对,它可以很好地与 LuaLaTeX 一起编译。)
因此,我想知道 LuaLaTeX 究竟是如何选择我可以引用字体的名称的。这与文件有关吗.ttf
?我能做些什么才能让第一个 MWE 用 LuaLaTeX 进行编译?
答案1
字体可以通过其符号名称或文件名找到。仅当字体保存在系统将搜索字体的字体目录中时,才可以使用符号名称,例如/Library/fonts/
。符号名称可以借助以下方法列出otfinfo
:
voss@shania:~/.fonts/GaramondPro$ otfinfo -i AGaramondPro-Regular.otf
Family: Adobe Garamond Pro
Subfamily: Regular
Full name: AGaramondPro-Regular
PostScript name: AGaramondPro-Regular
[...]
或者
voss@shania:~/.fonts/GaramondPro$ otfinfo -i AGaramondPro-Semibold.otf
Family: Adobe Garamond Pro
Subfamily: Bold
Full name: AGaramondPro-Semibold
PostScript name: AGaramondPro-Semibold
Preferred subfamily: Semibold
Mac font menu name: Adobe Garamond Pro Sb
[...]
以下示例使用这些符号名称:
\documentclass{article}
\usepackage{fontspec}
\setmainfont{AGaramondPro}[
UprightFont = *-Regular,
BoldFont = *-Semibold]
\begin{document}
asdf \textbf{asdf}
\end{document}
也可以使用文件名。
\setmainfont{Adobe-Garamond-Pro}[
Extension=.ttf,
Path=..., % only for non system font directories needed
UprightFont = *-Regular_2008,
BoldFont = *-Bold_2008,
[...]]
如果一个系列的所有符号字体名称都是一致的,那么
\setmainfont{AGaramondPro}
应该足够了;fontspec
将找到所有其他子系列,如常规、粗体、斜体、aso
答案2
您可以在示例中使用(与 lualatex 一起):
\documentclass{article}
\usepackage{fontspec}
\setmainfont
[
Ligatures={
TeX,
Common
},
UprightFont={*regular},
BoldFont={*semibold}
]
{agaramondpro}
\begin{document}
asdf \textbf{asdf}
\end{document}
但我认为 * 版本不值得花时间。每个字体系列似乎都有自己的系统。写下完整的字体名称会更快。