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@xs4all.nl>
Subject: [NTG-context] Re: OpenType contextual alternates disabled by default
Date: Wed, 10 Sep 2025 08:58:14 +0200	[thread overview]
Message-ID: <dc149783-17c3-495c-bd7f-5d52e417991d@xs4all.nl> (raw)
In-Reply-To: <e4097787-1fe1-499d-8598-f0047484f9b9@gmail.com>

On 9/9/2025 10:16 PM, Wolfgang Schuster wrote:
> Am 09.09.2025 um 09:59 schrieb Hans Hagen via ntg-context:
>> On 9/9/2025 9:34 AM, Max Chernoff via ntg-context wrote:
>>> Hi Hans,
>>>
>>> OpenType contextual alternates ("calt") seem to be disabled by default
>>> in ConTeXt. However, the OpenType spec recommends that this is enabled
>>> by default
>>>
>>>      https://learn.microsoft.com/en-us/typography/opentype/spec/ 
>>> features_ae#tag-calt
>>>
>>> and it's enabled by default in both HTML and HarfBuzz
>>>
>>>      https://drafts.csswg.org/css-fonts/#default-features
>>>
>>>      https://harfbuzz.github.io/shaping-opentype-features.html
>>>
>>> Changing this default in ConTeXt probably isn't possible due to
>>> backwards compatibility concerns, so this is more of an FYI than a
>>> request for any changes to be made.
>>>
>>> Background: this came up in a recent TeX.SE question
>>>
>>>      https://tex.stackexchange.com/a/750767
>>>
>>> where a new user was surprised by ConTeXt's default setting since it
>>> makes some fonts render differently than other programs.
>>
>> We started with opentype support (2005) when there wasn't much info 
>> about it. The reference implementation was uniscribe so we had to 
>> guess and compare with that. The xetex engine was using some libraries 
>> and changed them later on. So we couldn't check that out either.
>>
>> Now, when it comes to features, those experiences, also with specific 
>> fonts, made us decide for the defaults. Over time the specification 
>> became better and more complete but as you say: we want to remain 
>> compatibility. (I assume that ltx folk spend substantial time on 
>> checking changes in hb every time there is an update in tex live, 
>> which is quite often if i look at git syncing.)
>>
>> An omission in otf is that the font doesn't specify what features are 
>> to be on by default. Combine that with font usage where users have no 
>> control over features, and we see why soem are just turned on. 
>> Probably the same for some (fixing) heuristics. It's now how tex 
>> works: there we *ask* for something, not being *enforced* to.
>>
>> If I could motivate myself we could of course make such a list of 
>> default features per font.
>>
>> Of course one can wonder why we have rlig/lig/clig as well as kern/ 
>> dist split into several features when they are supposed to be always 
>> on. But I will not waste time on pondering that.
> 
> A simple change is to a additional feature set with all the new 
> recommended settings. Changes to the list can happen unlike the default 
> feature set and users can apply it to their own font settings.
> 
> \definefontfeature
>    [standard] % harfbuzz?
>    [always]
>    [itlc=yes,
>     rlig=yes,
>     liga=yes,
>     clig=yes,
>     calt=yes]
> 
> \starttext

more like "recommended" as there is no standard and specific 
applications are no standard either .. font-pre has a comment:

% ccmp=yes, % maybe too
% locl=yes, % maybe too
% calt=yes, % maybe too
% clig=yes, % maybe too
% rlig=yes, % maybe too
% tlig=yes, % no longer default (texligatures=yes)
% trep=yes, % no longer default (texquotes=yes)

so shouln't we then also add ccmp and locl there?

\definefontfeature
    [recommended]
    [always]
    [itlc=yes,
   % ccmp=yes,
   % locl=yes,
     rlig=yes,
     liga=yes,
     clig=yes,
     calt=yes]

Because I guess those will be next. We (us users) can add more as more 
becomes 'recommended' .

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://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:[~2025-09-10  6:59 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-09  7:34 [NTG-context] OpenType contextual alternates disabled by default Max Chernoff via ntg-context
2025-09-09  7:59 ` [NTG-context] " Hans Hagen via ntg-context
2025-09-09 20:16   ` Wolfgang Schuster
2025-09-10  6:58     ` Hans Hagen via ntg-context [this message]

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=dc149783-17c3-495c-bd7f-5d52e417991d@xs4all.nl \
    --to=ntg-context@ntg.nl \
    --cc=j.hagen@xs4all.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).