List,

I have a strange case of a font feature disappearing when many fonts are used.

In creating a sampler for the Jost* font (free at https://indestructibletype.com/Jost.html) and using its feature ss01 to get single-storey lower-case a, the font reverts to the default two-storey a when many weights are shown. When I create the fonts with \definefontfamily, the upright weights are fine and the italic weights revert. When I create the fonts with \definefont, the reverse is the case.

Below is the demonstration for the \definefont variation and a snip of the failing result.

\definebodyfontenvironment[13pt]
                     [interlinespace=15pt]

\setuplayout         [backspace=0pt,
                      topspace=30pt,
                      width=middle,
                      height=middle,
                      location=middle,
                      header=0pt,
                      footer=0pt]

\setuppagenumbering  [location=]

\definefontfeature   [default]
                     [default]
                     [ss01=yes]

\definefont          [JHair] [jost-100-hairline]
\definefont          [JThin] [jost-200-thin]
\definefont          [JLigh] [jost-300-light]
\definefont          [JBook] [jost-400-book]
\definefont          [JMedi] [jost-500-medium]
\definefont          [JSemi] [jost-600-semi]
\definefont          [JBold] [jost-700-bold]
\definefont          [JHeav] [jost-800-heavy]
\definefont          [JBlac] [jost-900-black]

\definefont          [JHairI][jost-100-hairlineitalic]
\definefont          [JThinI][jost-200-thinitalic]
\definefont          [JLighI][jost-300-lightitalic]
\definefont          [JBookI][jost-400-bookitalic]
\definefont          [JMediI][jost-500-mediumitalic]
\definefont          [JSemiI][jost-600-semiitalic]
\definefont          [JBoldI][jost-700-bolditalic]
\definefont          [JHeavI][jost-800-heavyitalic]
\definefont          [JBlacI][jost-900-blackitalic]

\startbuffer         [Sampler]
 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
 a b c d e f g h i j k l m n o p q r s t u v w x y z à ë í ô ç
 1 2 3 4 5 6 7 8 9 0 ` \texttilde\ - = !  @ \# \$ \letterpercent\ ^ \&
 * ( ) _ + [ ] \textbackslash\ ; ' , . / \{ \} \| : " < > ?
 \fontname\font
\blank               [line]
\stopbuffer

\setupalign          [middle]

 
\starttext
\obeylines

\JHair     \getbuffer[Sampler]
\JThin     \getbuffer[Sampler]
\JLigh     \getbuffer[Sampler]
\JBook     \getbuffer[Sampler]
\JMedi     \getbuffer[Sampler]
\JSemi     \getbuffer[Sampler]
\JBold     \getbuffer[Sampler]
\JHeav     \getbuffer[Sampler]
\JBlac     \getbuffer[Sampler]
\page
\JHairI    \getbuffer[Sampler]
\JThinI    \getbuffer[Sampler]
\JLighI    \getbuffer[Sampler]
\JBookI    \getbuffer[Sampler]
\JMediI    \getbuffer[Sampler]
\JSemiI    \getbuffer[Sampler]
\JBoldI    \getbuffer[Sampler]
\JHeavI    \getbuffer[Sampler]
\JBlacI    \getbuffer[Sampler]

\stoptext

Below is the demonstration for the \definefontfamily variation and a snip of the expected result, although the italics fail.

\definebodyfontenvironment[13pt]
                     [interlinespace=15pt]

\setuplayout         [backspace=0pt,
                      topspace=15pt,
                      width=middle,
                      height=middle,
                      location=middle,
                      header=0pt,
                      footer=0pt]

\setuppagenumbering  [location=]

\definefontfeature   [default]
                     [default]
                     [ss01=yes]
\definefontfamily    [up-one]
                     [sansserif]
                     [Jost]
                     [tf={style:hairline,features},
                      bf={style:thin,features},
                      bi={style:light,features},
                      it={style:book,features}]
\definefontfamily    [up-two]
                     [sansserif]
                     [Jost]
                     [tf={style:medium,features},
                      bf={style:semi,features},
                      bi={style:bold,features},
                      it={style:heavy,features}]
\definefontfamily    [up-three]
                     [sansserif]
                     [Jost]
                     [tf={style:black,features},
                      bf={style:black,features},
                      bi={style:black,features},
                      it={style:black,features}]
\definefontfamily    [it-one]
                     [sansserif]
                     [Jost]
                     [tf={style:hairlineitalic,features},
                      bf={style:thinitalic,features},
                      bi={style:lightitalic,features},
                      it={style:bookitalic,features}]
\definefontfamily    [it-two]
                     [sansserif]
                     [Jost]
                     [tf={style:mediumitalic,features},
                      bf={style:semiitalic,features},
                      bi={style:bolditalic,features},
                      it={style:heavyitalic,features}]
\definefontfamily    [it-three]
                     [sansserif]
                     [Jost]
                     [tf={style:blackitalic,features},
                      bf={style:blackitalic,features},
                      bi={style:blackitalic,features},
                      it={style:blackitalic,features}]

\startbuffer         [Sampler]
 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
 a b c d e f g h i j k l m n o p q r s t u v w x y z à ë í ô ç
 1 2 3 4 5 6 7 8 9 0 ` \texttilde\ - = !  @ \# \$ \letterpercent\ ^ \&
 * ( ) _ + [ ] \textbackslash\ ; ' , . / \{ \} \| : " < > ?
 \fontname\font
\blank               [line]
\stopbuffer

\setupalign          [middle]
 
\setupbodyfont       [up-one,13pt]

\starttext
\obeylines

\ss\tf\getbuffer     [Sampler]
\ss\bf\getbuffer     [Sampler]
\ss\bi\getbuffer     [Sampler]
\ss\it\getbuffer     [Sampler]
\switchtobodyfont    [up-two]
\ss\tf\getbuffer     [Sampler]
\ss\bf\getbuffer     [Sampler]
\ss\bi\getbuffer     [Sampler]
\ss\it\getbuffer     [Sampler]
\switchtobodyfont    [up-three]
\ss\tf\getbuffer     [Sampler]
\page
\switchtobodyfont    [it-one]
\ss\tf\getbuffer     [Sampler]
\ss\bf\getbuffer     [Sampler]
\ss\bi\getbuffer     [Sampler]
\switchtobodyfont    [it-two]
\ss\tf\getbuffer     [Sampler]
\ss\bf\getbuffer     [Sampler]
\ss\bi\getbuffer     [Sampler]
\ss\it\getbuffer     [Sampler]
\switchtobodyfont    [it-three]
\ss\tf\getbuffer     [Sampler]
\stoptext


Assistance or explanation is welcome. This is just for a sampler -- the font with just three weights when used in a real project is fine. I do not know if the problem is with the font or with ConTeXt or with my expectations.

--
Rik