[MPEG-OTSPEC] CFF2 errata

Skef Iterum skef at skef.org
Sat Nov 2 03:09:13 CET 2024


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 
> <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?
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: <https://lists.aau.at/pipermail/mpeg-otspec/attachments/20241101/abf4e223/attachment-0001.htm>


More information about the mpeg-otspec mailing list