notofonts / devanagari

Noto Devanagari
SIL Open Font License 1.1
1 stars 2 forks source link

Inconsistent height of Devanagari Vedic marks above U+25CC #27

Closed dscorbett closed 2 years ago

dscorbett commented 4 years ago

Font

NotoSansDevanagari-Regular.ttf

Where the font came from, and when

Site: https://github.com/googlefonts/noto-fonts/blob/46eb8fa0c46d16a87eee3e763baa3efb7423a8b4/phaseIII_only/unhinted/ttf/NotoSansDevanagari/NotoSansDevanagari-Regular.ttf Date: 2019-10-20

Font version

Version 2.000

Issue

Above U+25CC, this font lowers very high Vedic marks to be merely high, except for glyphs representing sequences of marks, which stay very high. If some are lowered, they all should be, though I don’t see why any are lowered in the first place.

Character data

◌꣰◌꣰꣯ U+25CC DOTTED CIRCLE U+A8F0 COMBINING DEVANAGARI LETTER VI U+25CC DOTTED CIRCLE U+A8F0 COMBINING DEVANAGARI LETTER VI U+A8EF COMBINING DEVANAGARI LETTER RA

Screenshot

◌꣰◌꣰꣯

JelleBosmaMT commented 4 years ago

The dotted circle may be used in front of marks to display an 'invalid' mark (mark without base) or maybe as part of some form of a character map application that allows entering marks. In both cases it seems advantageous to lower the very tall vedic marks, so that they are easier to see. Marks that combine over a valid base, may need substitution or positioning features to prevent overlaps. But marks on their own that are displayed over the dotted circle, do not require features. And marks that follow an invalid mark are of course invalid marks too, and the shaper software is supposed to insert the dotted circle. The Apple and Microsoft shapers do this. Unfortunately Harfbuzz, used by the Chrome browser only inserts the dotted circle for the first of a sequence, and then proceeds to apply features. The image below compares Edge (top) and Chrome browser output. This looks to me a typical issue for that needs to be resolved on the software side. It does not seem reasonable to expect all fonts to have elaborate context rules to insert dotted circles where the software doesn't do it.

Mark Knipsel

dscorbett commented 4 years ago

This looks to me a typical issue for that needs to be resolved on the software side.

No, it is an issue in the font itself. This bug report is not about inserting dotted circles: it is about when the input text already includes the dotted circle. U+25CC is a valid base, so USE considers <U+25CC, U+A8F0, U+A8EF> a single valid cluster.

JelleBosmaMT commented 4 years ago

The openType layout tables in font cannot distinguish between automatic and manually inserted dotted circles. The characters have been designed to be used in vedic syllables, and nothing else. What is it that you need to do that you need to use these vedic marks over dotted circles, and why would you put two of them on a dotted circle?

dscorbett commented 4 years ago

What is it that you need to do that you need to use these vedic marks over dotted circles

As you said, “a character map application that allows entering marks” might want to display these marks on dotted circles. It would also be useful for referring to these marks in running text.

why would you put two of them on a dotted circle?

Because these marks are not arbitrarily paired: they appear only in certain combinations. It is not unreasonable to treat them as units (as they were originally proposed) even though they are encoded as multiple code points.

JelleBosmaMT commented 4 years ago

If you are happy with the high position, you can try with dotted circle and ZWJ (25CC 200D) in front of the mark. That prevents the substitution with the low variant, at least in Edge and Safari. In Chrome and BabelPad a second circle is inserted. Not sure why BabelPad and Edge give different results. Let me know if this works for you.

dscorbett commented 4 years ago

Let’s say a user prefers the low position because it is easier to see. Then that workaround with ZWJ would not work.

JelleBosmaMT commented 4 years ago

I am working on a maintenance update on the Indics: adding new Unicode characters and fixing bugs. I don't think this is really a bug. But if I have time left in the project when the rest is done, I might move the lowering from the tall signs from the GSUB to the GPOS. That should give a slightly smaller file, and it is easy to shift the mark-ligatures along with the stand-alone characters.

nizarsq commented 4 years ago

Test case created, test result attached for reference to the current rendering.

Screen Shot 2020-06-05 at 7 22 48 PM
simoncozens commented 2 years ago

Yes, this appears to be fixed now.