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
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 -----------------------------------------------------------------
while trying to reproduce the example, i ran into some confusion myself... I downloaded the fonts and installed them, then ran the script: mtxrun --generate mtxrun --script font --reload context --make verifying the existence of the font within the context region: mtxrun --script fonts --list --all --name jost | cut -d" " -f1 shows the font appeared to be installed: jostblack jostblackitalic jostbold jostbolditalic jostbook jostbookitalic josthairline josthairlineitalic jostheavy jostitalic jostlight jostlightitalic jostmedium jostmediumitalic jostnormal jostregular jostsemi jostsemiitalic jostthin jostthinitalic Now when i compile the example, lmtx will shows an issue with the font: preloading latin modern fonts (second stage) fonts > 'fallback modern-designsize rm 12pt' is loaded fonts > names > font database has mismatching configuration and file hashes fonts > names > warnings are disabled (tracker 'fonts.warnings') fonts > names > identifying tree font files with suffix 'otf' fonts > names > scanning path '/home/vm/data/context/tex/texmf-project' for otf files fonts > names > 0 otf files checked, okay fonts > names > scanning path '/home/vm/data/context/tex/texmf-fonts' for otf files fonts > names > 0 otf files checked, okay fonts > names > scanning path '/home/vm/data/context/tex/texmf-local' for otf files fonts > names > 0 otf files checked, okay fonts > names > scanning path '/home/vm/data/context/tex/texmf-modules' for otf files fonts > names > 0 otf files checked, okay fonts > names > scanning path '/home/vm/data/context/tex/texmf-context' for otf files fonts > names > 1 otf files checked, okay fonts > names > scanning path '/home/vm/data/context/tex/texmf-linux-64' for otf files fonts > names > 0 otf files checked, okay fonts > names > scanning path '/home/vm/data/context/tex/texmf' for otf files fonts > names > 222 otf files checked, okay fonts > names > identifying tree font files with suffix 'OTF' fonts > names > scanning path '/home/vm/data/context/tex/texmf-project' for OTF files fonts > names > 0 OTF files checked, okay fonts > names > scanning path '/home/vm/data/context/tex/texmf-fonts' for OTF files fonts > names > 0 OTF files checked, okay fonts > names > scanning path '/home/vm/data/context/tex/texmf-local' for OTF files fonts > names > 0 OTF files checked, okay fonts > names > scanning path '/home/vm/data/context/tex/texmf-modules' for OTF files fonts > names > 0 OTF files checked, okay fonts > names > scanning path '/home/vm/data/context/tex/texmf-context' for OTF files fonts > names > 1 OTF files checked, okay fonts > names > scanning path '/home/vm/data/context/tex/texmf-linux-64' for OTF files fonts > names > 0 OTF files checked, okay fonts > names > scanning path '/home/vm/data/context/tex/texmf' for OTF files fonts > names > 222 OTF files checked, okay fonts > names > 446 tree files identified, 0 skipped, 0 duplicates, 446 hash entries added, runtime 0.045 seconds and it will fallback to the default lmroman12-regular I noticed that if i omit the context --make and only run mtxrun --generate mtxrun --script font --reload then compile the example, lmtx will show a different set of issues. Most likely related... open source > level 1, order 1, name 'cont-yes.mkiv' system > system > ConTeXt ver: 2019.12.17 16:30 MKIV beta fmt: 2019.12.22 int: english/english system > system > 'cont-new.mkiv' loaded open source > level 2, order 2, name '/home/vm/data/context/tex/texmf-context/tex/context/base/mkiv/cont-new.mkiv' system > beware: some patches loaded from cont-new.mkiv close source > level 2, order 2, name '/home/vm/data/context/tex/texmf-context/tex/context/base/mkiv/cont-new.mkiv' system > files > jobname 'j2', input './j2', result 'j2' fonts > latin modern fonts are not preloaded languages > language 'en' is active open source > level 2, order 3, name './j2.tex' fonts > preloading latin modern fonts (second stage) fonts > 'fallback modern-designsize rm 12pt' is loaded fonts > defining > font with asked name 'jost-100-hairline' is not found using lookup 'file' fonts > defining > unknown font 'jost-100-hairline', loading aborted fonts > defining > unable to define 'jost-100-hairline' as 'JHair--0' fonts > defining > font with asked name 'jost-200-thin' is not found using lookup 'file' fonts > defining > unknown font 'jost-200-thin', loading aborted fonts > defining > unable to define 'jost-200-thin' as 'JThin--0' fonts > defining > font with asked name 'jost-300-light' is not found using lookup 'file' fonts > defining > unknown font 'jost-300-light', loading aborted fonts > defining > unable to define 'jost-300-light' as 'JLigh--0' fonts > defining > font with asked name 'jost-400-book' is not found using lookup 'file' fonts > defining > unknown font 'jost-400-book', loading aborted fonts > defining > unable to define 'jost-400-book' as 'JBook--0' fonts > defining > font with asked name 'jost-500-medium' is not found using lookup 'file' fonts > defining > unknown font 'jost-500-medium', loading aborted fonts > defining > unable to define 'jost-500-medium' as 'JMedi--0' fonts > defining > font with asked name 'jost-600-semi' is not found using lookup 'file' fonts > defining > unknown font 'jost-600-semi', loading aborted fonts > defining > unable to define 'jost-600-semi' as 'JSemi--0' fonts > defining > font with asked name 'jost-700-bold' is not found using lookup 'file' fonts > defining > unknown font 'jost-700-bold', loading aborted fonts > defining > unable to define 'jost-700-bold' as 'JBold--0' fonts > defining > font with asked name 'jost-800-heavy' is not found using lookup 'file' fonts > defining > unknown font 'jost-800-heavy', loading aborted fonts > defining > unable to define 'jost-800-heavy' as 'JHeav--0' fonts > defining > font with asked name 'jost-900-black' is not found using lookup 'file' fonts > defining > unknown font 'jost-900-black', loading aborted fonts > defining > unable to define 'jost-900-black' as 'JBlac--0' backend > xmp > using file '/home/vm/data/context/tex/texmf-context/tex/context/base/mkiv/lpdf-pdx.xml' pages > flushing realpage 1, userpage 1, subpage 1 fonts > defining > font with asked name 'jost-100-hairlineitalic' is not found using lookup 'file' fonts > defining > unknown font 'jost-100-hairlineitalic', loading aborted fonts > defining > unable to define 'jost-100-hairlineitalic' as 'JHairI--0' fonts > defining > font with asked name 'jost-200-thinitalic' is not found using lookup 'file' fonts > defining > unknown font 'jost-200-thinitalic', loading aborted fonts > defining > unable to define 'jost-200-thinitalic' as 'JThinI--0' fonts > defining > font with asked name 'jost-300-lightitalic' is not found using lookup 'file' fonts > defining > unknown font 'jost-300-lightitalic', loading aborted fonts > defining > unable to define 'jost-300-lightitalic' as 'JLighI--0' fonts > defining > font with asked name 'jost-400-bookitalic' is not found using lookup 'file' fonts > defining > unknown font 'jost-400-bookitalic', loading mtxrun --generate mtxrun --script font --reloadaborted fonts > defining > unable to define 'jost-400-bookitalic' as 'JBookI--0'mtxrun --generate mtxrun --script font --reload fonts > defining > font with asked name 'jost-500-mediumitalic' is not found using lookup 'file' fonts > defining > unknown font 'jost-500-mediumitalic', loading aborted fonts > defining > unable to define 'jost-500-mediumitalic' as 'JMediI--0' fonts > defining > font with asked name 'jost-600-semiitalic' is not found using lookup 'file' fonts > defining > unknown font 'jost-600-semiitalic', loading aborted fonts > defining > unable to define 'jost-600-semiitalic' as 'JSemiI--0' fonts > defining > font with asked name 'jost-700-bolditalic' is not found using lookup 'file' fonts > defining > unknown font 'jost-700-bolditalic', loading aborted fonts > defining > unable to define 'jost-700-bolditalic' as 'JBoldI--0' fonts > defining > font with asked name 'jost-800-heavyitalic' is not found using lookup 'file' fonts > defining > unknown font 'jost-800-heavyitalic', loading aborted fonts > defining > unable to define 'jost-800-heavyitalic' as 'JHeavI--0' fonts > defining > font with asked name 'jost-900-blackitalic' is not found using lookup 'file' fonts > defining > unknown font 'jost-900-blackitalic', loading aborted fonts > defining > unable to define 'jost-900-blackitalic' as 'JBlacI--0' pages > flushing realpage 2, userpage 2, subpage 2 close source > level 2, order 3, name './j2.tex'
On 12/22/2019 06:08, Hans Hagen wrote:
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 ...
Thank you, Hans, I see now that SS01 reverses the default setting for the font. The default for the italic faces is the single-storey form, so I need only apply the changed feature to the upright faces to get what I want. -- Rik
participants (3)
-
Floris van Manen
-
Hans Hagen
-
Rik Kabel