ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen via ntg-context <ntg-context@ntg.nl>
To: ntg-context@ntg.nl
Cc: Hans Hagen <j.hagen@freedom.nl>
Subject: [NTG-context] Re: Adobe Source Typescript With Design Sizes
Date: Wed, 1 Nov 2023 12:36:54 +0100	[thread overview]
Message-ID: <6b1db780-8097-46e1-a7e0-021f5f35250e@freedom.nl> (raw)
In-Reply-To: <b1e2f5fc-e5e2-40db-ac78-3fbb866754e9@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 5947 bytes --]

On 10/31/2023 8:18 PM, Vincent Hennebert wrote:
> Hello there,
> 
> I had mentioned this on a thread some (long) time ago, finally got 
> around to finishing a first version of a typescript with the Adobe 
> Source font family, in all its weight alternatives and design sizes (the 
> latter being available in the Serif style only).
> 
> Comments welcome. If it looks good I can upload it to the wiki, on the 
> Typescripts_examples page I guess.

I have no tiem now to figure out this (somewhat excessive) amount of 
fonts - hopefully we will not end up in a world where all fonts have 
many weights which makes it easier for designers not to make choices and 
delegate that to users instead. That said,

- attached a different approach

- in your variant you can put the lua in the lfg file (at the top) and 
then add \loadfontgoodies[...] before where the functions are used

I'm not sure if we can talk of design sizes here. It's more about 
'usage' because a display vs subhead vs ... variant is not about mixing 
depending on scale (e.g. using display for 20 pt in a 15 pt setup versus 
using scaled regular for 20pt and then display 20pt for e.g. a title 
page or 50pt on posters).

> (I have Questions For the Experts further down...)

maybe a side effect of not defining a math font

> About Adobe Source
> ==================
> 
> The fonts are available on GitHub [1]. They are the descendants of the 
> Source {Serif,Sans,Code} Pro fonts described in the type-imp-source.mkiv 
> typescript available in the ConTeXt distribution. Due to major changes, 
> Serif Pro was renamed into Serif 4 in, well, its version 4 [2] (that’s 
> the version that introduces design sizes, a.k.a. optical sizes), and 
> Sans Pro was renamed into Sans 3 [3].
> 
> [1] https://github.com/adobe-fonts/
> [2] https://github.com/adobe-fonts/source-serif/releases/tag/4.004R
> [3] https://github.com/adobe-fonts/source-sans/issues/192
> 
> 
> Usage
> =====
> 
> Short version: store the attached typescript and its helper Lua files 
> somewhere on your file system where ConTeXt will find them ($HOME/texmf 
> for example), then use in your document:
> 
>      \setupbodyfont[adobesource]
> 
> Long version: The default typescript name is adobesource (also available 
> as adobesource-regular) and has design sizes enabled.
> 
> Each weight is also available: adobesource-extralight, 
> adobesource-light, etc., all the way to adobesource-black. There is also 
> a medium weight, that selects the regular versions of Serif and Sans, 
> but the medium version of Mono (just slightly bolder than the regular 
> one, presumably for better on-screen rendering in terminals).
> 
> Design sizes can be disabled by adding -nodesignsize- to the typescript 
> name: adobesource-nodesignsize-extralight, etc.
> 
> Finally, I thought it would be cool to over-engineer the typescript a 
> little bit and provide direct access to the design sizes (in case one 
> would want a narrower version for body text, or a bolder and more 
> expanded version for titles, etc.). Here they are, again in all their 
> weights: adobesource-caption-extralight, adobesource-smtext-light, 
> adobesource-subhead, adobesource-display-bold, etc. The ‘regular’ design 
> size is accessed by simply using adobesource-nodesignsize.
> 
> 
> Questions For the Experts
> =========================
> 
> To avoid a gigantic typescript file with a lot of duplication, I 
> offloaded the font filename calculation to a Lua function (see attached 
> adobesource.lua). I initially wanted to put the Lua code inside the 
> typescript, but then I had all sorts of weird Lua compilation errors. 
> The very same code works fine when included in a normal document though. 
> Could it be that typescripts are processed in some special mode that 
> doesn’t like Lua syntax? As a workaround, I put the code in an external 
> file and require it from inside the typescript.
> 
> In the goodies file, I use what I believe is the largest possible font 
> size that can be used in ConTeXt (16,383pt) to select the Display design 
> size. Otherwise, text above that size will fall back to the default, 
> regular design size.
> 
> Now, since I use the goodies file only when design sizes are enabled, I 
> thought I could make it more robust by using AdobeSource4Display as a 
> default, that is, for any size above 16.5pt. However, if I mix design 
> sizes enabled and disabled in a document, the disabled one seems to be 
> using the goodies file even though it’s not mentioned in the typescript. 
> Any idea of why? For example:
> 
> \usetypescriptfile[adobesource]
> \usebodyfont[adobesource]
> \setupbodyfont[adobesource-nodesignsize]
> \starttext
> This text is typeset in Display when Regular should be used.
> 
> \switchtobodyfont[adobesource]
> This text is typeset in Regular with design sizes enabled.
> \stoptext
> 
> 
> What’s Next
> ===========
> 
> * A harmonious-looking companion math font.
> * A harmonious-looking companion math font that uses glyphs from Adobe 
> Serif 4 when available.
> 
> 
> Thanks,
> Vincent
> 
> ___________________________________________________________________________________
> If your question is of interest to others as well, please add an entry to the Wiki!
> 
> maillist : ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
> webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
> archive  : https://github.com/contextgarden/context
> wiki     : https://wiki.contextgarden.net
> ___________________________________________________________________________________

