Проблема выбора шрифта из коллекции TrueType с LuaTeX

Проблема выбора шрифта из коллекции TrueType с LuaTeX

Я хотел бы использовать шрифт Gill Sans, который установлен /Library/Fonts/GillSans.ttcна моем Mac. Согласно документации fontspec, я должен иметь возможность использовать коллекции TrueType, указав индекс шрифта. В документации утверждается, что это должно работать с LuaTeX, но у меня возникли проблемы с его запуском.

Поддержка коллекций TrueType была протестирована только в XeTeX, но должна работать и с последней версией LuaTeX и пакета luaotfload.

Следующий минимальный документ работает, поскольку он использует Gill Sans, и кажется возможным даже использовать определенные начертания/формы шрифта, определив новое семейство шрифтов, но он не работает \setmainfontи не позволяет использовать такие команды, как \textbf{}, \textit{},и т. д., как видно на снимке экрана с результатами компиляции этого документа.

\documentclass{article}

\usepackage{fontspec}
\setmainfont[
  Ligatures=TeX,
  Extension=.ttc,
  UprightFeatures={FontIndex=0},
  BoldFeatures={FontIndex=4},
  ItalicFeatures={FontIndex=2},
  BoldItalicFeatures={FontIndex=5}]{GillSans}

\newfontfamily\SemiBold[
  Ligatures=TeX,
  Extension=.ttc,
  UprightFeatures={FontIndex=4}]{GillSans}

\begin{document}
\textbf{asdf}
\textit{asdf}
asdf
\textbf{\textit{asdf}}

{\SemiBold asdf}
\end{document}

Вывод компиляции документа, в котором «asdf» отображается тем же шрифтом, за исключением случая переключения на шрифт \SemiBold

Кто-нибудь знает, в чем может быть проблема и как ее решить? В журнале указано следующее:

LaTeX Font Warning: Font shape `TU/GillSans(0)/b/n' undefined
(Font)              using `TU/GillSans(0)/m/n' instead on input line 18.

LaTeX Font Warning: Font shape `TU/GillSans(0)/m/it' undefined
(Font)              using `TU/GillSans(0)/m/n' instead on input line 19.

LaTeX Font Warning: Font shape `TU/GillSans(0)/b/it' undefined
(Font)              using `TU/GillSans(0)/b/n' instead on input line 21.

Более того, запуск следующей команды в оболочке

luaotfload-tool --find 'Gill Sans SemiBold' -i

возвращает следующее, что предполагает, что приведенный выше документ должен работать для выделения полужирного шрифта как BoldFont с помощью индекса 4:

luaotfload | resolve : Font "Gill Sans SemiBold" found!
luaotfload | resolve : Resolved file name "/Library/Fonts/GillSans.ttc", subfont nr. 4


** 1 Gill Sans SemiBold ********************************************************

        ascender: 1487
    averagewidth: 1154
     boundingbox: <table>
                   1: -1162
                   2: -512
                   3: 2279
                   4: 1931
       capheight: 1397
  defaultvheight: 0
       descender: -561
          family: Gill Sans
        fontname: GillSans-SemiBold
        fullname: Gill Sans SemiBold
     italicangle: 0.0
      monospaced: false
    panoseweight: demi
     panosewidth: normal
       pfmweight: 600
        pfmwidth: 5
   platformnames: <table>
           macintosh: <table>
                  family: Gill Sans
                fullname: Gill Sans SemiBold
          postscriptname: GillSans-SemiBold
               subfamily: SemiBold
             windows: <table>
                  family: Gill Sans
                fullname: Gill Sans SemiBold
          postscriptname: GillSans-SemiBold
               subfamily: SemiBold
       subfamily: SemiBold
    subfontindex: 4
           units: 2048
         version: 13.0d1e4
          weight: semibold
           width: normal
         xheight: 934

Я использую MacTeX 2020, v3.14/2020-05-06 из luaotfload-tool, и v2.7i из fontspec.

решение1

При работе с файлами ttc не следует использовать , Extensionа добавлять .ttcнепосредственно к имени, иначе это будет обнаружено слишком поздно и придется устанавливать ItalicFont/ BoldFont/ BoldItalicFontвручную:

\documentclass{article}

\usepackage{fontspec}
\setmainfont[
  Ligatures=TeX,
  UprightFeatures={FontIndex=0},
  BoldFeatures={FontIndex=4},
  ItalicFeatures={FontIndex=2},
  BoldItalicFeatures={FontIndex=5}]{GillSans.ttc}

\newfontfamily\SemiBold[
  Ligatures=TeX,
  Extension=.ttc,
  UprightFeatures={FontIndex=4}]{GillSans}

\begin{document}
\textbf{asdf}
\textit{asdf}
asdf
\textbf{\textit{asdf}}

{\SemiBold asdf}
\end{document}

Связанный контент