这个问题与这里的其他几个问题类似,但对我来说并不相同。我的 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
在不应该的情况下被剥离。)