Skip to content
This repository has been archived by the owner on Apr 7, 2024. It is now read-only.

Noto Sans Javanese 2.002 #594

Merged
merged 16 commits into from
Apr 20, 2022
Merged

Noto Sans Javanese 2.002 #594

merged 16 commits into from
Apr 20, 2022

Conversation

simoncozens
Copy link
Contributor

This fixes various Javanese issues and allows the font to be built as a variable font. As I am not very familiar with building Javanese fonts and this includes a major change to the way that shaping is done, I would like some time for it to be tested before release.

  • Rewrite feature code to support USE. Fixes googlefonts/noto-fonts#2131, fixes googlefonts/noto-fonts#1475
  • Tests for new feature code
  • Fix RSBs of bha and friends. Fixes googlefonts/noto-fonts#1412
  • Rename anchors, make font interpolable (fixes googlefonts/noto-fonts#1473)
  • Tests for googlefonts/noto-fonts#1473
  • Swap above marks before pengkal/tarung. Fixes googlefonts/noto-fonts#1474
  • Oops, fix top anchors
  • Tests for googlefonts/noto-fonts#1474
  • Bump version

@dscorbett
Copy link

The new font is better but still has problems.

It uses 'rphf' for pasangan forms, but 'rphf' is scoped to the first three glyphs, so it fails for strings like ⟨ꦏ꦳꧀ꦲ⟩, where the second consonant appears too late.
ꦏ꦳꧀ꦲ

Cakra is too eager to reorder, even when ligated, as in ⟨ꦩ꧀ꦥꦿ⟩. I’m not sure what is supposed to happen to cakra with a spacing pasangan, but probably not this.
ꦩ꧀ꦥꦿ

The fix for googlefonts/noto-fonts#1475 is incomplete. The cakra is reordered, but it never ligates. Compare ⟨ꦥ꦳ꦿ⟩ and ⟨ꦥꦿ⟩.
ꦥ꦳ꦿꦥꦿ

googlefonts/noto-fonts#1474 is fixed, strictly speaking, but other spacing marks still have the same problem, as in ⟨ꦏꦵꦀ⟩ and ⟨ꦏ꧀ꦀ⟩.
ꦏꦵꦀꦏ꧀ꦀ

The glyph om_javanese is obsolete. You may as well delete it now that a general solution exists.

@marekjez86
Copy link
Contributor

marekjez86 commented Apr 19, 2022

I found these differences (two of them look like positioning/collision issues, one I don't know). (... but maybe my old harfbuzz linked in fontdiff causes this :-()

Screen Shot 2022-04-19 at 09 52 42

Screen Shot 2022-04-19 at 09 52 25

Screen Shot 2022-04-19 at 09 52 14

The text used is from https://github.com/googlefonts/noto-source/blob/main/test/Javanese/fontdiff-javanese.html

The full PDF is here
NotoSansJavanese-Bold-fontdiff-javanese.pdf

@simoncozens
Copy link
Contributor Author

Thanks, both, this is very useful feedback!

@simoncozens
Copy link
Contributor Author

simoncozens commented Apr 20, 2022

https://github.com/googlefonts/noto-fonts/issues/1474 is fixed, strictly speaking, but other spacing marks still have the same problem, as in ⟨ꦏꦵꦀ⟩ and ⟨ꦏ꧀ꦀ⟩.

@dscorbett, I'll make it work for tolong, but ꦏ꧀ꦀ (C + pangkon + panyangga) is giving me a broken cluster in some Harfbuzz versions (but curiously not the latest ones). Unicode 14.0 says that an orthographic cluster is {C F} C .. {Z} so I am not surprised that CFZ is a broken syllable. Is this really a valid combination? If so, we'll have to do some uni25CC-deletion as well. I'm not aware of other spacing marks which need this treatment, so if there are any, please let me know.

I'm working on all the other issues you mention.

@marekjez86, the middle image is an improvement. The top and bottom ones look like problems.

@simoncozens
Copy link
Contributor Author

@marekjez86 - the positioning differences in your report are due to ufo2ft's order anchor attachment being unpredictable. They work for me; please check you are building with the latest ufo2ft.

@dscorbett
Copy link

Indeed, <consonant, pangkon, panyangga> is probably unattested. I mentioned it anyway because it is graphically, if not phonetically, plausible, and because I don’t know enough about the script to be certain it is unattested. Sometimes scripts do surprising things. The analogous sequence is attested in Grantha, which is why this pattern is allowed in versions of HarfBuzz since harfbuzz/harfbuzz#3479. This is a HarfBuzz-specific speculative extension, so feel free to ignore it for this font.

@simoncozens
Copy link
Contributor Author

I'm happy to let this be usage driven. If someone tells me that their document with C+F+Z is broken, I'll fix it at a later date.

@dscorbett
Copy link

When a non-spacing mark and a spacing mark switch places, the non-spacing mark does not combine properly with U+A9B3 JAVANESE SIGN CECAK TELU. Compare ⟨ꦏ꦳ꦴꦀ⟩ with ⟨ꦏ꦳ꦀ⟩.
ꦏ꦳ꦴꦀꦏ꦳ꦀ

@simoncozens
Copy link
Contributor Author

I seem to have also busted cakra ligatures in the process...

@simoncozens
Copy link
Contributor Author

@marekjez86 I think this is good to go but please check those two anchor attachment issues you found again.

@simoncozens simoncozens marked this pull request as ready for review April 20, 2022 18:29
@marekjez86 marekjez86 merged commit ebc82d5 into main Apr 20, 2022
@marekjez86 marekjez86 deleted the javanese-2.002 branch April 20, 2022 19:07
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants