\documentclass{article}
\usepackage{fontspec}
\setmainfont{Helvetica Neue LT Pro 55 Roman} % This line is OK.
\setsansfont{HelveticaNeueLT Pro 55 Roman} % This line is ERROR!
\begin{document}
Hello
\end{document}
MWE 如上所述。
xelatex 抱怨以下消息:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! fontspec error: "font-not-found"
!
! The font "HelveticaNeueLT Pro 55 Roman" cannot be found.
!
! See the fontspec documentation for further information.
!
! For immediate help type H <return>.
!...............................................
l.4 \setsansfont{HelveticaNeueLT Pro 55 Roman}
% This line is ERROR!
但是,fc-list 输出如下:
/usr/share/fonts/adobe/HelveticaNeueLTPro-Roman.otf: \
Helvetica Neue LT Pro,HelveticaNeueLT Pro 55 Roman: \
style=55 Roman,Regular
据我所知,HelveticaNeueLT Pro 55 Roman
应该是正确的字体名称,Helvetica Neue LT Pro 55 Roman
应该不是。但是,实际结果似乎Helvetica Neue LT Pro 55 Roman
是一个有效的字体名称,HelveticaNeueLT Pro 55 Roman
却不是。为什么?
fc-list 的输出是否可靠,可以提供字体名称?
答案1
我不确定fc-list
逗号后的输出是什么,但 XeTeX 似乎需要家族名称(逗号前,Helvetica Neue LT Pro
),后面可选跟样式 ( 55 Roman
)。这给出了您使用的第一行。因此,fc-list 输出似乎是可靠的,只是不是那部分。
我没有 Helvetica Neue LT Pro,但我尝试了 Latin Modern(我猜大多数安装了 TeX 的人都安装了它)fc-list | grep 'LM Roman 10'
。
/usr/share/texmf/fonts/opentype/public/lm/lmroman10-bold.otf: Latin Modern Roman,LM Roman 10:style=10 Bold,Bold
/usr/share/texmf/fonts/opentype/public/lm/lmroman10-bolditalic.otf: Latin Modern Roman,LM Roman 10:style=10 Bold Italic,Bold Italic
/usr/share/texmf/fonts/opentype/public/lm/lmroman10-regular.otf: Latin Modern Roman,LM Roman 10:style=10 Regular,Regular
/usr/share/texmf/fonts/opentype/public/lm/lmroman10-italic.otf: Latin Modern Roman,LM Roman 10:style=10 Italic,Italic
现在对于 XeTeX 我们有
\setmainfont{Latin Modern Roman} % OK
\setmainfont{Latin Modern Roman 10 Regular} % OK
\setmainfont{LM Roman 10} % Not OK
\setmainfont{Latin Modern Roman 10 Italic} % OK, font is italic and \textit gives upright
另一方面,LuaTeX 似乎使用逗号后的名称来查找字体,但无法查找指定样式的字体(因此我猜只有示例中的第二行适用于 LuaTeX)。但是,当以这种方式访问字体时,它似乎找不到不同的样式。
\setmainfont{Latin Modern Roman} % OK
\setmainfont{Latin Modern Roman 10 Regular} % Not OK
\setmainfont{LM Roman 10} % OK, but \textit etc. doesn't work
\setmainfont{LM Roman 10 Regular} % OK, but \textit etc. doesn't work
\setmainfont[ItalicFont=LM Roman 10 Italic,...]{LM Roman 10} % OK