From skef at skef.org Fri Nov 1 11:59:26 2024 From: skef at skef.org (Skef Iterum) Date: Fri, 1 Nov 2024 03:59:26 -0700 Subject: [MPEG-OTSPEC] CFF2 errata In-Reply-To: References: Message-ID: Adobe has discussed these proposals internally and come to some short-term conclusions: * The vsindex clarifications are strictly editorial and would be valuable. A draft of a proposal (/as /a proposal rather than the more recent comments format) is attached. * The change to the treatment of the VariationStore length field is not /strictly/ editorial but is valuable and has a low change of causing issues, so it is worth discussing. A proposal for that is also attached. * We appreciate the issue with the FontMatrix operator and agree it might make sense to deprecate it. However, we will need more time internally to discuss this and dig up the history of why it was retained. In the mean time there is vanishingly small harm in adding the operator (when it is required) so we don't feel there is any hurry with this. * The proposal to allow multiple vsindex operators in a CharString is a very significant change that will need further discussion both within Adobe and probably outside of it. It will probably require bumping the CFF2 major version number (to 3, alas). We will need to consider whether to allow the change in the PrivateDict as well, and what that means for fallback (what the first proposal clarifies). All of this means that this is not the time to be discussing that change. Perhaps we can discuss the two editorial(esque) changes at our next meeting. Thanks, Skef Iterum Adobe, Inc. On 10/22/24 3:17 PM, Behdad Esfahbod via mpeg-otspec wrote: > Hi everyone, > > CFF2 has a file size advantage over TrueType-flavored variable fonts, > specially if one doesn't care about hinting (Android, Apple platforms, > etc) but does care about (uncompressed) size. > > CFF2 also alleviates some other limitations of variable-fonts built > against the gvar table. Unfortunately, it imposes its own limitations. > These are among the issues I'm going to raise. > > Please see: > > https://github.com/harfbuzz/boring-expansion-spec/issues/155 > > for details of the changes I am proposing. Ideally, Adobe folks choose > to turn these ideas into proposals and push it through the OFF > standardization / OpenType integration process. Failing that, we might > want to go ahead and do it at Google > > Thanks, > > behdad > http://behdad.org/ > > _______________________________________________ > mpeg-otspec mailing list > mpeg-otspec at lists.aau.at > https://lists.aau.at/mailman/listinfo/mpeg-otspec -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: vsindex.pdf Type: application/pdf Size: 21997 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: vslength.pdf Type: application/pdf Size: 23490 bytes Desc: not available URL: From behdad at behdad.org Fri Nov 1 18:03:18 2024 From: behdad at behdad.org (Behdad Esfahbod) Date: Fri, 1 Nov 2024 10:03:18 -0700 Subject: [MPEG-OTSPEC] CFF2 errata In-Reply-To: References: Message-ID: Hi Skef, Thanks for the prompt reply. The two proposals look good to me. One comment below: On Fri, Nov 1, 2024 at 3:59?AM Skef Iterum via mpeg-otspec < mpeg-otspec at lists.aau.at> wrote: > > - The proposal to allow multiple vsindex operators in a CharString is > a very significant change that will need further discussion both within > Adobe and probably outside of it. It will probably require bumping the CFF2 > major version number (to 3, alas). > > Not the minor version? What things would trigger a minor-version bump? > > - We will need to consider whether to allow the change in the > PrivateDict as well, and what that means for fallback (what the first > proposal clarifies). All of this means that this is not the time to be > discussing that change. > > I think multiple vsindex'es are already permitted in PrivateDict. At least, there's no text saying otherwise. The relevant text in the spec is: "The vsindex operator may be used only once in a CharString and must precede the first use of the blend operator." Thanks, behdad > > > Perhaps we can discuss the two editorial(esque) changes at our next > meeting. > > Thanks, > Skef Iterum > Adobe, Inc. > > On 10/22/24 3:17 PM, Behdad Esfahbod via mpeg-otspec wrote: > > Hi everyone, > > CFF2 has a file size advantage over TrueType-flavored variable fonts, > specially if one doesn't care about hinting (Android, Apple platforms, etc) > but does care about (uncompressed) size. > > CFF2 also alleviates some other limitations of variable-fonts built > against the gvar table. Unfortunately, it imposes its own limitations. > These are among the issues I'm going to raise. > > Please see: > > https://github.com/harfbuzz/boring-expansion-spec/issues/155 > > for details of the changes I am proposing. Ideally, Adobe folks choose to > turn these ideas into proposals and push it through the OFF standardization > / OpenType integration process. Failing that, we might want to go ahead and > do it at Google > > Thanks, > > behdad > http://behdad.org/ > > _______________________________________________ > mpeg-otspec mailing listmpeg-otspec at lists.aau.athttps://lists.aau.at/mailman/listinfo/mpeg-otspec > > _______________________________________________ > mpeg-otspec mailing list > mpeg-otspec at lists.aau.at > https://lists.aau.at/mailman/listinfo/mpeg-otspec > -------------- next part -------------- An HTML attachment was scrubbed... URL: From htl10 at users.sourceforge.net Sat Nov 2 00:39:38 2024 From: htl10 at users.sourceforge.net (Hin-Tak Leung) Date: Fri, 1 Nov 2024 23:39:38 +0000 (UTC) Subject: [MPEG-OTSPEC] Apple's use of hinting instructions (Re: CFF2 errata) In-Reply-To: References: Message-ID: <1909403298.14324514.1730504378431@mail.yahoo.com> Behdad's little comment reminds me of a small investigation I had recently. Apple's Font Tools for Xcode 16 was released September 17, 2024 , about 6 week ago. It looks like that its libFontValidation.dylib , which is the font-checking backend of its command-line ftxvalidator tool and FontBook GUI font checking functionality, still cares about at least 1/4 of the hinting instruction errors/warnings that the last of Microsoft's Font Validator cares about. Apple folks please feel free to confirm/deny or otherwise comment on this. It is possibly quite difficult to see in practice, because truetype hinting is often done programmatically with ttfautohint / visual truetype these days. These tools don't let you create/insert intentionally flawed hinting instructions. I believe that, if you have a collection of intentionally flawedly hinted fonts triggering every one of MS FontVal's hinting instruction errors/warnings, Apple's Font Tools / FontBook checking would similarly complain about at least 1/4 of this hypothetical 'intentionally broken" font collection. On 10/22/24 3:17 PM, Behdad Esfahbod via mpeg-otspec wrote: Hi everyone, CFF2 has a file size advantage over TrueType-flavored variable fonts, specially if one doesn't care about hinting (Android, Apple platforms, etc) but does care about (uncompressed) size. ... -------------- next part -------------- An HTML attachment was scrubbed... URL: From vladimir.levantovsky at gmail.com Sat Nov 2 02:50:18 2024 From: vladimir.levantovsky at gmail.com (Vladimir Levantovsky) Date: Fri, 1 Nov 2024 21:50:18 -0400 Subject: [MPEG-OTSPEC] Tentative schedule for Font Activity Break-out Group session next week Message-ID: Dear all, This is just a heads up that we will have a Zoom break-out group session scheduled next week during the SC29/WG3 meeting to review and discuss CD ballot comments. The tentative schedule for this BoG session will be on Tuesday, Nov. 5 at 15:00-17:00 UTC (7 am US Pacific / 10 am US Eastern / 16:00 CET / midnight in Japan). The meeting will be open to all registered WG delegates and I will set it up as soon as I get the updated WG Zoom password information. Stay tuned for further updates in the WG Calendar. Thank you, Vladimir -------------- next part -------------- An HTML attachment was scrubbed... URL: From skef at skef.org Sat Nov 2 03:09:13 2024 From: skef at skef.org (Skef Iterum) Date: Fri, 1 Nov 2024 19:09:13 -0700 Subject: [MPEG-OTSPEC] CFF2 errata In-Reply-To: References: Message-ID: On 11/1/24 10:03 AM, Behdad Esfahbod wrote: > Hi Skef, > > Thanks for the prompt reply. The two proposals look good to me. One > comment below: > > On Fri, Nov 1, 2024 at 3:59?AM Skef Iterum via mpeg-otspec > wrote: > > * The proposal to allow multiple vsindex operators in a > CharString is a very significant change that will need further > discussion both within Adobe and probably outside of it. It > will probably require bumping the CFF2 major version number > (to 3, alas). > > Not the minor version? What things would trigger a minor-version bump? It's a good question, and probably something we should talk about when the time comes. I think, in general, minor version bumps at the top level make the most sense when there is fine-grained versioning available lower down, but the operator-based approach that CFF has always taken makes that tricky. I was originally thinking of a minor version bump for this sort of thing, but if there is no opportunity to version the individual CharStrings, what would the minor bump accomplish? There's no systematic way for an existing implementation to skip over the new semantic. > * We will need to consider whether to allow the change in the > PrivateDict as well, and what that means for fallback (what > the first proposal clarifies). All of this means that this is > not the time to be discussing that change. > > I think multiple vsindex'es?are already permitted in PrivateDict. At > least, there's no text saying otherwise. The relevant text in the spec is: > > "The vsindex operator may be used only once in a CharString and must > precede the first use of the blend operator." > I suspect many if not all existing implementations would break if you tried it in a PrivateDICT, and it's just something the authors didn't imagine. There are a lot of operators that can only be used once to reasonable effect that don't make that explicit. Note that if multiple operators were allowed, you'd need some language to sort out which one applied to the CharStrings (e.g. the first one or the last one). The language that talks about that relationship is generally singular. Skef > Thanks, > behdad > > Perhaps we can discuss the two editorial(esque) changes at our > next meeting. > > Thanks, > > Skef Iterum > Adobe, Inc. > > On 10/22/24 3:17 PM, Behdad Esfahbod via mpeg-otspec wrote: >> Hi everyone, >> >> CFF2 has a file size advantage over TrueType-flavored variable >> fonts, specially if one doesn't care about hinting (Android, >> Apple platforms, etc) but does care about (uncompressed) size. >> >> CFF2 also alleviates some other limitations of variable-fonts >> built against the gvar table. Unfortunately, it imposes its own >> limitations. These are among the issues I'm going to raise. >> >> Please see: >> >> https://github.com/harfbuzz/boring-expansion-spec/issues/155 >> >> for details of the changes I am proposing. Ideally, Adobe folks >> choose to turn these ideas into proposals and push it through the >> OFF standardization / OpenType integration process. Failing that, >> we might want to go ahead and do it at Google >> >> Thanks, >> >> behdad >> http://behdad.org/ >> >> _______________________________________________ >> mpeg-otspec mailing list >> mpeg-otspec at lists.aau.at >> https://lists.aau.at/mailman/listinfo/mpeg-otspec > _______________________________________________ > mpeg-otspec mailing list > mpeg-otspec at lists.aau.at > https://lists.aau.at/mailman/listinfo/mpeg-otspec > -------------- next part -------------- An HTML attachment was scrubbed... URL: From behdad at behdad.org Sat Nov 2 22:11:11 2024 From: behdad at behdad.org (Behdad Esfahbod) Date: Sat, 2 Nov 2024 14:11:11 -0700 Subject: [MPEG-OTSPEC] CFF2 errata In-Reply-To: References: Message-ID: On Fri, Nov 1, 2024 at 7:09?PM Skef Iterum via mpeg-otspec < mpeg-otspec at lists.aau.at> wrote: > On 11/1/24 10:03 AM, Behdad Esfahbod wrote: > > >> - We will need to consider whether to allow the change in the >> PrivateDict as well, and what that means for fallback (what the first >> proposal clarifies). All of this means that this is not the time to be >> discussing that change. >> >> I think multiple vsindex'es are already permitted in PrivateDict. At > least, there's no text saying otherwise. The relevant text in the spec is: > > "The vsindex operator may be used only once in a CharString and must > precede the first use of the blend operator." > > I suspect many if not all existing implementations would break if you > tried it > in a PrivateDICT, and it's just something the authors didn't imagine. > There are > a lot of operators that can only be used once to reasonable effect that > don't > make that explicit. > I won't jump to that conclusion fast. I brought up this issue back in 2018 or 2019 with then Adobe folks at a meeting I had with them at Adobe. Read Roberts and Dave Arnolds were present, and I remember when I brought this issue up, Dave said it only applies to CharStrings, and multiple vsindex are allowed in Private DICT. That said, I just checked the HarfBuzz code written by Michiharu Ariza, and for PrivateDict it allows multiple vsindex'es but only processes the first one. Note that if multiple operators were allowed, you'd need some language to > sort out which one applied to the CharStrings (e.g. the first one or the > last > one). The language that talks about that relationship is generally > singular. > I would think the last one matters. behdad > Skef > > Thanks, > behdad > > >> >> >> Perhaps we can discuss the two editorial(esque) changes at our next >> meeting. >> >> Thanks, >> Skef Iterum >> Adobe, Inc. >> >> On 10/22/24 3:17 PM, Behdad Esfahbod via mpeg-otspec wrote: >> >> Hi everyone, >> >> CFF2 has a file size advantage over TrueType-flavored variable fonts, >> specially if one doesn't care about hinting (Android, Apple platforms, etc) >> but does care about (uncompressed) size. >> >> CFF2 also alleviates some other limitations of variable-fonts built >> against the gvar table. Unfortunately, it imposes its own limitations. >> These are among the issues I'm going to raise. >> >> Please see: >> >> https://github.com/harfbuzz/boring-expansion-spec/issues/155 >> >> for details of the changes I am proposing. Ideally, Adobe folks choose to >> turn these ideas into proposals and push it through the OFF standardization >> / OpenType integration process. Failing that, we might want to go ahead and >> do it at Google >> >> Thanks, >> >> behdad >> http://behdad.org/ >> >> _______________________________________________ >> mpeg-otspec mailing listmpeg-otspec at lists.aau.athttps://lists.aau.at/mailman/listinfo/mpeg-otspec >> >> _______________________________________________ >> mpeg-otspec mailing list >> mpeg-otspec at lists.aau.at >> https://lists.aau.at/mailman/listinfo/mpeg-otspec >> > _______________________________________________ > mpeg-otspec mailing list > mpeg-otspec at lists.aau.at > https://lists.aau.at/mailman/listinfo/mpeg-otspec > -------------- next part -------------- An HTML attachment was scrubbed... URL: