\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