Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Check glyphs are not constructed from transformed components #2011

Closed
m4rc1e opened this issue Aug 13, 2018 · 18 comments
Closed

Check glyphs are not constructed from transformed components #2011

m4rc1e opened this issue Aug 13, 2018 · 18 comments
Assignees
Labels
New check proposal We expect new check proposals to include a detailed rationale description and a suggested check-id P0 Urgent
Milestone

Comments

@m4rc1e
Copy link
Collaborator

m4rc1e commented Aug 13, 2018

Some families have glyphs which have been constructed by using transformed components e.g in Comfortaa the 'u' is constructed from a flipped 'n'.

screen shot 2018-08-13 at 16 06 14

From a designers point of view, this sounds like a win (less work). However, such approaches can lead to rasterisation issues. In the above example, since the 'u' is just a flipped 'n', we cannot assign cvts to it. When I run the font through ttfautohint, the 'u' doesn't sit on the baseline at certain sizes.

@felipesanches
Copy link
Collaborator

I want to work on this. @m4rc1e, can you point me to the commit in which the trick is used? (I presume you already fixed that on more recent commits)

@felipesanches felipesanches modified the milestones: 0.6.8, 0.6.9, 0.6.11 Jan 28, 2019
@felipesanches felipesanches modified the milestones: 0.6.11, 0.6.12 Feb 19, 2019
@felipesanches felipesanches modified the milestones: 0.6.12, 0.6.13, 0.7.1 Mar 12, 2019
@felipesanches felipesanches modified the milestones: 0.7.1, 0.7.2 Apr 2, 2019
@felipesanches felipesanches modified the milestones: 0.7.2, 0.7.3 Apr 9, 2019
@felipesanches felipesanches modified the milestones: 0.7.3, 0.7.4 Apr 19, 2019
@felipesanches
Copy link
Collaborator

@m4rc1e is this meant to be a general ban on component transforms? Or is this specific to hacks like this one?

I have myself used component transforms in Beth Ellen in order to not include 2 copies of the outlines of the glyphs that make-up some ligatures.

I can perhaps detect only rotate transforms and emit a WARN so that the user is notified about the potential raster issues. In this cases should we suggest the designers prioritize rasterization-safety over reduction of file-sizes?

@kontur
Copy link
Contributor

kontur commented Feb 20, 2020

@m4rc1e Thanks for the context 👍

@felipesanches felipesanches added the New check proposal We expect new check proposals to include a detailed rationale description and a suggested check-id label Mar 6, 2020
@felipesanches felipesanches modified the milestones: 0.8.upcoming, 0.7.38 Jun 1, 2021
@felipesanches
Copy link
Collaborator

Today @vv-monsalve and @RosaWagner suggested Priority Level: 8 (1=lowest, 10=highest)

@felipesanches felipesanches modified the milestones: 0.7.38, 0.7.39 Jun 23, 2021
@felipesanches felipesanches modified the milestones: 0.7.39, 0.8.0 Jul 14, 2021
@felipesanches
Copy link
Collaborator

The rationale text for this check should mention this:

When building the font with fontmake, this problem can be fixed by using the "Decompose Transformed Components" filter.

@felipesanches felipesanches modified the milestones: 0.8.0, 0.8.1 Jul 21, 2021
@felipesanches felipesanches modified the milestones: 0.8.1, 0.8.2 Aug 12, 2021
felipesanches pushed a commit that referenced this issue Aug 17, 2021
"Ensure component transforms do not perform scaling or rotation (which causes hinting and rasterization issues)."
Added to the Google Fonts profile.
(issue #2011)
@simoncozens
Copy link
Collaborator

For anyone (like me) getting the error and not knowing precisely how to fix it with fontmake, you add this to the command line: --filter DecomposeTransformedComponentsFilter.

@simoncozens
Copy link
Collaborator

@felipesanches What do you think about moving this check to universal? It is not strictly a GF-related check as it causes problems in various rendering environments.

@chrissimpkins
Copy link
Member

What is the rationale for this fail if a font is not hinted with ttfa? It looks like this landed in universal and we are now failing on unhinted TT font builds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
New check proposal We expect new check proposals to include a detailed rationale description and a suggested check-id P0 Urgent
Projects
None yet
Development

No branches or pull requests

7 participants