Glyphs had components with scaling or rotation
rbanffy opened this issue · 0 comments
rbanffy commented
com.google.fonts/check/transformed_components
Ensure component transforms do not perform scaling or rotation.
with gfonts_files/3270/3270-Regular.ttf
Rationale:
Some families have glyphs which have been constructed by using transformed
components e.g the 'u' being constructed from a flipped 'n'.
From a designers point of view, this sounds like a win (less work).
However, such approaches can lead to rasterization issues, such as having
the 'u' not sitting on the baseline at certain sizes after running the
font through ttfautohint.
As of July 2019, Marc Foley observed that ttfautohint assigns cvt values
to transformed glyphs as if they are not transformed and the result is
they render very badly, and that vttLib does not support flipped
components.
When building the font with fontmake, this problem can be fixed by using
the "Decompose Transformed Components" filter.
FAIL The following glyphs had components with scaling or
rotation:
• greater (component less)
• backslash (component slash)
• uni02BB (component comma)
• uni02C3 (component uni02C2)
• uni02C4 (component uni02C2)
• uni02C5 (component uni02C2)
• caron (component asciicircum)
• uni02E0 (component gamma)
• uni02E1 (component l)
• uni02E2 (component s)
• uni02E3 (component x)
• uni02EC (component asciicircum)
• uni032F (component breve)
• uni0339 (component uni031C)
• uni033A (component uni032A)
• uni033C (component uni032B)
• NameMe.2166 (component NameMe.2199)
• NameMe.2168 (component asterisk)
• uni0361 (component NameMe.2172)
• uni0363 (component a)
• uni0364 (component e)
• uni0366 (component o)
• uni0367 (component u)
• uni0368 (component c)
• uni036B (component m)
• uni036C (component r)
• uni036E (component u)
• uni036F (component x)
• uni037B (component c)
• uni037D (component c)
• epsilontonos (component acute)
• etatonos (component acute)
• iotatonos (component acute)
• uni03FD (component C)
• uni03FF (component C)
• afii10052 (component acute)
• afii10053 (component afii10047)
• afii10100 (component acute)
• afii10101 (component afii10095)
• afii10109 (component acute)
• uni04D8 (component NameMe.1783)
• afii10846 (component NameMe.1579)
• uni169C (component uni169B)
• uni2127 (component uni2126)
• uni214B (component ampersand)
• NameMe.863 (component NameMe.864)
• arrowdblup (component arrowdblleft)
• arrowdbldown (component arrowdblup)
• uni21E5 (component uni21E4)
• universal (component A)
• existential (component E)
• gradient (component uni2206)
• element (component afii10047)
• uni220D (component afii10101)
• uni2210 (component product)
• uni2213 (component plusminus)
• uni226B (component less)
• uni226B (component less)
• circlemultiply (component NameMe.2198)
• uni231A (component NameMe.955)
• uni2326 (component uni232B)
• uni2351 (component apltack)
• uni2351 (component underbar)
• uni2361 (component apltack)
• uni25B6 (component uni25B4)
• uni276E (component uni276F)
• uni2B07 (component uni2B06)
• apl_upperright (component apl_lowerleft)
• NameMe.1114234 (component NameMe.721)
• downshoe (component leftshoe)
• NameMe.2206 (component breve)
[code: transformed-components]
Result: FAIL