ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Matthew McCabe via ntg-context <ntg-context@ntg.nl>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Cc: Matthew McCabe <matt.mccabe.888@icloud.com>
Subject: Re: Non-standard font alternatives
Date: Wed, 14 Dec 2022 21:49:59 +1100	[thread overview]
Message-ID: <12D41BDE-AA30-41F8-B3A3-85C5A301E0D4@icloud.com> (raw)
In-Reply-To: <de7e1acd-809e-0625-c2d6-de10a710ccf2@freedom.nl>

> On 13 Dec 2022, at 7:53 pm, Hans Hagen via ntg-context <ntg-context@ntg.nl> 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 [SansLightItalic]  [Roboto-LightItalic] [features=robotofeatures]
  \definefontsynonym [SansLightSlanted] [Roboto-LightItalic] [features=robotofeatures]
  \definefontsynonym [Sans]             [Roboto-Regular]     [features=robotofeatures]
  \definefontsynonym [SansItalic]       [Roboto-Italic]      [features=robotofeatures]
  \definefontsynonym [SansSlanted]      [Roboto-Italic]      [features=robotofeatures]
  \definefontsynonym [SansCaps]         [Roboto-Regular]     [features={robotofeatures,smallcaps}]
  \definefontsynonym [SansMedium]       [Roboto-Medium]      [features=robotofeatures]
  \definefontsynonym [SansMediumItalic] [Roboto-MediumItalic][features=robotofeatures]
  \definefontsynonym [SansMediumSlanted][Roboto-MediumItalic][features=robotofeatures]
  \definefontsynonym [SansBold]         [Roboto-Bold]        [features=robotofeatures]
  \definefontsynonym [SansBoldItalic]   [Roboto-BoldItalic]  [features=robotofeatures]
  \definefontsynonym [SansBoldSlanted]  [Roboto-BoldItalic]  [features=robotofeatures]
  \definefontsynonym [SansBlack]        [Roboto-Black]       [features=robotofeatures]
  \definefontsynonym [SansBlackItalic]  [Roboto-BlackItalic] [features=robotofeatures]
  \definefontsynonym [SansBlackSlanted] [Roboto-BlackItalic] [features=robotofeatures]
\stoptypescript

\starttypescript[sans][roboto-light][name]
  \definefontsynonym [Sans]             [Roboto-Light]         [features=robotofeatures]
  \definefontsynonym [SansItalic]       [Roboto-LightItalic]   [features=robotofeatures]
  \definefontsynonym [SansSlanted]      [Roboto-LightItalic]   [features=robotofeatures]
  \definefontsynonym [SansCaps]         [Roboto-Light]         [features={robotofeatures,smallcaps}]
  \definefontsynonym [SansBold]         [Roboto-Medium]        [features=robotofeatures]
  \definefontsynonym [SansBoldItalic]   [Roboto-MediumItalic]  [features=robotofeatures]
  \definefontsynonym [SansBoldSlanted]  [Roboto-MediumItalic]  [features=robotofeatures]
\stoptypescript

\starttypescript[sans][roboto-medium][name]
  \definefontsynonym [Sans]             [Roboto-Medium]     [features=robotofeatures]
  \definefontsynonym [SansItalic]       [Roboto-MediumItalic]      [features=robotofeatures]
  \definefontsynonym [SansSlanted]      [Roboto-MediumItalic]      [features=robotofeatures]
  \definefontsynonym [SansCaps]         [Roboto-Medium]     [features={robotofeatures,smallcaps}]
  \definefontsynonym [SansBold]         [Roboto-Black]        [features=robotofeatures]
  \definefontsynonym [SansBoldItalic]   [Roboto-BlackItalic]  [features=robotofeatures]
  \definefontsynonym [SansBoldSlanted]  [Roboto-BlackItalic]  [features=robotofeatures]
\stoptypescript

\starttypescript[roboto]
  \definetypeface [roboto] [ss] [sans]  [roboto] [default]
\stoptypescript

\starttypescript[roboto-light]
  \definetypeface [roboto-light] [ss] [sans]  [roboto-light] [default]
\stoptypescript

\starttypescript[roboto-medium]
  \definetypeface [roboto-medium] [ss] [sans]  [roboto-medium] [default]
\stoptypescript



___________________________________________________________________________________
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
___________________________________________________________________________________

  reply	other threads:[~2022-12-14 10:49 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-13  8:15 Matthew McCabe via ntg-context
2022-12-13  8:53 ` Hans Hagen via ntg-context
2022-12-14 10:49   ` Matthew McCabe via ntg-context [this message]
2023-01-06  7:55     ` Hans Hagen via ntg-context
2023-04-19 14:53       ` [NTG-context] " Pawel Urbanski via ntg-context
2023-04-19 16:52         ` Henning Hraban Ramm via ntg-context
2023-04-19 18:02           ` Pawel Urbanski via ntg-context
2023-04-19 19:24         ` Henning Hraban Ramm via ntg-context
2023-04-19 21:57           ` Pawel Urbanski via ntg-context
2023-04-20 21:34           ` Pawel Urbanski via ntg-context
2022-12-14 18:02 ` Wolfgang Schuster via ntg-context

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=12D41BDE-AA30-41F8-B3A3-85C5A301E0D4@icloud.com \
    --to=ntg-context@ntg.nl \
    --cc=matt.mccabe.888@icloud.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).