Building accents?



  • Hi,

    This "Building Accents" code (almost 100% taken from the RFab site) is not working and I can't figure out why. It runs apparently fine but the glyphs are not updated, they keep empty.

    Any thought? Am I missing something?

    Thanks,
    Joancarles

    # from robofab.world import CurrentFont
    from robofab.tools.toolsAll import readGlyphConstructions
    # from random import randint
    
    f = CurrentFont()
    
    import string
    
    theList = [
        'ecaron',
        'acircumflex'
        ]
    
    con = readGlyphConstructions()
    theList.sort()
    
    def accentify(f, preflight=False):
        print 'start accentification', f.info.fullName
        slots = con.keys()
        slots.sort()
        for k in theList:
            if k[-3:] in [".sc"]:
                isSpecial = True
                tag = k[-3:]
                name = k[:-3]
            else:
                isSpecial = False
                tag = ""
                name = k
            parts = con.get(name, None)
            if parts is None:
                print k, "not defined?"
                continue
            base = parts[0]
            accents = parts[1:]
            f.generateGlyph(k, preflight=preflight)
            # f[k].mark = 100 + randint(-20, 20)
            f[k].autoUnicodes()
            f[k].update()
        f.update()
    
    accentify(f)
    print 'done'</pre>
    

    [I just prettified your code example]


  • admin

    its idd not working in the current build
    this will be working in the next update, this is scheduled soon :)



  • Apart from the refresh of the font Overview, the anchors are ignored when placing the accents. It just appends the components ignoring the anchors placement.
    Can you confirm this?


  • admin

    and its maybe better to use font.compile since you already know the base glyph and accents

    # in your example
    # replace f.generateGlyph(k, preflight=preflight) by
    
    f.compileGlyph(k, baseName=base+tag, accentNames=accents, preflight=preflight)
    

  • admin

    the font overview doesn't get updated, this will be solved in the next version.....

    side note:

    # glyph.mark takes a tuple of 4 
    r = 1
    g = 0
    b = 0
    a = 1
    glyph.mark = (r, g, b, a)