ryanoasis / nerd-fonts

Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more
https://NerdFonts.com
Other
52.63k stars 3.59k forks source link

Patching Iosevka breaks some subtables #1579

Closed Finii closed 3 months ago

Finii commented 3 months ago

🗹 Requirements

🎯 Subject of the issue

Done with Patch Sets, generating font...
WARNING: Have only minimal naming information, check resulting name. Maybe specify --makegroups 0
Lookup subtable contains unused glyph POWER making the whole subtable invalid
Lookup subtable contains unused glyph POWER making the whole subtable invalid
Lookup subtable contains unused glyph POWER making the whole subtable invalid
Lookup subtable contains unused glyph POWER making the whole subtable invalid
Lookup subtable contains unused glyph HEAVY making the whole subtable invalid
Lookup subtable contains unused glyph POWER making the whole subtable invalid
Lookup subtable contains unused glyph POWER making the whole subtable invalid
Lookup subtable contains unused glyph POWER making the whole subtable invalid
Lookup subtable contains unused glyph POWER making the whole subtable invalid
Lookup subtable contains unused glyph HEAVY making the whole subtable invalid
   Iosevka Nerd Font
   \===> 'IosevkaNerdFont-Regular.ttf'

Experienced behavior:

Expected behavior:

Example symbols:

🔧 Your Setup

★ Screenshots (Optional)

Finii commented 3 months ago

image

Well, this happens just for the PfaEdit table, subtable lookup names:

image

image

As Nerd Font is not writing these, ignore the fontforge problem :grimacing:

Finii commented 3 months ago

lookup 6 data 0 :thinking:

image

Finii commented 3 months ago
$ cat config.json
[Subtables]
    ligatures: [
        "Single Substitution lookup 6 per glyph data 1",
        "Single Substitution lookup 6 per glyph data 0" ]
Finii commented 3 months ago

Checked the output and the fontforge message is wrong (or sounds wrong).

For example

When we overwrite 21E1 and thus "uni21E1.WWID" we remove the entry in table A because it is a rule for the modified glyph. But we do not remove the entry in table B, because destinations of rules can not be easily checked and removed in Fontforge Python code. When the font is finally exported Fontforge notices that the rule in table B has no valid destination anymore and removes just that one rule (and not the whole subtable).

All good.