Quantcast
Channel: TypeDrawers
Viewing all articles
Browse latest Browse all 4153

Simple script: test in batch if all tabular and fixed width values are correct

$
0
0
Hi there,

Here is another simple script I wrote for Fontlab (it should also work in Robofont I think) to test if all fixed width glyphs have the right value in all open font. You can easily adapt it to your foundry production standards editing the glyph lists and variables at the top.

#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!!"


Viewing all articles
Browse latest Browse all 4153

Trending Articles