mirror of
https://github.com/ryanoasis/nerd-fonts.git
synced 2024-09-12 09:41:47 +02:00
font-patcher: Correct icon path direction
[why] We create fonts with lots of path in the wrong direction. Although that is usually fine it is not guaranteed to be ok with all renderers. [how] Just flatten the inserted glyph and then correct the path directions. Output a debug message when that made the glyph worse or at least did not fix the direction. A complete patched font changes from ======== AurulentSansMNerdFont-Regular_OLD.otf ======== Sum of problems: open 0, intersect 295, direction 5099 (for a total of 9710 glyphs) ======== CaskaydiaCoveNerdFont-Regular_OLD.ttf ======== Sum of problems: open 0, intersect 188, direction 5201 (for a total of 12477 glyphs) to ======== AurulentSansMNerdFont-Regular_NEW.otf ======== Sum of problems: open 0, intersect 222, direction 4 (for a total of 9710 glyphs) ======== CaskaydiaCoveNerdFont-Regular_NEW.ttf ======== Sum of problems: open 0, intersect 185, direction 0 (for a total of 12477 glyphs) with DEBUG: Problematic glyph E0D0 (4 -> 8): uniE0D0 DEBUG: Problematic glyph E261 (8 -> 4): chess-pawn DEBUG: Problematic glyph E2A2 (4 -> 8): isle DEBUG: Problematic glyph E74C (4 -> 8): uniE64C DEBUG: Problematic glyph E767 (4 -> 8): uniE667 DEBUG: Problematic glyph F342 (0 -> 4): QubesOS DEBUG: Problematic glyph F34E (4 -> 2): OpenSCAD DEBUG: Problematic glyph F470 (4 -> 8): logo-github DEBUG: Problematic glyph F0DE4 (8 -> 4): pen-off DEBUG: Problematic glyph F10F7 (8 -> 4): application-brace DEBUG: Problematic glyph F1304 (8 -> 4): ski DEBUG: Problematic glyph F1367 (8 -> 4): sticker-check DEBUG: Problematic glyph F1675 (8 -> 4): paw-outline where the bits are 2 : open path 4 : self intersecting 8 : wrong direction One TTF and one OTF is shown because the standard direction is opposite for both formats. Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
This commit is contained in:
parent
81e7be81f8
commit
b213530f86
1 changed files with 14 additions and 1 deletions
15
font-patcher
15
font-patcher
|
@ -6,7 +6,7 @@
|
|||
from __future__ import absolute_import, print_function, unicode_literals
|
||||
|
||||
# Change the script version when you edit this script:
|
||||
script_version = "4.10.1"
|
||||
script_version = "4.11.0"
|
||||
|
||||
version = "3.1.1"
|
||||
projectName = "Nerd Fonts"
|
||||
|
@ -1443,6 +1443,19 @@ class font_patcher:
|
|||
# Paste it
|
||||
self.sourceFont.selection.select(currentSourceFontGlyph)
|
||||
self.sourceFont.paste()
|
||||
|
||||
# Correct path(s) and check for problems
|
||||
old_validate = self.sourceFont[currentSourceFontGlyph].validate(True)
|
||||
self.sourceFont[currentSourceFontGlyph].removeOverlap()
|
||||
self.sourceFont[currentSourceFontGlyph].correctDirection()
|
||||
new_validate = self.sourceFont[currentSourceFontGlyph].validate(True)
|
||||
# Usually self-intersection can not be fixed, so only show if we introduce it
|
||||
if (new_validate & 0x4 and not (old_validate & 0x4)) or new_validate & (0x8 | 0x2):
|
||||
logger.debug("Problematic glyph %04X (%X -> %X): %s",
|
||||
currentSourceFontGlyph, old_validate & 0xE, new_validate & 0xE,
|
||||
sym_glyph.glyphname)
|
||||
|
||||
# Name the glyph
|
||||
self.sourceFont[currentSourceFontGlyph].glyphname = sym_glyph.glyphname
|
||||
self.sourceFont[currentSourceFontGlyph].manualHints = True # No autohints for symbols
|
||||
|
||||
|
|
Loading…
Reference in a new issue