-- 

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

[-- Attachment #2: test.tex --]
[-- Type: text/plain, Size: 3057 bytes --]

\starttext

% sourceserif4USAGE-WEIGHT[IT].otf

\definetypescriptprefix [b:as:extralight][regular]
\definetypescriptprefix [b:as:light]     [semibold]
\definetypescriptprefix [b:as:regular]   [bold]
\definetypescriptprefix [b:as:medium]    [bold]
\definetypescriptprefix [b:as:semibold]  [black]
\definetypescriptprefix [b:as:bold]      [black]
\definetypescriptprefix [b:as:black]     [black]

\doloopoverlist {,display,caption,smtext,subhead} {
    \definetypescriptprefix [u:adobesource#1]  [#1]
    \definetypescriptprefix [n:adobesource#1]  [-regular]
    \definetypescriptprefix [i:adobesource#1]  [-it]
    \definetypescriptprefix [b:adobesource#1]  [-\typescriptprefix{b:as:regular}]
    \definetypescriptprefix [bi:adobesource#1] [-\typescriptprefix{b:as:regular}it]
    \doloopoverlist {extralight,light,regular,medium,semibold,bold,black} {
        \definetypescriptprefix [b:adobesource#1##1]  [-\typescriptprefix{b:as:##1}]
        \definetypescriptprefix [bi:adobesource#1##1] [-\typescriptprefix{b:as:##1}it]
    }
}

\starttypescript [adobesource,adobesourcedisplay,adobesourcelight,adobesourcedisplaylight]
    %
    \writestatus{Serif}          {file:sourceserif4 \typescriptprefix{u:\typescriptone} \typescriptprefix {n:\typescriptone}}
    \writestatus{SerifBold}      {file:sourceserif4 \typescriptprefix{u:\typescriptone} \typescriptprefix {b:\typescriptone}}
    \writestatus{SerifItalic}    {file:sourceserif4 \typescriptprefix{u:\typescriptone} \typescriptprefix {i:\typescriptone}}
    \writestatus{SerifBoldItalic}{file:sourceserif4 \typescriptprefix{u:\typescriptone} \typescriptprefix{bi:\typescriptone}}
    %
    \definefontsynonym[Serif]          [file:sourceserif4\typescriptprefix{u:\typescriptone}\typescriptprefix{n:\typescriptone}.otf]
    \definefontsynonym[SerifBold]      [file:sourceserif4\typescriptprefix{u:\typescriptone}\typescriptprefix{b:\typescriptone}.otf]
    \definefontsynonym[SerifItalic]    [file:sourceserif4\typescriptprefix{u:\typescriptone}\typescriptprefix{i:\typescriptone}.otf]
    \definefontsynonym[SerifBoldItalic][file:sourceserif4\typescriptprefix{u:\typescriptone}\typescriptprefix{bi:\typescriptone}.otf]
    %
    \definetypeface [\typescriptone] [rm] [serif] [\typescriptone] [default]
    \definetypeface [\typescriptone] [ss] [sans]  [dejavu] [default]
    \definetypeface [\typescriptone] [tt] [mono]  [dejavu] [default]
    \definetypeface [\typescriptone] [mm] [math]  [dejavu] [default]
\stoptypescript

% \usetypescriptfile[adobesource]

\usebodyfont[adobesource]
\usebodyfont[adobesourcedisplay]

\setupbodyfont[adobesource]

% \starttext

{\switchtobodyfont[adobesource]normal \it italic \bf bold \bi bolditalic}

\startoverlay
    {\switchtobodyfont[adobesource]this is a test}
    {\red\switchtobodyfont[adobesourcedisplay]this is a test}
\stopoverlay

\startoverlay
    {\switchtobodyfont[adobesource]\bf this is a test}
    {\red\switchtobodyfont[adobesourcedisplay]\bf this is a test}
\stopoverlay

\stoptext

[-- Attachment #3: Type: text/plain, Size: 511 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive  : https://github.com/contextgarden/context
wiki     : https://wiki.contextgarden.net
___________________________________________________________________________________

  reply	other threads:[~2023-11-01 11:46 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-31 19:18 [NTG-context] " Vincent Hennebert
2023-11-01 11:36 ` Hans Hagen via ntg-context [this message]
2023-11-02 20:00   ` [NTG-context] " Vincent Hennebert
2023-11-03  8:31     ` Hans Hagen

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=6b1db780-8097-46e1-a7e0-021f5f35250e@freedom.nl \
    --to=ntg-context@ntg.nl \
    --cc=j.hagen@freedom.nl \
    /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).