mirror of
https://github.com/rsms/inter.git
synced 2024-11-27 09:49:07 +03:00
display: round all kerning values to integers
This commit is contained in:
parent
f4116ac9ac
commit
9890b2508d
45
misc/tools/round-kerning-in-glyphs-file.py
Normal file
45
misc/tools/round-kerning-in-glyphs-file.py
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# encoding: utf8
|
||||||
|
__doc__ = """
|
||||||
|
Rounds all kerning values in a Glyphs file to integers
|
||||||
|
"""
|
||||||
|
import os, sys, re
|
||||||
|
|
||||||
|
pat = re.compile(r'(.*=\s*)(\-?\d[\d\.]*);\n')
|
||||||
|
file = sys.argv[1]
|
||||||
|
outlines = []
|
||||||
|
count = 0
|
||||||
|
|
||||||
|
with open(file, "r") as f:
|
||||||
|
print(f)
|
||||||
|
level = 0
|
||||||
|
done = False
|
||||||
|
for lineno, line in enumerate(f):
|
||||||
|
if not done:
|
||||||
|
if level == 0:
|
||||||
|
if line == "kerning = {\n":
|
||||||
|
print("BEGIN at line", lineno)
|
||||||
|
level = 1
|
||||||
|
else:
|
||||||
|
if line.find("{") != -1:
|
||||||
|
level += 1
|
||||||
|
if line.find("}") != -1:
|
||||||
|
level -= 1
|
||||||
|
m = pat.match(line)
|
||||||
|
if m is not None:
|
||||||
|
val = m.group(2)
|
||||||
|
val2 = str(int(float(val)))
|
||||||
|
line = m.group(1) + val2 + ";\n"
|
||||||
|
if val != val2:
|
||||||
|
count += 1
|
||||||
|
if level == 0:
|
||||||
|
print("END at line", lineno)
|
||||||
|
done = True
|
||||||
|
outlines.append(line)
|
||||||
|
|
||||||
|
if count == 0:
|
||||||
|
print("all kerning values in %s are integers (no change)" % file)
|
||||||
|
else:
|
||||||
|
print("rounded %r kerning values in %s" % (count, file))
|
||||||
|
with open(file, "w") as f:
|
||||||
|
f.write("".join(outlines))
|
10020
src/InterDisplay.glyphs
10020
src/InterDisplay.glyphs
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user