MacOS 和 fontspec:使用“defaultfontfeatures”时未找到字体

MacOS 和 fontspec:使用“defaultfontfeatures”时未找到字体

这个问题与这里的其他几个问题类似,但对我来说并不相同。我的 MWE:

\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures[DejaVu]
  {
    UprightFont = DejaVuSerif.ttf,
    ItalicFont = DejaVuSerif-Italic.ttf,
    BoldFont = DejaVuSerif-Bold.ttf,
    BoldItalicFont = DejaVuSerif-BoldItalic.ttf
  }
\setmainfont{DejaVu}
\begin{document}
This is a test.
\end{document}

运行此程序xelatex会产生

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
! 
! The font "DejaVuSerif.ttf" cannot be found.
!
...

如果我\setmainfont{DejaVu}用替换\setmainfont{DejaVuSerif.ttf},一切正常,这说明我的设置正确,并且可以通过 找到字体fontspec

答案1

这是 fontspec 中的一个错误,感谢您发现它。我还没有尝试分析它,但以下解决方法可以修复它:

\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures[DejaVu]
  {
    Extension = .ttf,
    UprightFont = DejaVuSerif,
    ItalicFont = DejaVuSerif-Italic,
    BoldFont = DejaVuSerif-Bold,
    BoldItalicFont = DejaVuSerif-BoldItalic
  }
\setmainfont{DejaVu}
\begin{document}
This is a test.
\end{document}

(我怀疑我的代码认为因为.ttf不是[DejaVu]名称的一部分所以它不应该尝试添加扩展,但随后可能存在不正确的规范化并且.ttf在不应该的情况下被剥离。)

相关内容