notofonts / noto-fonts

Noto fonts, except for CJK and emoji
http://fonts.google.com/noto
SIL Open Font License 1.1
2.45k stars 200 forks source link

Make opentype tables compatible with Universal Shaping Engine for scripts routed to USE #576

Closed jungshik closed 4 years ago

jungshik commented 8 years ago

Spun off from notofonts/noto-fonts#543, notofonts/balinese#22, notofonts/lepcha#3, and notofonts/tifinagh#12.

We need to make Phase 3 fonts for scripts that are routed to USE be USE-compatible.

https://www.microsoft.com/typography/OpenTypeDev/USE/intro.htm

/cc @roozbehp @tiroj @marekjez86 @behdad @TrueTyper @waksmonskiMT @BrianKraimerMT

jungshik commented 8 years ago

Scripts that go to USE (Universal Shaping Engine) are listed below. (taken from @behdad's comment : https://github.com/googlei18n/noto-fonts/issues/543#issuecomment-153506926 )

Balinese
Batak
Brahmi
Buginese
Buhid
Hanunoo
Kaithi
Kharoshthi
Lepcha
Limbu
MeeteiMayek
Rejang
Saurashtra
Sundanese
SylotiNagri
Tagalog
Tagbanwa
TaiLe
TaiViet

/cc @jamesgk

jungshik commented 8 years ago

@waksmonskiMT

jungshik commented 8 years ago

/cc @kmansourMT

xiangyexiao commented 8 years ago

We expect to get the fix by end of April. The early the better. Is it feasible?

kmansourMT commented 8 years ago

Xiangye, please clarify:

What fix will be ready by end of April?

To whom is the following question directed: Is it feasible?

From: Xiangye Xiao notifications@github.com<mailto:notifications@github.com> Reply-To: googlei18n/noto-fonts reply@reply.github.com<mailto:reply@reply.github.com> Date: Thursday, 25 February 2016 at 15:28 To: googlei18n/noto-fonts noto-fonts@noreply.github.com<mailto:noto-fonts@noreply.github.com> Cc: Kamal Mansour kamal.mansour@monotype.com<mailto:kamal.mansour@monotype.com> Subject: Re: [noto-fonts] Make opentype tables compatible with Universal Shaping Engine for scripts routed to USE (#576)

We expect to get the fix by end of April. The early the better. Is it feasible?

— Reply to this email directly or view it on GitHubhttps://github.com/googlei18n/noto-fonts/issues/576#issuecomment-189033563.

xiangyexiao commented 8 years ago

sorry for the confusion. We (Jungshik) already fixed the bugs for Phase II fonts. The timeline in my last comment is for ourselves to update Android with the new fonts.

xiangyexiao commented 8 years ago

still assign to Sue since this bug is for Phase III.

jungshik commented 8 years ago

It cannot be priority critical. This should happen as Phase III fonts are being developed.

roozbehp commented 8 years ago

You're correct Jungshik. I failed to notice that the bug is about Phase 3 fonts.

nizarsq commented 4 years ago

@marekjez86 what is the status? suggesting on how I should create test case?

behdad commented 4 years ago

@marekjez86 what is the status? suggesting on how I should create test case?

Close this as Monotype refused to do even though they contractually should have, and no one else has bandwidth to do it now. People will complain if noto fonts are broken and we go from there.

punchcutter commented 4 years ago

Most scripts were updated for phase III when USE was actually getting implemented. I only see a few now that don't have the script specific tag and only use DFLT. For those I only know the reason for Zanabazar Square as stated below. Elymaic I don't know. Tifinagh is a question for JamraPatel since they did it. Tai Tham has been in discussion for a long time about how to handle it in USE so it's not really working 100% anyway. So I think this issue should definitely be closed and new issues can be opened if there's an issue with any particular script.

ADLaM ✅ Ahom ✅ Bhaiksuki ✅ Balinese ✅ Batak ✅ Brahmi ✅ Buginese ✅ Buhid ✅ Chakma ✅ Cham ✅ Chorasmian - no font Dives Akuru - no font Dogra ✅ Duployan - no features, no script tags Egyptian Hieroglyphs - no features, no script tags Elymaic ❌ Grantha ✅ Gunjala Gondi ✅ Hanifi Rohingya ✅ Hanunoo ✅ Javanese ✅ Kaithi ✅ Kayah Li ✅ Kharoshthi ✅ Khitan Small Script - no font Khojki ✅ Khudawadi ✅ Lepcha ✅ Limbu ✅ Mahajani ✅ Makasar - no font Mandaic ✅ Manichaean ✅ Marchen ✅ Masaram Gondi ✅ Medefaidrin - no font Meitei Mayek ✅ Miao ✅ Modi ✅ Mongolian ✅ Multani - no features, no script tags Nandinagari - no font Newa ✅ N’Ko ✅ Nyiakeng Puachue Hmong ✅ Old Sogdian ✅ Pahawh Hmong ✅ Phags-pa ✅ Psalter Pahlavi ✅ Rejang ✅ Saurashtra ✅ Sharada ✅ Siddham ✅ Sinhala ✅ Sogdian ✅ Soyombo ✅ Sundanese ✅ Syloti Nagri ✅ Tagalog ✅ Tagbanwa - no features, no script tags Tai Le ✅ *Tai Tham ❌ Tai Viet ✅ Takri ✅ Tibetan ✅ Tifinagh ❌ Tirhuta ✅ Wancho ✅ Yezidi - no font Zanabazar Square ❌ because of problems with categories and USE shaping implementation. @dscorbett does the same as explained here: https://github.com/dscorbett/zanashinar#script-and-language

davelab6 commented 4 years ago

I propose we keep this issue open until all are green checks or there is a separate issue that describes what the script specific situation is and how to fix it

BrianKraimerMT commented 4 years ago

Hello David,

Kamal will respond to this shortly.

davelab6 commented 4 years ago

@behdad Noto is actively maintained, so saying no one has bandwidth isn't really fair. Perhaps that was true in the intervening past few years.

As to the accusation that Monotype didn't deliver, I have to say that their invoices were all approved and they remain in good standing with Google. Zachary has given the receipts, so I'd like to kindly suggest that you apologise.

Generally, type designer firms and folks are service providers, so if the client hasn't specified up front what their requirements are, then a positive atmosphere is required to collaborate on negotiating what is and what is not within the scope of an agreed service provision engagement. When working at the forefront of technology, it can be impossible to specify requirements up front.

USE was very fresh at that time, so I think the situation today is fine.

kmansourMT commented 4 years ago

I was about to add that USE was not in the picture at the time the Noto work began. This applies in particular to Tai Tham which still presents some ambiguities to this day, USE or not. As for Elymaic, it is an off-shoot of Aramaic script. Make it conform to USE make as little sense as doing so for Hebrew script. Tifinagh has no features that require USE since it is a simple script (comparable to Latin) that requires a fair number of combining marks.

Finally, we were never contractually required to comply with USE, but we did so anyway as it became possible to do so for fonts with Indic features.

Kamal

tiroj commented 4 years ago

As for Elymaic, it is an off-shoot of Aramaic script. Make it conform to USE make as little sense as doing so for Hebrew script. Tifinagh has no features that require USE since it is a simple script (comparable to Latin) that requires a fair number of combining marks.

Windows 10 passes Tifinagh to USE. Not sure what it does with Elymaic, but it would make some sense to pass it to the Hebrew shaping engine (as is done with Thaana on the grounds that it happens to use the same layout model despite being completely unrelated to Hebrew).

While USE provides some specific modelling of shaping for complex scripts, I think it is a mistake to assume that non-complex scripts should not be passed to USE in the absence of another explicitly identified shaping engine route. In addition to its complex script shaping models, USE provides access to OTL features generally—including standard typographic and discretionary features — in a way that is more consistent than in other shaping engines. While it is obviously up to platform developers to determine how to route specific runs after itemisation, my own inclination would be to pass any script tag that isn't already linked to a specific shaping engine via USE, as this provides the most complete and flexible support for OTL features that may occur in any font. It is, after all, called the Universal Shaping Engine.

NorbertLindenberg commented 4 years ago

Elymaic is listed in the documentation of the Universal Shaping Engine: https://docs.microsoft.com/en-us/typography/script-development/use The USE covers several other right-to-left scripts.

kmansourMT commented 4 years ago

If a script uses only common (script-independent) features like ccmp or liga, how can it be non-compliant with USE?

NorbertLindenberg commented 4 years ago

First, ccmp and liga are not script-independent: They are not documented for all shaping engines, and while HarfBuzz applies them across scripts (at least for horizontal text), Windows doesn’t.

Second, possible issues when moving from the simple shaping engine to USE:

dscorbett commented 4 years ago

There is no need to keep this issue open. The fonts for Elymaic, Tifinagh, and Zanabazar Square work fine with the default shaper. USE supports those scripts, but that doesn’t mean font designers have to use it; it’s just an option if they want to. Switching now has no benefit and could introduce subtle bugs. Noto Sans Tai Tham is broken, but moving to USE would probably make fixing it harder, since USE doesn’t really support Tai Tham.

davelab6 commented 4 years ago

There is no need to keep this issue open. The fonts for Elymaic, Tifinagh, and Zanabazar Square work fine with the default shaper. USE supports those scripts, but that doesn’t mean font designers have to use it; it’s just an option if they want to. Switching now has no benefit and could introduce subtle bugs.

Alright, sounds good. It seems like this ought to go into future detailed Noto docs (cc @twardoch)

Noto Sans Tai Tham is broken, but moving to USE would probably make fixing it harder, since USE doesn’t really support Tai Tham.

What's the status of fixing USE to properly support Tai Tham? Currently no momentum and at a dead stop? Going to be fixed this year? :)

roozbehp commented 4 years ago

What's the status of fixing USE to properly support Tai Tham? Currently no momentum and at a dead stop? Going to be fixed this year? :)

Pending action by Unicode. We last met specifically about it in late 2018 to discuss. Report here: https://www.unicode.org/L2/L2018/18332-tai-tham-ad-hoc-report.pdf

One of our key contributors, Martin Hosken, who is our key contact on the ground, has been blocked by his work on Western Cham. We are mostly waiting on him, as well for others to finish their action items.

davelab6 commented 4 years ago

Thanks roozbeh!

davelab6 commented 4 years ago

@nizarsq asked

suggesting on how I should create test case?

@dscorbett and all, do you have ideas for such test cases? :)

dscorbett commented 4 years ago

This issue is not a bug report: it’s a reminder to check that all Noto fonts that use USE do so properly. As such, it won’t have a test case like other issues, which I assume is what @nizarsq was asking about. Test cases can be created for specific incompatibilities if and when they are discovered.

marekjez86 commented 4 years ago

@punchcutter @NorbertLindenberg @davelab6 @roozbehp @dscorbett @tiroj @kmansourMT @nizarsq : I wanted to thank you all for the contribution to this issue. I'll use the table created by @punchcutter to either create individual script issues or as a reminder to check a new script (or set requirements). Closing this issue.