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 は、カンマの後の名前を使用してフォントを検索するようですが、スタイルが指定されているフォントは検索しません (したがって、例の 2 行目のみが 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

関連情報