googlefonts / science-gothic

Science Gothic, a libre variable font
Other
142 stars 4 forks source link

Legacy spacing accents should not have GDEF mark classification #321

Closed tphinney closed 2 months ago

tphinney commented 7 months ago

Amusingly, this error generates three distinct Fontbakery errors!

Check that legacy accents aren't used in composite glyphs. (derived from com.google.fonts/check/legacy_accents) Check ID: com.google.fonts/check/legacy_accents Legacy accents should not be used in accented glyphs. The use of legacy accents in accented glyphs breaks the mark to mark combining feature that allows a font to stack diacritics over one glyph. Use combining marks instead as a component in composite glyphs.

Legacy accents should not have anchors and should have non-zero width. They are often used independently of a letter, either as a placeholder for an expected combined mark+letter combination in MacOS, or separately. For instance, U+00B4 (ACUTE ACCENT) is often mistakenly used as an apostrophe, U+0060 (GRAVE ACCENT) is used in Markdown to notify code blocks, and ^ is used as an exponential operator in maths.

🔥 ScienceGothic[YOPQ,slnt,wdth,wght].ttf 🔥 FAIL Legacy accent "acute" is defined in GDEF as a mark (class 3). [code: legacy-accents-gdef]

🔥 FAIL Legacy accent "grave" is defined in GDEF as a mark (class 3). [code: legacy-accents-gdef]

🔥 FAIL Legacy accent "circumflex" is defined in GDEF as a mark (class 3). [code: legacy-accents-gdef]

🔥 FAIL Legacy accent "macron" is defined in GDEF as a mark (class 3). [code: legacy-accents-gdef]

🔥 FAIL Legacy accent "uni02C7" is defined in GDEF as a mark (class 3). [code: legacy-accents-gdef]

🔥 FAIL Legacy accent "hungarumlaut" is defined in GDEF as a mark (class 3). [code: legacy-accents-gdef]

🔥 FAIL Legacy accent "tilde" is defined in GDEF as a mark (class 3). [code: legacy-accents-gdef]

Check glyphs in mark glyph class are non-spacing. Check ID: com.google.fonts/check/gdef_spacing_marks Glyphs in the GDEF mark glyph class should be non-spacing.

Spacing glyphs in the GDEF mark glyph class may have incorrect anchor positioning that was only intended for building composite glyphs during design.

⚠️ ScienceGothic[YOPQ,slnt,wdth,wght].ttf ⚠️ WARN The following spacing glyphs may be in the GDEF mark glyph class by mistake: acute (U+00B4), circumflex (U+02C6), grave (U+0060), hungarumlaut (U+02DD), ijdot (unencoded), macron (U+00AF), tilde (U+02DC), underscore (U+005F) and uni02C7 (U+02C7) [code: spacing-mark-glyphs]

Check GDEF mark glyph class doesn't have characters that are not marks. Check ID: com.google.fonts/check/gdef_non_mark_chars Glyphs in the GDEF mark glyph class become non-spacing and may be repositioned if they have mark anchors.

Only combining mark glyphs should be in that class. Any non-mark glyph must not be in that class, in particular spacing glyphs.

⚠️ ScienceGothic[YOPQ,slnt,wdth,wght].ttf ⚠️ WARN The following non-mark characters should not be in the GDEF mark glyph class: U+005F, U+0060, U+00AF, U+00B4, U+02C6, U+02C7, U+02DC and U+02DD [code: non-mark-chars]

kateliev commented 2 months ago

Full list of glyphs that should not be in OT Mark class as reported by FontBakery: /acute/breve/cedilla/circumflex/dieresis/dotaccent/grave/hungarumlaut/ijdot/macron/ogonek/ring/tilde/underscore/uni02C7

List of recipes that include those glyphs: acute:

breve:

circumflex:

grave:

ijdot:

ogonek:

acute

ring