On 12/22/2019 5:36 AM, Rik Kabel wrote:
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.
i donloaded the fonts from

https://github.com/indestructible-type/Jost/tree/master/Finished/otf

and this shows what you run into:

\definefont [JHair]  [jost-100-hairline*default]
\definefont [JHairI] [jost-100-hairlineitalic*default]

\definefontfeature[ss01][ss01=yes]

\startbuffer[ss01]
    \hbox\bgroup
        \char   97\relax
        \char  224\relax
        \char  225\relax
        \char  226\relax
        \char  227\relax
        \char  228\relax
        \char  229\relax
        \char  257\relax
        \char  259\relax
        \char  261\relax
        \char 1072\relax
    \egroup
\stopbuffer

\starttext
    \startlines
        {\type{default } \JHair             \getbuffer[ss01]}
        {\type{enabled } \JHair \addff{ss01}\getbuffer[ss01]}
        {\type{disabled} \JHair \subff{ss01}\getbuffer[ss01]}
        {\type{default } \JHairI            \getbuffer[ss01]}
        {\type{enabled } \JHairI\addff{ss01}\getbuffer[ss01]}
        {\type{disabled} \JHairI\subff{ss01}\getbuffer[ss01]}
    \stoplines
\stoptext

btw, this happens often, like with oldstyle, the wished default is the hard coded default so one has to enable/disable

now, what you miss is that you define a font without applying any features ...

Hans

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to