1
0
mirror of https://github.com/ryanoasis/nerd-fonts.git synced 2025-01-06 21:49:40 +02:00

Boxdrawing: Overhaul symbol font

[why]
All the glyphs have overlap (negative bearings). That in itself is ok,
altough it (the glyph width for example) is not consistent for all
subsets.

The overlaps can interact strangely with the overlap given by the
font-patcher script.

[how]
It seems better to remove the negative bearings.
Also some glyph width are corrected (unified).

The font is then stored uncompressed now.

[note]
The script used to modify the font:

import fontforge, psMat

font = fontforge.open('src/glyphs/extraglyphs_orig.sfd')
font.encoding = 'UnicodeFull'

def adjust(f, rang, left, width):
    for c in rang:
        g = f[c]
        if c in range(0x2599, 0x259f + 1):
            plus = 0
            g.transform(psMat.scale(1233/1234, 1))
        if c == 0x259D or c == 0x2595:
            g.width = width
            g.right_side_bearing = 0
        else:
            g.left_side_bearing = int(g.left_side_bearing + left)
            g.width = width
        print('{:X} {} {} {} {}'.format(c, g.boundingBox(), g.left_side_bearing, g.width, g.right_side_bearing))

adjust(font,
    [*range(0x2500, 0x2570 + 1), *range(0x2574, 0x257f + 1)],
    20, 1233 + 40)
adjust(font,
    range(0x2571, 0x2573 + 1),
    87, 1280+127)
adjust(font,
    range(0x2580, 0x259f + 1),
    0, 1233)

font.generate('TEST.sfd')
font.generate('TEST.ttf')

Signed-off-by: Fini Jastrow <ulf.fini.jastrow@desy.de>
This commit is contained in:
Fini Jastrow 2024-11-14 22:50:03 +01:00
parent 27b5aa903d
commit 2b587fe474
2 changed files with 1 additions and 3 deletions

View File

@ -1035,9 +1035,7 @@ class font_patcher:
BOX_SCALE_LIST = {'ShiftMode': 'xy', 'ScaleGroups': [
[*range(0x2500, 0x2570 + 1), *range(0x2574, 0x257f + 1)], # box drawing
range(0x2571, 0x2573 + 1), # diagonals
[*range(0x2580, 0x2590 + 1), 0x2594, 0x2595], # blocks
range(0x2591, 0x2593 + 1), # greys
range(0x2594, 0x259f + 1), # quards (Note: quard 2597 in Hack is wrong, scales like block!)
range(0x2580, 0x259f + 1), # blocks and greys (greys are less tall originally, so overlap will be less)
]}
CODI_SCALE_LIST = {'ShiftMode': 'xy', 'ScaleGroups': [
[0xea61, 0xeb13], # lightbulb

Binary file not shown.