silnrsi / font-shimenkan

Fonts for the Miao script
Other
3 stars 1 forks source link

[hmdd] Unkern asp & dot #66

Closed cheuk879 closed 4 years ago

cheuk879 commented 4 years ago

Users do not want kerning for asp or dot (ignore font style): plrd-hmdd-aspdot-nokern

But the asp & dot are all kerned in build 222: plrd-test-kern-aspdot-hmdd-222

Compare Build 194 where at least the last line was correct: plrd-test-kern-aspdot-hmdd-194

mhosken commented 4 years ago

It seems that hmdd wants its vowels flush right just like ygp in which case in the chart hmdd needs to indicate that its F positioning needs to be FR. Please check that this is what they want. I'll commit a test for this. If this is not the behaviour wanted then we need a deeper discussion.

jvgaultney commented 4 years ago

If hmdd does want vowels and asp flush right then it seems at first that we would just need to add them to flush right feature as mhosken points out. That would not change the position of the dot, though, as the dot is part of the letter itself - The cons+dot combination is an hmdd-specific variant of warted cons. So we need to move the dot AP (only used for constructing these) and reconstruct the dotted variants.

The problem is that the flush right feature change is incompatible with moving the dot to the right. I'll explain:

When the dot extends to the right of the letter (which it does for most cons), then it adds space to the letter, as in:

image

By default that would mean vowels would not tuck under the dot, as in the first pair below. We can fi that by moving the F level AP inside, under the dot, which would give the second alignment. However if you then turn on flush right positioning for all vowels it would undo that change, because flush right positions everything flush right, which would be to the right of the dot.

image

It also seems that [hmdd] doesn't want all vowels flush right, as in this example:

image

(The problem here is that the kerning is inconsistent. For some letters the vowels tuck in and for others they don't. We can't at this point make some tuck and some not for [hmdd].)

A better solution seems to be to:

I will go ahead and make these changes (and undo MH's feature change).

jvgaultney commented 4 years ago

I have now done these changes, although the results need visual testing. Aligning the vowels to appear aligned with the dot has some complexities.

jvgaultney commented 4 years ago

Seems to be aligning well now: image

cheuk879 commented 4 years ago

Thanks! This looks much better than before. It is possible to shift the V a little bit left &/or the dot a little bit right so that the two will appear more flush?

jvgaultney commented 4 years ago

We can't move the dot - it's part of the letter, not a separate positionable mark like the asp.

I could make the V in the last four combinations shown above kern inside the consonant, however that seems to be in contradiction with your first request:

Users do not want kerning for asp or dot (ignore font style):

It's also not what is shown in a sample you provided earlier:

image

Note that it is not possible with the current attachment mechanism to make the right side of the V align with the right side of the dot. If I move the F position back to the left again for those dotted consonants, all vowels will move to the left the same amount under those dotted consonants. IOW the dot and vowel would never be consistently aligned either on the right or left sides, as the vowels are not the same width. They would also not be consistent with the asp alignment.

Please confirm ASAP whether you want all F position vowels to fully kern under dotted consonants, as they will then no longer be aligned with the dot on the right or left sides.

cheuk879 commented 4 years ago

For <C, asp/dot>, indeed users do not want kerning for the asp or the dot, i.e., even when there's space in the upper right corner of C like 'L', the asp/dot should not be kerned/tucked in. However, for <asp/dot, V>, they do want V kerned under the asp/dot so that the left sides of both asp/dot & V fall on the same vertical line (see planning doc) as shown in the scan you included above. (BTW, they have never indicated a desire to have the right sides of V & asp/dot to be on the same line, so this is a non-issue for them.)

As it is, build 233 is far superior to build 222 or 194, as the left side of V is almost as far left as the left side of the dot: plrd-test-kern-cdotv-hmdd The question is whether it's technically possible to adjust still a little further, either by shifting V just a little further left (via kerning/AP) or by shifting the dot just a little further right (when composing the glyph from the dot + C) so that the left sides of both V & dot fall on the same line. In any case, I agree the "flush right" feature should be off lest it negate the kerning under the dot.

While the dot & V are almost aligned, the asp is still not so per build 233: plrd-test-kern-caspv-hmdd As seen above, the asp is still kerned into C whereas user preference is no kerning even when there's space in the upper right corner. And again, <asp, V> need to have both their left sides on the same line.

jvgaultney commented 4 years ago

As for the C+dot+V@F: I can adjust the position of V some more, although there is no way to make it numerically perfectly aligned with the dot on the left side and visually appear always aligned. It's a well known optical illusion. I will change this to be numerically rather than visually aligned and hope for the best!

jvgaultney commented 4 years ago

As for the C+asp+V@F: This will require changes to the OT code. The dot is part of the letter itself, whereas the asp is a separate floating thing.

jvgaultney commented 4 years ago

Position adjusted for C+dot+V@F. I still did not make it numerically aligned, as that really would have looked odd. However I did tweak all the V to the left a bit, so that in most cases it will appear better aligned.

I also noticed that all the W APs were badly positioned in dotted glyphs, so moved them to the same position as F.

mhosken commented 4 years ago

HMDD now follows YGP in everything hangs right. I think that we need to adjust the FR AP in the dot consonants to be the same as F, sans jiggle shift. OK, add an FR AP. We can decide if we want to move F back or not later. But F doesn't now get used in dotted consonants.

jvgaultney commented 4 years ago

That's fine, but you missed a whole lot of dotted glyphs when adding FR (such as u16F1D.dot). BTW don't forget u16F05.hmdd, u16F11.hmdd, u16F15.hmdd, u16F24.hmdd.

Please add the missing ones. You may as well also delete F on these and other .dot glyphs if we're not using that AP anymore for these glyphs.

cheuk879 commented 4 years ago

Per build 242, kerning behaviours for asp & dot are mostly fixed except for the following combos in red: plrd-test-kern-dot-err-242 V needs to move left like those in black.

jvgaultney commented 4 years ago

These should all be fixed now.