Usando el archivo .fontspec con múltiples declaraciones defaultfontfeatures

Usando el archivo .fontspec con múltiples declaraciones defaultfontfeatures

Estoy intentando crear un archivo de definición de especificaciones de fuente para Minion3 que incluya todos los tamaños ópticos. Lo tengo funcionando cuando defino todo en una sola defaultfontfeaturesdefinición:

\defaultfontfeatures[Minion3]
{
    UprightFont  = Minion3-Regular,
    BoldFont     = Minion3-Bold,
    ItalicFont   = Minion3-Italic,
    BoldItalicFont = Minion3-BoldItalic,
    %Numbers      = {Proportional,OldStyle},
    Numbers      = {Proportional},
    SizeFeatures = {
        { Size   = -9.9, Font = Minion 3 Caption },
        { Size   = 9.9-13.9 },
        { Size   = 13.9-25.9, Font = Minion 3 Subhead},
        { Size   = 25.9-, Font = Minion 3 Display},
    },
    BoldFeatures = {
        SizeFeatures = {
            { Size   = -9.9, Font = Minion 3 Caption Bold},
            { Size   = 9.9-13.9 },
            { Size   = 13.9-25.9, Font = Minion 3 Subhead Bold},
            { Size   = 25.9-, Font = Minion 3 Display Bold},
        },
    },
    ItalicFeatures = {
        SizeFeatures = {
            { Size   = -9.9, Font = Minion 3 Caption Italic},
            { Size   = 9.9-13.9 },
            { Size   = 13.9-25.9, Font = Minion 3 Subhead Italic},
            { Size   = 25.9-, Font = Minion 3 Display Italic},
        },
    },
    BoldItalicFeatures = {
        SizeFeatures = {
            { Size   = -9.9, Font = Minion 3 Caption Bold Italic},
            { Size   = 9.9-13.9 },
            { Size   = 13.9-25.9, Font = Minion 3 Subhead Bold Italic},
            { Size   = 25.9-, Font = Minion 3 Display Bold Italic},
        },
    },
}

Sin embargo, de acuerdo con el manual de especificaciones de fuentes (páginas 12-13), debería poder tener en el mismo archivo una declaración para cada fuente Regular, Negrita, Cursiva y BoldItalic, así:

\defaultfontfeatures[Minion3]{
    UprightFont     = {Minion3R},
    BoldFont        = {Minion3B},
    ItalicFont      = {Minion3I},
    BoldItalicFont  = {Minion3BI},
    %Numbers      = {Proportional,OldStyle},
    Numbers      = {Proportional},
}
\defaultfontfeatures[Minion3R]{
    Extension       = .otf,
    Font            = Minion3-Regular,
    SizeFeatures = {
        { Size   = -9.9, Font = Minion3Caption-Regular },
        { Size   = 9.9-13.9 },
        { Size   = 13.9-25.9, Font = Minion3Subhead-Regular},
        { Size   = 25.9-, Font = Minion3Display-Regular},
    },
}
\defaultfontfeatures[Minion3B]{
    Font            = Minion3-Bold,
    SizeFeatures = {
        { Size   = -9.9, Font = Minion3Caption-Bold },
        { Size   = 9.9-13.9 },
        { Size   = 13.9-25.9, Font = Minion3Subhead-Bold},
        { Size   = 25.9-, Font = Minion3Display-Bold},
    },
}
\defaultfontfeatures[Minion3I]{
    Font            = Minion3-Italic,
    SizeFeatures = {
        { Size   = -9.9, Font = Minion3Caption-Italic },
        { Size   = 9.9-13.9 },
        { Size   = 13.9-25.9, Font = Minion3Subhead-Italic},
        { Size   = 25.9-, Font = Minion3Display-Italic},
    },
}
\defaultfontfeatures[Minion3BI]{
    Font            = Minion3-BoldItalic,
    SizeFeatures = {
        { Size   = -9.9, Font = Minion3Caption-BoldItalic },
        { Size   = 9.9-13.9 },
        { Size   = 13.9-25.9, Font = Minion3Subhead-BoldItalic},
        { Size   = 25.9-, Font = Minion3Display-BoldItalic},
    },
}

Lamentablemente la segunda versión no funciona y la compilación falla con el error

! Error de especificación de fuente del paquete: no se puede encontrar la fuente "Minion3R".

el archivo de definición de fontspec se llama Minion3.fontspec

y se toma un archivo tex de prueba para demostrar las característicashttp://tex.stackexchange.com/q/126096/14066(https://bitbucket.org/phg/lua-la-tex-tests/src/default/latex/ltx-fontspec-optical-size-3.tex):

\documentclass [12pt] {article}
\usepackage {fontspec}

%% set your font here

%\setmainfont {Arno Pro}
\setmainfont{Minion3}

%% helper for extracting the font name name, please ignore

\def\fontinfo{%
  \directlua {
    local f = fonts.hashes.identifiers [font.current ()]
    if f then
      tex.sprint (f.fullname, " ", string.sub (tostring (f.size / 2^16), 1, 4), "pt")
    end
  }%
}

%% testing macro

\def\test#1{%
  #1\section {\detokenize {#1}}
  \begin {itemize}
    \item {\rmfamily \upshape \fontinfo}
    \item {\rmfamily \upshape \bfseries \fontinfo}
    \item {\rmfamily \itshape \fontinfo}
    \item {\rmfamily \itshape \bfseries \fontinfo}
    \item {\rmfamily \scshape \fontinfo}
  \end {itemize}
}

\begin {document}

  testing family ``\rmdefault'' ...\par\vskip1cm

  \test\tiny
  \test\scriptsize
  \test\small
  \test\normalsize
  \test\large
  \test\Large
  \test\LARGE
  \test\Huge

\end {document}

Estoy seguro de que me estoy perdiendo algo obvio, pero no puedo entender qué.

Editar:

Dado que esto no es un Minion3problema y esta fuente es propietaria, puede resultar difícil replicarla. Actualmente, este problema también se puede reproducir sin SizeFeatures, por lo que agrego un nuevo MyXCharter.fontspecarchivo que reproduce el primer obstáculo con un conjunto de fuentes que viene con texlive:

\defaultfontfeatures[MyXCharter]{
   UprightFont     = {XCharterR},
   BoldFont        = {XCharterB},
   ItalicFont      = {XCharterI},
   BoldItalicFont  = {XCharterBI},
   SlantedFont      = {XCharterS},
   BoldSlantedFont  = {XCharterBS},
   %Numbers      = {Proportional,OldStyle},
   Numbers      = {Proportional},
}
\defaultfontfeatures[XCharterR]{
   Extension       = .otf,
   Font            = XCharter-Roman,
}
\defaultfontfeatures[XCharterB]{
   Extension       = .otf,
   Font            = XCharter-Bold,
}
\defaultfontfeatures[XCharterI]{
   Extension       = .otf,
   Font            = XCharter-Italic,
}
\defaultfontfeatures[XCharterBI]{
   Extension       = .otf,
   Font            = XCharter-BoldItalic,
}
\defaultfontfeatures[XCharterS]{
   Extension       = .otf,
   Font            = XCharter-Slanted,
}
\defaultfontfeatures[XCharterBS]{
   Extension       = .otf,
   Font            = XCharter-BoldSlanted,
}

información relacionada