help-gnu-emacs
[Top][All Lists]
Advanced

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

Re: Display of decomposed characters


From: Eli Zaretskii
Subject: Re: Display of decomposed characters
Date: Fri, 19 Mar 2021 18:44:25 +0200

> From: Philipp <p.stephani2@gmail.com>
> Date: Fri, 19 Mar 2021 17:37:31 +0100
> Cc: help-gnu-emacs@gnu.org
> 
> >>>> What if Emacs ignored font lookup for combining characters and always 
> >>>> picked the font of the previous base character?
> >>> 
> >>> What would that produce if the font of the previous character didn't
> >>> have a glyph for the accent?  The accent will disappear, or maybe will
> >>> be displayed as "tofu", right?  Does that sound like a good strategy?
> >> 
> >> Can't the shaping engine produce fake compositions in that case?
> > 
> > What do you mean by "fake compositions"? what would they entail, and
> > which glyphs would they use?
> 
> For example, the shaping engine could use U+00A8 (assuming it's available in 
> the font), but place it on top of the base glyph, without horizontal shift.

First, we were talking about the case where U+00A8 is NOT available in
the font.  (If it _is_ available, then this whole discussion is
pointless, because things already work well in that case.)

> (At least that would be a possibility; I don't know whether Harfbuzz actually 
> does that.)
> That would still produce suboptimal results, but probably slightly better 
> ones.

I don't understand what you are describing here.  If the font does
have U+00A8, what you describe already happens.  If the font doesn't
have the glyph, what can the shaper do?

The horizontal shift happens because we use U+00A8 from a different
font.  Placing a glyph from a different font on top of a base glyph is
in general an impossible task, because different fonts have different
ways of describing the points where the accents shall be placed on top
of base characters.

> The optimal approach (for this case) would still be to try out composition 
> before font selection, and use that if it works.

I tried to explain why that's not possible, but I guess I failed
miserably.

> I should note that Emacs is not alone in producing suboptimal results in this 
> case; other GUI programs on that systems appear to either perform the fake 
> composition I mentioned before, or no composition at all (placing the base 
> and combining characters next to each other).

Which should tell us something about the issue and the ways it can and
cannot be solved.



reply via email to

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