googlefonts / glyphsets

Apache License 2.0
78 stars 18 forks source link

Basic Latin: Significance of NULL and CR? #14

Open madig opened 6 years ago

madig commented 6 years ago

Why are these required? And what properties (contents, spacing, ...) should they have?

arrowtype commented 2 years ago

Should these / can these be removed? It seems to be the consensus opinion...

https://github.com/googlefonts/glyphsets/issues/21

anthrotype commented 2 years ago

they are not required, they are legacy TrueType recommendations and serve no purpose.

The "First Four Glyphs" section of the OT spec was removed since OT 1.8 (2016) (see changelog)

bobh0303 commented 3 months ago

IMO, yes they should be removed. Currently, if CR (aka nonmarkingreturn) and/or NULL (aka .null) are included then one of two things happens:

  1. If the are unencoded, then fontbakery's unreachable_glyphs check complains about them.
  2. If the are encoded, then fontbakery doesn't complain but the OS2.usFirstCharIndex will have to be set below 0x0020 which (a) goes against the OpenType recommendations and (b) has been known to cause problems — at least in the past — with some software.

Can we just do this? If we are concerned about risk of some latent bug, then we should change the unreachable_glyphs check so it doesn't complain.

bobh0303 commented 3 months ago

According to https://github.com/fonttools/fontbakery/issues/938#issuecomment-597593292 and https://github.com/MicrosoftDocs/typography-issues/issues/346#issuecomment-688531945 there is some relatively recent software that expects glyph 1 to be empty (and presumably width-less), though the most recent such are only in COLR fonts.

Thus I change my opinion:

I intentionally did not say that NULL/.null may not be in non-COLR fonts — but others may want to challenge that idea.

yanone commented 3 months ago

Since you're discussing Fontbakery checks, I think it's a good idea to move the conversation over there, as it would also have more eyes look over it, and then have the tooling such as glyphsets follow whichever outcome is accepted there. Fontbakery is kind of the central source of truth.