#FLM: ReType Tabular Checker V1.0 #Test if tabular and non spacing glyphs have the right width from robofab.world import CurrentFont,AllFonts numbers = ["zero.tosf","one.tosf","two.tosf","three.tosf","four.tosf","five.tosf","six.tosf","seven.tosf","eight.tosf","nine.tosf","zero.tf","one.tf","two.tf","three.tf","four.tf","five.tf","six.tf","seven.tf","eight.tf","nine.tf"] operators = ["plus","minus","equal","multiply","divide","plusminus","approxequal","logicalnot","notequal","lessequal","greaterequal","less","greater","asciicircum"] currencies = ["Euro.tf","dollar.tf","cent.tf","sterling.tf","yen.tf","florin.tf"] diacritics = ["gravecomb","acutecomb","uni0302","tildecomb","uni0304","uni0306","uni0307","uni0308","uni030A","uni030B","uni030C","uni0312","uni0313","uni0326","uni0327","uni0328","gravecomb.case","acutecomb.case","uni0302.case","tildecomb.case","uni0304.case","uni0306.case","uni0307.case","uni0308.case","uni030A.case","uni030B.case","uni030C.case","uni0326.case","uni0327.case","uni0328.case","gravecomb.sc","acutecomb.sc","uni0302.sc","tildecomb.sc","uni0304.sc","uni0306.sc","uni0307.sc","uni0308.sc","uni030A.sc","uni030B.sc","uni030C.sc","uni0326.sc","uni0327.sc","uni0328.sc"] tabWidth = 698 operatorsWidth = 500 diacriticsWidth = 1 def checkTabNumbers(font): for n in font: for i in numbers: if n.name == i: if n.width != tabWidth: print "Tab value of " + n.name + " is NOT correct <---" n.mark = 250 def checkOperators(font): for n in font: for i in operators: if n.name == i: if n.width != operatorsWidth: print "Tab value of " + n.name + " is NOT correct <---" n.mark = 250 def checkCurrencies(font): for n in font: for i in currencies: if n.name == i: if n.width != tabWidth: print "Tab value of " + n.name + " is NOT correct <---" n.mark = 250 def checkDiacritics(font): for n in font: for i in diacritics: if n.name == i: if n.width != diacriticsWidth: print "Tab value of " + n.name + " is NOT correct <---" n.mark = 250 for x in AllFonts(): print print x.info.postscriptFullName print checkTabNumbers(x) checkOperators(x) checkDiacritics(x) checkCurrencies(x) print "_______________________________________" x.update() print print "Ready the chicken!!"
Comments
I also suggest declaring what kind of libre license you intend for this - I guess MIT, similar to RoboFab/etc?