notofonts / devanagari

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

LA+UU combination doesn't allocate enough space in Noto Sans Devanagari and UI #2

Closed marekjez86 closed 1 year ago

marekjez86 commented 9 years ago

The LA+UU combination doesn't allocate enough space to the UU. This is visible when you try to render a string that has a punctuation immediately after the word. I'm attaching screenshots of HarfBuzz rendering the string "चालू; चालू/ चालू, (चालू) [चालू]" with the latest Noto Sans Devanagari fonts. You can see that the punctuation intersects the UU. noto-ui noto

schriftgestalt commented 9 years ago

That is a kerning problem. One would need to add contextual kerning for the string:

[all Fullforms with a stem on the right] UU slash 
[all Fullforms with a stem on the right] UU comma

if you just kern UU+fraction, the combination with ka+UU would be to wide.

ghost commented 9 years ago

I haven't seen any other Indic fonts that do this. This is a great feature to add but I'm not sure that it is a "High Priority" item.

schriftgestalt commented 9 years ago

you don’t necessarily need contextual kerning, all you need is a set of rules that do not ignore marks, then you can kern things like: UUsign + @punctuation.

That would not work. As the UUsign is a mark and the kerning should only be applied if the UU is attached to a right stem. There are other letters that position the UU more to the left (KA). Then you don't need the kerning.

JelleBosmaMT commented 9 years ago

The context rule would have to be much more complicated. There might be a reph, anusvara, candrabindu, one of the vedic signs and combinations thereof. And of course, there are other marks and mark combinations which may collide too. The spacing of the punctuation is set to be generous enough that issues of legibility should be limited to very rare combinations of marks. As the designer of the font I would love to go into this kind of details. But the design of a Devanagari font is an infinite amount of work, which I am expected to do in a very finite amount of time. There are about a million other details which I would like to improve given the time. In real world usage of Noto Sans Devanagari, the punctuation marks are usually taken from the Latin font (Android's Roboto font). So in a priority list, this is pretty close to the bottom.

JelleBosmaMT commented 9 years ago

Secondly, one has to consider in as far this kerning would solve a problem.We would exchange touching characters by extra white space. In particular: if you use the slash to separate two words, there is a choice between touching the vowel and having the slash much closer to the second word than to the first. The gap of the solution could be worse than the touch of the problem.

xiangyexiao commented 8 years ago

@JelleBosmaMT Does Phase III Deva fonts behave the same as Phase II fonts, or have improvement on the above mentioned UU+punctuation pairs?

JelleBosmaMT commented 8 years ago

Yes. This is non-issue. Given that the tail touches at near perpendicular angle, there is no problem with legibility or esthetics.

JelleBosmaMT commented 8 years ago

I do want to remind Google about the fact that it was me that decided to add space, punctuation, numerals and math to the Noto Sans Indics. It was proposed and specified that these would be taken from the Latin font. But whether that is Droid Sans, Noto Sans or Roboto, the design of these characters are not suitable for Devanagari and the other Indics (and many more scripts, that have been delivered according to specification without punctuation). I added these characters anyway, because I care. That also means that in theory I can fix issue notofonts/devanagari#2 by re-delivering without punctuation.

It is frustrating that in reality of Android, characters from Roboto are used instead. If an insignificant touch of punctuation with the Devanagari UU is marked as a high priority issue for the Android platform, the substitution of Roboto punctuation must be a extra super high priority. In 2014 I described a relatively easy method to make use of the "locl" feature to address this. If Google cared about the punctuation of the Indics half as much as I do, it would have moved heaven and earth to implement a fix.

So after I decided to add punctuation and what punctuation marks that would be, for the Devanagari I decided the spacing for punctuation should be such that some of them touch the tail of the UU by a controlled, non-intrusive amount.

xiangyexiao commented 8 years ago

This is not a Noto font issue. This needs to be improved to improve font picking algorithm on Android side. @roozbehp

xiangyexiao commented 8 years ago

I will keep it open and wait for other people to comment.

roozbehp commented 8 years ago

The bug is perpendicular to the font selection algorithm on Android. I understand @JelleBosmaMT is not happy with the current font selection algorithm in Android, but we are constantly improving that algorithm and moving towards the direction he likes. I cannot share more specific details publicly, unfortunately.

As for this specific bug, the problem seems to arise from a combination of the UU vowel intruding its box and lack of kerning with certain characters that may appear to its right. The technical solution may be either adjusting the advance of UU or kerning them. To be honest, it doesn't matter that much to us, as far as the text looks good, and in this case, it seems that it doesn't look good.

/cc @raphlinus @nona-google

JelleBosmaMT commented 8 years ago

Changing the advance of the non-spacing mark UU would mean that we introduce a critical bug as a technical solution for something that is not a problem ;-(

nizarsq commented 4 years ago

No changes noticed in allocating more space for both NotoSansDevanagari or NotoSansDevanagariUI

Screen Shot 2020-07-31 at 2 05 12 PM Screen Shot 2020-07-31 at 2 03 57 PM
simoncozens commented 2 years ago

A note about other Devanagari fonts: