adobe-fonts / source-code-pro

Monospaced font family for user interface and coding environments
https://adobe-fonts.github.io/source-code-pro/
SIL Open Font License 1.1
19.74k stars 1.62k forks source link

2023 Updates to Source Code #304

Closed kaydeearts closed 1 year ago

frankrolf commented 1 year ago

About 4505e49 – I think we should just leave the vertical metrics as they are, given that Source Code is widely used for terminals. Commit 09510c4 does not actually go all the way in terms of vertical metrics equalization – the current thinking is making them all equivalent, however this (the extreme y-values being -454 1060) results in a terminal with very large line spacing:

all_equivalent_mac

The changes made in 09510c4 result in a difference between Mac and Windows: after_09510c_win

after_09510c_mac

Therefore, I would argue it’s best to keep things as they were:

before_09510c_mac

before_09510c_win

After all, it’s a WARNING not a FAIL :-)

frankrolf commented 1 year ago

I added all anchors to the sparse masters in their interpolated location. The script was simpler than expected:

a = sorted(AllFonts(), key=lambda x: x.path)
source_0, intermediate, source_1 = a
factor = 0.368

bg = intermediate.newLayer('background')
for g in intermediate:
    g.clearAnchors()
    g_0 = source_0[g.name]
    g_1 = source_1[g.name]
    bg = g.getLayer('background')
    bg.interpolate(factor, g_0, g_1)
    for anchor in bg.anchors:
        g.appendAnchor(anchor.name, anchor.position)
    bg.clear()
intermediate.removeLayer('background')

This should clear up any of fontmake’s interpolation complaints.

pauldhunt commented 1 year ago

It seems way too many files have differences. Did you run the UFO sanitizer before committing?