lukas-w/font-logos

Lots of self-intersecting paths

Finii opened this issue · 8 comments

Many glyphs are incorrectly formulated, will need to check:

$ fontforge bin/scripts/name_parser/check_glyphs src/glyphs/font-logos.ttf 2>/dev/null
Examining 1 font files
 F300 00000005      intersect            Alpine
 F303 00000225      intersect            Arch Linux
 F306 00000025      intersect            Debian
 F308 00000025      intersect            Docker
 F30E 00000205      intersect            Linux Mint
 F310 00000025      intersect            Mageia
 F311 00000025      intersect            Mandriva
 F313 00000005      intersect            NixOS
 F314 00000025      intersect            OpenSUSE
 F315 00000225      intersect            Raspberry pi
 F316 00000225      intersect            Red Hat
 F31A 00000025      intersect            Tux
 F31C 00000225      intersect            Ubuntu (inverse)
 F323 00000025      intersect            Ferris
 F325 00000225      intersect            GNU Guix
 F326 00000025      intersect            illumos
 F327 00000225      intersect            Kali Linux
 F328 000000A5      intersect            OpenBSD
 F32C 00000005      intersect            Snappy
 F337 00000225      intersect            Garuda Linux
 F349 00000225      intersect            Loc-OS
 F34A 00000025      intersect            XeroLinux
 F34E 00000025      intersect            OpenSCAD
 F34F 00000005      intersect            OSH
 F356 00000005      intersect            dwm
 F35D 00000025      intersect            Sway
 F360 00000025      intersect            freedesktop.org
 F368 00000025      intersect            XFCE
======== font-logos.ttf ========
Sum of problems: open 0, intersect 28, direction 0 (for a total of 119 glyphs)
| font-logos.ttf | 119 | 0 | 28 | 0 |
$

Script checks for open paths, self-intersection, and wrong direction

dwm
image

Thanks for looking 💚

image

I'm working on some related stuff in NF, this is why I found it, and this can then be automagically fixed...
Maybe ;-)

🙄

