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

New FB reported Fail: nested components #11

Closed
vv-monsalve opened this issue Jan 12, 2021 · 6 comments
Closed

New FB reported Fail: nested components #11

vv-monsalve opened this issue Jan 12, 2021 · 6 comments

Comments

@vv-monsalve
Copy link
Collaborator

This Fail was reported after performing new 0.7.34 FB version tests on latest font files in the repo, at commit 49b9656

🔥 FAIL: Check glyphs do not have components which are themselves components.
--- Rationale ---

There have been bugs rendering variable fonts with nested components.
Additionally, some static fonts with nested components have been reported to
have rendering and printing issues.

For more info, see:
* https://github.com/googlefonts/fontbakery/issues/2961
* https://github.com/arrowtype/recursive/issues/412


  • 🔥 FAIL The following glyphs have components which themselves are component glyphs:
    • Aacute
    • Abreve
    • Acircumflex
    • Adieresis
    • uni1EA0
    • Agrave
    • Amacron
    • Aogonek
    • Aring
    • Aringacute and 330 more. [code: found-nested-components]
@arturschmal
Copy link
Member

The solution is to decompose the nested components?

@vv-monsalve
Copy link
Collaborator Author

Yes, it would be the case. Component referring to another component are not exported correctly to the ttf variable format. They take back the coordinates of the original glyph. E.g. Issue #2961

Once you decompose them, please ensure they don't end up fractional coordinates also.

These verifications are related to our Outline Quality Checklist.
In the new FB reports are also some Warns regarding this. Let me know if you would be willing to review them as part of this quick update process.

@arturschmal
Copy link
Member

arturschmal commented Jan 13, 2021

I have decomposed mark characters (such as .case and vietnamese diacritics) that were build as components and built new fonts but the report of FB test says there's still a lot of nested components left but it doesnt give the full list of characters. Is there a way to have FB print the full list of characters with nested components in them?

You can see the report in the the branch kufam-fixes in the sources folder.
🔥 FAIL
The following glyphs have components which themselves are component glyphs:

  • uni01C6.sc
  • uni01C4
  • uni01C5
  • uni01C6
  • onequarter
  • onequarter
  • onehalf
  • onehalf
  • threequarters
  • threequarters and 276 more. [code: found-nested-components]

The fontfile Kufam-Regular.ttf gives an error on almost every test with this ERROR message:

💥 ../Fonts/TTF/Kufam-Regular.ttf
💥 ERROR
The check FontBakeryCheck:com.google.fonts/check/all_glyphs_have_codepoints had an error: FailedConditionError: The condition FontBakeryCondition:ttFont had an error: TTLibError: Not a TrueType or OpenType font (not enough data)

@vv-monsalve
Copy link
Collaborator Author

vv-monsalve commented Jan 13, 2021

Is there a way to have FB print the full list of characters with nested components in them?

I uploaded to my QA-Kufam branch a list of nested or transformed components made with one local script in progress.

@arturschmal
Copy link
Member

The decomposing of nested components has quite an impact on the benefits of using components during the editing stage. It would mean to rebuild quite some characters if the base shape is changed. Would it be better to address this in the build script as post-processing?

Another question is which component should be decomposed? onefifth is build from one.numr and five.numr as components, which in turn are components of oneinferior and fiveinferior. Should onefifth be decomposed in it's entirety or only the .numr glyphs? I would say the latter but maybe I'm wrong.

arturschmal added a commit that referenced this issue Jan 18, 2021
…d-components

Attempt to fix Issue #11 Nested components
@arturschmal
Copy link
Member

I'm opening this issue again because of this result.

@vv-monsalve Are there other options for un-nesting nested components without touching the source files?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants