Maybe useful to share: a script to generate a simplified MetricsMachine pair list from an input font and pair list.

  • I sometimes make a big pair list, then run through it in one source of a type family, kerning everything that seems to need kerning. But then, I find it annoying to have to skip over every pair that doesn't really need kerning in my next sources. Especially when I'm kerning "optional" / not-typically-kerned items, like numerals to lowercase, I find myself wishing it could be a little faster.

    Well, here's a script I've written to simplify a pair list once you've already gone through it:

    It may have issues, and it's not super pretty. But, I wanted to share it, and I didn't want to spend any more time on it. :) Hope it helps someone!

    Also included: a function to get a kerning value from an arbitrary pair of glyph names. I wish this were a function in FontParts or RoboFont already, but if it is, I couldn't find it!

    def findKernValue(font, pair):
            I can't find a method to check for a kern pair in RoboFont, so here's an attempt at one.
            font is an Rfont object. 
            pair is a tuple of glyph names.
        side1 = font.groups.findGlyph(pair[0])
        side2 = font.groups.findGlyph(pair[1])
        # check if side1 in a side1 group, otherwise, just use it directly
            side1 = [group for group in side1 if "kern1" in group][0]
        except IndexError:
            side1 = pair[0]
            side2 = [group for group in side2 if "kern2" in group][0]
        except IndexError:
            side2 = pair[1]
            pairKernValue = (font.kerning[(side1, side2)])
            return pairKernValue
        except KeyError:
            return None

  • font.kerning.find(('A', 'V'))

  • admin

Log in to reply