emacs-devel
[Top][All Lists]
Advanced

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

Re: Ligatures (was: Unify the Platforms: Cairo+FreeType+Harfbuzz Everywh


From: Eli Zaretskii
Subject: Re: Ligatures (was: Unify the Platforms: Cairo+FreeType+Harfbuzz Everywhere (except TTY))
Date: Fri, 22 May 2020 16:15:42 +0300

> From: Pip Cet <address@hidden>
> Date: Fri, 22 May 2020 12:52:41 +0000
> Cc: address@hidden, address@hidden, address@hidden
> 
> > You can request all the ligatures that _can_ be supported;
> 
> How do I do that? Opentype fonts can support arbitrary ligatures, such
> as "Zapfino" being a seven-letter ligature.

I thought the set of all the ligatures is known, and guided by
typography experts.  Do font designers really support ligatures from
any arbitrary combination of characters?  If so, where can I read
about this?

> > Or you can request only those ligatures that make sense for the
> > particular use case.
> 
> My use case is English text, and all ligatures supported by the font
> make sense for that.

Which ones are those?  Is there an exhaustive list of such ligatures
somewhere?

> > For example, when displaying program source code
> > you'd probably want the various symbols, like -> etc., to produce
> > ligatures, but you most probably won't want "ffi" in a variable name
> > to produce a ligature.
> 
> Why not?

It makes no sense to me.  Why ligate them in that use case?  Program
source code isn't supposed to behave like typeset human-readable text.

> Okay, I can accept that requirement. But it should be possible to get
> "all ligatures", rather than a finite set you know about in advance.

Let's first reach an understanding of what "all ligatures" actually
means.  I thought the full list of all ligatures is known in advanced
and quite small, but maybe this is wrong, see above.

> "For the list of typographical ligatures, see
> 
>   
> https://en.wikipedia.org/wiki/Orthographic_ligature#Ligatures_in_Unicode_(Latin_alphabets)"
> 
> That's very wrong: typographical ligatures generally aren't assigned
> Unicode codepoints; those that have them usually do so for historical
> reasons.

Indeed, ligatures don't have to have Unicode codepoints, only some of
them are precomposed.  Emacs doesn't need them to have codepoints when
we use auto-composition-mode.  The reference is there only to show the
list of ligatures, and I believe the list is full regardless of the
codepoint issue.  Can you point me to a larger list of ligatures made
out of ASCII letters?

> There's no finite "the" list of typographical ligatures, it's up to
> each font to define glyphs covering codepoint clusters as it sees
> fit.

Really?  Any reference for this?

> > At least I didn't yet see any evidence that it isn't valid;
> 
> But how do I make it work? For English/Western text with ligatures
> that I don't know about in advance? Please treat this as a dumb
> end-user question. What lines of Lisp do I enter to get all the
> ligatures my font supports, most of which do not have individual
> Unicode codepoints?

You tell Emacs that a given series of characters should be composed,
via composition-function-table, and the shaper then does the job of
providing the font glyphs for displaying that sequence.

But I don't think we should continue with these details before we have
a clear idea of whether the list of possible ligatures is really
infinite, as you seem to imply.



reply via email to

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