$ cat fontnames | xargs fontforge bin/scripts/name_parser/check_glyphs 2>/dev/null
Examining 63 font files
Batch mode enabled
| file                                     | #glyp | open | self | dir  |
| 0xProto-Regular.ttf                      |   845 |    0 |    0 |    0 |
| 3270-Regular.ttf                         |  2226 |    0 |    0 |    0 |
| Agave-Regular.ttf                        |  2487 |    0 |   22 |   19 |
| Anonymous Pro.ttf                        |   623 |    0 |    0 |    0 |
| Arimo-Regular.ttf                        |  3306 |    0 |    3 |    0 |
| AurulentSansMono-Regular.otf             |   267 |    0 |    0 |    0 |
| BigBlue_TerminalPlus.ttf                 |   781 |    0 |  146 |    0 |
| VeraMono.ttf                             |   269 |    0 |    0 |    0 |
| CascadiaCode-Regular-vtt.ttf             |  3199 |    0 |    2 |    0 |
| CascadiaMono-Regular-vtt.ttf             |  3199 |    0 |    2 |    0 |
| Code New Roman-Regular.otf               |  2738 |    0 |    0 |    0 |
| ComicShannsMono-Regular.otf              |   619 |    0 |   14 |    0 |
| CommitMono-400-Regular.otf               |  1924 |    0 |    3 |    0 |
| Cousine-Regular.ttf                      |  2391 |    0 |    0 |    0 |
| D2Coding-Ver1.3.2-20180524-ligature.ttf  | 26559 |    0 |   82 |    8 |
| DaddyTimeMono.otf                        |   918 |    0 |    0 |    0 |
| DejaVuSansMono.ttf                       |  3392 |    0 |    9 |    0 |
| Droid Sans Mono for Powerline.otf        |   907 |    0 |    1 |    0 |
| Envy Code R.ttf                          |   648 |    0 |   13 |   16 |
| FantasqueSansMono-Regular.ttf            |  1046 |    0 |    0 |    0 |
| FiraCode-Regular.ttf                     |  2030 |    0 |    1 |   79 |
| FiraMono-Regular.otf                     |  1485 |    0 |    0 |    0 |
| GeistMono-Regular.otf                    |   694 |    0 |    0 |   15 |
| gohufont-uni-14.ttf                      |   841 |    0 |  582 |    0 |
| Go-Mono.ttf                              |   711 |    0 |    1 |    1 |
| Hack-Regular.ttf                         |  1572 |    0 |    3 |    0 |
| Hasklig-Regular.otf                      |  1611 |    0 |    2 |    0 |
| heavy_data.ttf                           |   252 |    0 |    0 |    0 |
| Hermit-Regular.otf                       |   393 |    0 |    0 |    0 |
| iAWriterMonoS-Regular.ttf                |   850 |    0 |    1 |    0 |
| IBMPlexMono-Regular.ttf                  |  1032 |    0 |    2 |    0 |
| Inconsolata-Regular.ttf                  |   963 |    0 |    2 |   18 |
| InconsolataGo-Regular.ttf                |   306 |    0 |    0 |    0 |
| Inconsolata-LGC.ttf                      |   885 |    0 |    3 |    0 |
| iosevka-regular.ttf                      | 30414 |    0 |   59 |    0 |
| iosevka-term-regular.ttf                 | 30414 |    0 |   59 |    0 |
| iosevka-term-slab-regular.ttf            | 29667 |    0 |   71 |    0 |
| JetBrainsMono-Regular.ttf                |  1743 |    0 |    3 |    0 |
| Lekton-Regular.ttf                       |   953 |    0 |    4 |    0 |
| LiberationMono-Regular.ttf               |  2423 |    0 |    0 |    2 |
| Lilex-Regular.ttf                        |  1230 |    0 |    2 |    0 |
| MartianMono-Regular.ttf                  |   557 |    0 |    0 |    1 |
| Meslo LG M Regular for Powerline.ttf     |  2714 |    0 |    7 |    2 |
| MonaspaceNeon-Regular.otf                |   782 |    0 |    0 |   95 |
| Monofur for Powerline.ttf                |   690 |    0 |   11 |    0 |
| Monoid-Regular.ttf                       |   785 |    0 |    0 |    0 |
| mononoki-Regular.ttf                     |   932 |    0 |    2 |    2 |
| Mplus1Code-Regular.ttf                   |  6582 |    0 |  206 |   65 |
| NotoMono-Regular.ttf                     |   896 |    0 |    0 |    0 |
| NotoSansMono-Regular.ttf                 |  3919 |    0 |    3 |    0 |
| OpenDyslexic-Regular.otf                 |   748 |    0 |    1 |  541 |
| overpass-mono-regular.otf                |   987 |    0 |    0 |    1 |
| ProFontIIx.ttf                           |   270 |    0 |    2 |    0 |
| ProggyClean.ttf                          |   256 |    0 |  173 |    0 |
| RobotoMono-Regular.ttf                   |  1003 |    0 |   29 |  601 |
| ShareTechMono-Regular.ttf                |   267 |    0 |    0 |    0 |
| SourceCodePro-Regular.ttf                |  1568 |    0 |    2 |    0 |
| SpaceMono-Regular.ttf                    |   732 |    0 |    0 |   10 |
| TerminusTTF-4.49.2.ttf                   |  1358 |    0 |    2 |    0 |
| Tinos-Regular.ttf                        |  2583 |    0 |    0 |    0 |
| Ubuntu-R.ttf                             |  1266 |    0 |    0 |    0 |
| UbuntuMono-R.ttf                         |  1298 |    0 |    0 |    0 |
| VictorMono-Regular.ttf                   |  1331 |    0 |   12 |    0 |

Edit: Correct numbers down in most places (forgot to unref Refs)

Hope the magic works there! In theory that could cause rendering problems but if there are no people complaining we can expect there aren't that many problems in the wild, or not?

Some bugs in glyphs are never noticed or only after a long time. I remember one, was that GO, that had all the paths in the same direction thus the icon was all black just showing the outline. Correcting the directions 'opened' to icon up.

And some other glyph, I believe this Rust mascot, showed differently depending on font renderer with white or black 'face'.

Here is this mascot issue:

and this is another overview ;-D

image

The fixes are addressed in the fonts right? So would still be needed to address them on the svgs?

$ fontforge bin/scripts/name_parser/check_glyphs patched-fonts/NerdFontsSymbolsOnly/SymbolsNerdFont-Regular.ttf 2>/dev/null | grep open
...
 E7B6 0008008B open           direction  uniE6B6

😬 Looks innocent

image

Ah...
image