考虑以下 LuaLaTex 文档
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Candara}
\begin{document}
This is Candara Light, but I want Candara!
\end{document}
我的理解是,我非常明确地要求使用 Windows 字体“Candara”。但不幸的是,我得到的输出与要求使用“Candara Light”(实际上嵌入到 pdf 中)时得到的输出相同 - 对我来说太浅了。
现在,我使用以下解决方法,但对我来说似乎有点冗长:
\setmainfont{Candara.ttf}[
BoldFont = Candarab.ttf,
ItalicFont = Candarai.ttf,
BoldItalicFont = Candaraz.ttf
]
这是 fontspec 中的错误还是我错过了一些重要的东西?
答案1
这可能与 Candara Light 将其子系列列为“常规”、将其首选系列列为“Candara”以及将其首选子系列列为“Light”有关。luaotfload 和 XeTeX 都必须根据名称猜测系列中的哪种字体是“常规”字体,而像这样的怪异字体可能会让其中一个或另一个感到困惑。LuaLaTeX 和 XeLaTeX 甚至可能不会选择相同的字体。
您想出的解决方法是推荐的字体加载方法,您可以使其更简洁。一种解决方案是将以下内容另存为Candara.fontspec
,保存在项目文件夹或本地 TeX Tree 中:
\defaultfontfeatures[Candara]{
Ligatures = Common ,
Extension = .ttf ,
UprightFont = * ,
BoldFont = *b ,
ItalicFont = *i ,
BoldItalicFont = *z }
fc-cache -f -s -v
使用和 刷新字体缓存luaotfload-tool -f -u -p -v
。现在\setmainfont{Candara}
应该可以工作了。