googlefonts / roboto-classic

Development of a Roboto Variable font
SIL Open Font License 1.1
150 stars 15 forks source link

Missing cmap entries for superscript, subscript digits #97

Closed davelab6 closed 4 months ago

davelab6 commented 2 years ago

B/213345773 was reported internally that Roboto is Missing cmap entries for superscript, subscript digits

kpozin commented 2 years ago

The subs and sups table entries are also missing for these glyphs; they're only present in numr and dnom.

davelab6 commented 1 year ago

Thanks @kpozin :)

Full report

""" The equation shows as

2.0 × 10¹▯

where ▯ should be an 8 superscript character (⁸).

The exponent characters are missing, so we see tofu characters instead.

Roboto includes glyphs for U+2070 SUPERSCRIPT ZERO, U+2075 SUPERSCRIPT FIVE ... U+2079 SUPERSCRIPT NINE. (It does have superscript 1, 2, 3, and 4, though.)

Characters U+2070, U+2071, U+2075–U+2079, U+2080–U+2089 are missing cmap entries for most of the subscript and superscript digit code points.

1

Roboto does, however, have numr and dnom lookup tables that point to the required glyphs:

2

So the required glyphs exist in the font file, but they are only accessible through these lookup table, not directly by code point.

Please add cmap entries for these glyphs, and also add them to the subs and sups lookups.

m4rc1e commented 1 year ago

@kpozin apologies for the delay. I updated the dependencies in #100 and it seems the fonts now have the correct unicodes for the superscript and subscript glyphs. Please could you test the fonts in the following link: https://github.com/googlefonts/roboto-classic/suites/7273375516/artifacts/292791016

If you're happy, I'll cut a release asap.

davelab6 commented 1 year ago

I've requested a review from @kpozin 's team :)

kpozin commented 1 year ago

The cmap changes look great, thanks!

It would be helpful to add subs and sups tables, too, but that's less urgent.

kpozin commented 1 year ago

Sorry, that's subs and sups.

davelab6 commented 1 year ago

@kpozin said,

I apologize; I must have verified only the GitHub release files rather than the versions that got committed to the repo. The latest files at https://github.com/google/fonts/tree/main/apache/roboto (including the variable fonts) are in fact missing the cmap entries.

It appears the web build doesn't currently include cmap entries for U+2070–U+2089, and that's likely the version that is checked into the repo. The other builds (android, chromeos, hinted, unhinted) all have them.

@m4rc1e i guess this is a bug in the build script?

m4rc1e commented 1 year ago

Ok, I've just seen that these glyphs are getting subsetted out of the webfonts. If I add them to the web subset list, https://github.com/googlefonts/roboto-classic/blob/master/scripts/web_subset.txt and regen, they're present. This is trivial to fix but it'll trigger the mac operations issue again.

@kpozin do you specifically need the webfonts? It seems that many teams are using the webfonts without realising that the other sibling families may be better for them.

kpozin commented 1 year ago

We've been using the webfonts because the other variants are nearly three times as large, and some of our target devices are very space-constrained.

I'm going to try to use a local build for now, until the operations issue can be fixed.

davelab6 commented 4 months ago

@m4rc1e what is the status of this?

m4rc1e commented 4 months ago

AFAIK, it's fixed. The family is currently in the to_production list so it should be landing soonish.

m4rc1e commented 4 months ago

I'll close this issue once it's hosted on Google Fonts.

davelab6 commented 4 months ago

That's OK, we have an issue in the main repo to track updating in the API; this repo issue tracker is scoped to the files in the repo, so, closing :)