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
___________________________________________________________________________________
prev parent 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).