Fontspec 选择 Candara Light 而不是 Regular

Fontspec 选择 Candara Light 而不是 Regular

考虑以下 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}应该可以工作了。

相关内容