emacs-devel
[Top][All Lists]
Advanced

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

Re: Entering emojis


From: Gregory Heytings
Subject: Re: Entering emojis
Date: Thu, 28 Oct 2021 17:06:56 +0000


Given the limited available manpower in that narrow subfield, I'm not quite sure it was the best thing to do. Using a font with predefined ligatures is much easier to enter text.

I think the issue is not whether the font delivers ligatures or not, the issue is whether the font recognizes the sequences which should produce either ligatures or series of glyphs with offsets, when the formatting controls are in the sequence. It sounds like the existing fonts don't recognize such sequences for what they are supposed to produce.


This is not how ligatures work. Ligatures automatically translate a sequence of characters into an appropriate glyph, which may or may not be a combination of other glyphs. For example, the Computer Modern font translates the two-character sequence "fi" into a character which looks better than "f" followed by "i". If for some reason you don't want that ligature to take place, you write "f{}i" (in TeX), and you get "f" followed by "i".

Aegyptus does the same, for about ~2500 sequences of two to four hieroglyphs, known as quadrats.

But it's not a joiner, it's a non-joiner. The logic is the opposite of what Unicode decided to do: known quadrats are automatically recognized and combined appropriately when their individual characters appear one after the other in a string. It's only when you want to avoid this that you have to add a non-joiner.

That's not what the Unicode Standard says.


I don't know what you mean by this. As I said, the ligatures logic (used by Aegyptus) is the opposite of what Unicode decided to do. For some reason, Unicode decided to not use ligatures, and to use explicit positioning instructions instead. The "non-joiner" is the "{}" in "f{}i" above, it's an instruction of the writer which means "do not use a ligature here".

The logic chosen by Unicode amounts to insert a special character between each "f" and "i" when you want the "fi" ligature, instead of inserting a special character between "f" and "i" when you don't want the "fi" ligature.

With the ligature logic, to enter "em-hotep", which is composed of four characters, you just enter these four characters: G17, R4, X1, Q3.

With the Unicode logic, to enter "em-hotep", you enter seven characters: G17, R4, vertical joiner, begin segment, X1, Q3, end segment.


So I think we should indeed install you patch, and add a comment that if and when the fonts learn to support these formatting controls, we should go back to the version with the controls. Because etc/HELLO is supposed to demonstrate our advanced text shaping and display capabilities, not just that we can find suitable fonts for scripts.

WDYT?


I don't know. The problem is that the sequence of egyptian characters in etc/HELLO that are displayed correctly by hb-view and LibreOffice (and that are included in my patch) is for some reason not displayed correctly by Emacs, even with the recent Aegyptus font installed. Are ligatures disabled for some reason in Emacs?



reply via email to

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