emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Supporting stylistic sets


From: Clément Pit-Claudel
Subject: Re: Supporting stylistic sets
Date: Sun, 25 Sep 2022 15:19:36 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0

On 9/24/22 09:14, Eli Zaretskii wrote:
Are you saying
that each tag can be used by a single character in a font?  IOW, no
feature tag can ever be shared by two or more characters in a font?

Sometimes, but not always:

- Sometimes each stylistic set tag is used to toggle a different display for a 
single character.  See e.g. https://ctan.org/tex-archive/fonts/garamond-math .  
This works like a GUI that lets you pick variants individually for each 
character.

- Sometimes a stylistic set is used to change the appearance of multiple 
characters at once.  See e.g. 
https://github.com/newbee1905/Iosevka-personal-config/blob/master/doc/stylistic-sets.md
  . This is more akin to customizing the feel of the whole face.

I haven't thought deeply about how to best make these accessible in Emacs, but in most cases I 
think the preference for one stylistic set is "global".  For example, I use the Iosevka 
font, and I use the stylistic set that imitates the "Ubuntu mono" font everywhere.  So, 
for this use case, a font-level parameter would work well.

There is one use case for stylistic sets where a global, per-font setting doesn't cut it, which is 
sometimes called "ligation sets" (see e.g. https://typeof.net/Iosevka/).  The idea is 
that some font use stylistic sets to allow you to chose different sets of ligatures, and the 
appropriate set of ligatures depends on the context.  For example, Iosevka has one "ligation 
set" per programming language: the expectation is that code in F# would be rendered with a 
different stylistic set than code written in Coq; same for OCaml, Haskell, etc.  In an Org buffer 
with multiple code fragments, I would want to use a different stylistic set for each fragment.  I'm 
not sure how to do this in Emacs.

Clément.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]