Re: [NTG-context] Non-standard font alternatives

2022-12-14 Thread Matthew McCabe via ntg-context
> On 13 Dec 2022, at 7:53 pm, Hans Hagen via ntg-context  
> wrote:
> 
> On 12/13/2022 9:15 AM, Matthew McCabe via ntg-context wrote:
>> Hi list,
>> I'm looking to import a font with medium and light weights (in this case 
>> Roboto) and define font alternatives so one can quickly switch to light text 
>> just as one would switch to bold text. There is a stackexchange answer from 
>> Wolfgang 
>> (https://tex.stackexchange.com/questions/303648/context-font-weights 
>> <https://tex.stackexchange.com/questions/303648/context-font-weights>) which 
>> details a solution to this problem for ConTeXt MkIV but despite my best 
>> efforts I haven't been able to get things to work for me. There is the 
>> Roboto typescript example on ConTeXt garden but it isn't exactly what I'm 
>> looking for as for the document I'm making I would prefer to be able to 
>> treat the font weights as alternatives rather than separate families since I 
>> will be switching often.
> take a look at type-imp-plex.mkiv (just remove the \s! in your case)
> 
> basically you define two typefaces: normal and light and then just switch 
> between these, as in:
> 
> at the top of your document you say
> 
> \usebodyfont[plex]   % preloads
> \usebodyfont[plex-light] % preloads
> 
> \setupbodyfont[plex] % enables main font
> 
> and after that
> 
> {\switchtobodyfont[plex-light]  }
> 
> will do a consistent switch
> 
> 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 / 
> https://www.ntg.nl/mailman/listinfo/ntg-context
> webpage  : https://www.pragma-ade.nl / http://context.aanhet.net
> archive  : https://bitbucket.org/phg/context-mirror/commits/
> wiki : https://contextgarden.net
> ___

Thanks for the reply and your help Hans, ok so if I understand correctly the 
canonical way to integrate light weight font is to define two typefaces. I 
wrote up a typescript for (Sans) Roboto based on the example typescript from 
ConTeXt garden using only the Sans variants and it’s working well.

For anyone else looking to do something similar, since the typescript is just a 
tex file it seems if one places it in one’s local directory it will be 
accessible when ConTeXt generates the pdf. I saved it as type-imp-roboto.tex in 
my local directory and used ‘\usebodyfont[roboto]’ and 
‘\usebodyfont[roboto-light]’ to preload the fonts as recommended 
(\usetypescriptfile didn’t seem to be required).

Here is my typescript, for the Sans Roboto font, pretty much picked out of the 
context garden example typescript for Roboto:

\definefontfeature[robotofeatures][
  mode=node,
  ccmp=yes, % character composition
  liga=yes, tlig=yes, % ligatures
  pnum=yes,
  cpsp=yes, % capital spacing
  kern=yes,
  language=dflt,
  protrusion=quality,
  expansion=quality,
]

\definefontfeature[smallcaps][ % use with \addff
  smcp=yes, % smallcaps
  % c2sc=yes, % caps to smallcaps
]

\starttypescript[sans][roboto,robotosans]
  \definefontsynonym[Roboto-Regular][name:robotoregular]
  \definefontsynonym[Roboto-Black][name:robotoblack]
  \definefontsynonym[Roboto-BlackItalic][name:robotoblackitalic]
  \definefontsynonym[Roboto-Bold][name:robotobold]
  \definefontsynonym[Roboto-BoldItalic][name:robotobolditalic]
  \definefontsynonym[Roboto-Italic][name:robotoitalic]
  \definefontsynonym[Roboto-Light][name:robotolight]
  \definefontsynonym[Roboto-LightItalic][name:robotolightitalic]
  \definefontsynonym[Roboto-Medium][name:robotomedium]
  \definefontsynonym[Roboto-MediumItalic][name:robotomediumitalic]
  \definefontsynonym[Roboto-Italic][name:robotoitalic]
  \definefontsynonym[Roboto-Regular][name:robotoregular]
  \definefontsynonym[Roboto-Thin][name:robotothin]
  \definefontsynonym[Roboto-ThinItalic][name:robotothinitalic]
\stoptypescript

\starttypescript[sans][roboto,robotosans][name]
  \definefontsynonym [SansThin] [Roboto-Thin]
[features=robotofeatures]
  \definefontsynonym [SansThinItalic]   [Roboto-ThinItalic]  
[features=robotofeatures]
  \definefontsynonym [SansThinSlanted]  [Roboto-ThinItalic]  
[features=robotofeatures]
  \definefontsynonym [SansLight][Roboto-Light]   
[features=robotofeatures]
  \definefontsynonym [SansLigh

[NTG-context] Non-standard font alternatives

2022-12-13 Thread Matthew McCabe via ntg-context
Hi list,

I'm looking to import a font with medium and light weights (in this case 
Roboto) and define font alternatives so one can quickly switch to light text 
just as one would switch to bold text. There is a stackexchange answer from 
Wolfgang (https://tex.stackexchange.com/questions/303648/context-font-weights) 
which details a solution to this problem for ConTeXt MkIV but despite my best 
efforts I haven't been able to get things to work for me. There is the Roboto 
typescript example on ConTeXt garden but it isn't exactly what I'm looking for 
as for the document I'm making I would prefer to be able to treat the font 
weights as alternatives rather than separate families since I will be switching 
often.

One can download the exact set of fonts I am using from 
https://fonts.google.com/specimen/Roboto

Here is my code:

\definefontalternative[lf] % light
\definefontalternative[li] % lightitalic
\definefontalternative[md] % medium
\definefontalternative[mi] % mediumitalic

\starttypescript [sans] [roboto]
  \definefontsynonym [SansLight][file:Roboto-Light]
[features=default]
  \definefontsynonym [SansLightItalic]  [file:Roboto-LightItalic]  
[features=default]
  \definefontsynonym [Sans] [file:Roboto-Regular]  
[features=default]
  \definefontsynonym [SansItalic]   [file:Roboto-Italic]   
[features=default]
  \definefontsynonym [SansMedium]   [file:Roboto-Medium]   
[features=default]
  \definefontsynonym [SansMediumItalic] [file:Roboto-MediumItalic] 
[features=default]
  \definefontsynonym [SansBold] [file:Roboto-Bold] 
[features=default]
  \definefontsynonym [SansBoldItalic]   [file:Roboto-BoldItalic]   
[features=default]
  \definefontsynonym [SansCaps] [file:Roboto-Sans] 
[features=smallcaps]
\stoptypescript

\starttypescript [sans] [roboto]
  \definebodyfont [default] [rm]
 [lf=SansLight sa 1,
  li=SansLightItalic sa 1,
  tf=Sans sa 1,
  it=SansItalic sa 1,
  md=SansMedium sa 1,
  mi=SansMediumItalic sa 1,
  bf=SansBold sa 1,
  bi=SansBoldItalic sa 1,
  sc=SansCaps sa 1]
\stoptypescript

\definetypeface[roboto][rm][sans][roboto][default]

\setupbodyfont[roboto]

\starttext

\lf Light
\li LightItalic
\tf Regular
\it Italic
\md Medium
\mi MediumItalic
\bf Bold
\bi BoldItalic
\sc SmallCaps

\stoptext

- The result is entirely in the regular weight default font:



What I've tried:

1. I've tried a great deal of alternative \definefontsynonym arguments such as 
specifying by name, including the full path to each ttf file

2. I played around with different two character \definefontalternative 
arguments to ensure there was no overlap with existing commands (as far as I am 
aware the existing set are otherwise undefined)


A few things to note:

1. My current version of ConTeXt is 2022.12.09 16:34

2. For portability I have included the ttf files for Roboto in a directory 
within my project directory and while setting things up I set OSFONTDIR to 
include this directory and run `mtxrun --script fonts --reload --force`

3. `mtxrun --script fonts --list --all --pattern=Robo` yields:

identifier   familyname   fontname filename 
subfont   instances

roboto   roboto   robotoregular
./fonts/Roboto/Roboto-Regular.ttf
robotoblack  roboto   robotoblack  
./fonts/Roboto/Roboto-Black.ttf
robotoblackitalicroboto   robotoblackitalic
./fonts/Roboto/Roboto-BlackItalic.ttf
robotobold   roboto   robotobold   
./fonts/Roboto/Roboto-Bold.ttf
robotobolditalic roboto   robotobolditalic 
./fonts/Roboto/Roboto-BoldItalic.ttf
robotoitalic roboto   robotoitalic 
./fonts/Roboto/Roboto-Italic.ttf
robotolight  roboto   robotolight  
./fonts/Roboto/Roboto-Light.ttf
robotolightitalicroboto   robotolightitalic
./fonts/Roboto/Roboto-LightItalic.ttf
robotomedium roboto   robotomedium 
./fonts/Roboto/Roboto-Medium.ttf
robotomediumitalic   roboto   robotomediumitalic   
./fonts/Roboto/Roboto-MediumItalic.ttf
robotonormal roboto   robotoregular
./fonts/Roboto/Roboto-Regular.ttf
robotoregularroboto   robotoregular
./fonts/Roboto/Roboto-Regular.ttf
robotothin   roboto   robotothin   
./fonts/Roboto/Roboto-Thin.ttf
robotothinitalic roboto   robotothinitalic 
./fonts/Roboto/Roboto-ThinItalic.ttf

4. Using `\definedfont[name:robotomedium*default] hello` and 
`\definedfont[file:Roboto-Thin*default] hello` (for example) work exactly as 
expected


I hope this isn't a silly question, I'm very new to ConTeXt and have been 
struggling for a while so thought I may as well ask in case there's something 
I'm missing, would appreciate any guidance :)

Regards, Matt

___
If y