[NTG-context] faking smallcaps font with font features and fallbacks

Hans Hagen j.hagen at xs4all.nl
Wed Oct 3 15:29:03 CEST 2018


On 10/3/2018 12:33 PM, mf wrote:
> Hello list,
> i'm trying to add a smallcaps variant to the MyriadPro font, since it 
> does not implement the smcp opentype feature.
> 
> My strategy:
> 
> - "transplant" the uppercase letters of the MyriadPro-Regular into the 
> lowercase letters of the same font with a font fallback that scales down 
> the glyphs ("FakeSansCaps" in the following source)
> 
> - since the scaled down glyphs get also thinner traits, embolden them 
> with a font feature effect ("emboldened" in the following source) to 
> make them consistent with the "real" uppercase letters
> 
> What is not working: i don't know how to map the uppercase letters to 
> the lowercase range; i tried to specify an offset of -32 in
> 
> \definefontfallback[FakeSansCaps][SansEmboldened][0x61-0x7a][rscale=.8,force=yes,offset=-32] 
> 
> 
> but it does not work.
> 
> Here's the minimal (not) working example:
> 
> \starttypescriptcollection [myriadpro]
> 
>    \definefontfeature[emboldened][effect={width=0.1,delta=0.4,factor=0.3}]
> 
>    \starttypescript [sans] [myriadpro]
>      \definefontsynonym [Sans] [file:MyriadPro-Regular.otf]      
> [features=default]
>      \definefontsynonym [SansItalic]         [file:MyriadPro-It.otf] 
>        [features=default]
>      \definefontsynonym [SansBold]           [file:MyriadPro-Bold.otf] 
>        [features=default]
>      \definefontsynonym [SansBoldItalic]     [file:MyriadPro-BoldIt.otf] 
>        [features=default]
>      \definefontsynonym [SansSlanted]        [file:MyriadPro-It.otf] 
>        [features=default]
>      \definefontsynonym [SansBoldSlanted]    [file:MyriadPro-BoldIt.otf] 
>        [features=default]
> 
>      \definefontsynonym [SansEmboldened]     [Sans] [features=emboldened]
>      \definefontfallback[FakeSansCaps]       [SansEmboldened] 
> [0x61-0x7a] [rscale=.8,force=yes] % offset?
> 
>      \definefontsynonym [SansCaps] [file:MyriadPro-Regular.otf]      
> [fallbacks=FakeSansCaps]
>    \stoptypescript
>    \starttypescript [myriadpro]
>      \definetypeface [myriadpro] [ss] [sans]  [myriadpro] [default]
>    \stoptypescript
> 
> \stoptypescriptcollection
> 
> \usetypescript[myriadpro]
> 
> \setupbodyfont[myriadpro,ss]
> 
> \starttext
>    % scaled up 4 times to appreciate the thickness compensation
>    \scale[sx=4,sy=4]{\sc SoMe CaMeLcAsE TeXt.}\par
> \stoptext
'offset' offsets the original, i'll add 'target' so that you can do

     \definefontfallback[FakeSansCaps]       [SansEmboldened] 
[0x61-0x7a] [rscale=.8,force=yes,target=0x41]




-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
        tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------


More information about the ntg-context mailing list