为什么我不能使用 fc-list 输出中列出的字体名称?

为什么我不能使用 fc-list 输出中列出的字体名称?
\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

相关内容