summaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorRasmus Andersson <rasmus@notion.se>2018-02-18 06:53:57 +0300
committerRasmus Andersson <rasmus@notion.se>2018-02-18 06:53:57 +0300
commita95c991daa4cf4811b6264f9c42dc041da2f1946 (patch)
treef820cc34dc14a9915cff46d4770d355eb6495ca8 /misc
parentb31b1887091e6559a0a8f0ad48c70547b4667a7a (diff)
downloadinter-a95c991daa4cf4811b6264f9c42dc041da2f1946.tar.xz
Adjust italic angle from 10 to 12 and change spacing delta to -8
Diffstat (limited to 'misc')
-rw-r--r--misc/pylib/fontbuild/Build.pyx41
-rw-r--r--misc/pylib/fontbuild/italics.pyx4
-rwxr-xr-xmisc/ufocompile10
3 files changed, 36 insertions, 19 deletions
diff --git a/misc/pylib/fontbuild/Build.pyx b/misc/pylib/fontbuild/Build.pyx
index 81407d97f..567e1a4c9 100644
--- a/misc/pylib/fontbuild/Build.pyx
+++ b/misc/pylib/fontbuild/Build.pyx
@@ -16,6 +16,7 @@
import ConfigParser
import os
import sys
+import math
from booleanOperations import BooleanOperationManager
@@ -86,7 +87,7 @@ class FontProject:
return os.path.join(path, "%s-%s.%s" % (family, style, ext))
def generateFont(self, mix, names, italic=False, swapSuffixes=None, stemWidth=185,
- italicMeanYCenter=-825, italicNarrowAmount=1, panose=[]):
+ italicMeanYCenter=-825, scaleX=1, panose=[]):
n = names.split("/")
log("---------------------\n%s, %s\n----------------------" %(n[0],n[1]))
@@ -109,16 +110,15 @@ class FontProject:
i += 1
if i % 10 == 0: print g.name
- if g.name in self.lessItalic:
- italicizeGlyph(f, g, 9, stemWidth=stemWidth,
- meanYCenter=italicMeanYCenter,
- narrowAmount=italicNarrowAmount)
- elif g.name not in self.noItalic:
- italicizeGlyph(f, g, 10, stemWidth=stemWidth,
- meanYCenter=italicMeanYCenter,
- narrowAmount=italicNarrowAmount)
- if g.width != 0:
- g.width += 10
+ if g.name not in self.noItalic:
+ if g.name in self.lessItalic:
+ italicizeGlyph(f, g, 10, stemWidth=stemWidth,
+ meanYCenter=italicMeanYCenter,
+ scaleX=scaleX)
+ else:
+ italicizeGlyph(f, g, 12, stemWidth=stemWidth,
+ meanYCenter=italicMeanYCenter,
+ scaleX=scaleX)
# set the oblique flag in fsSelection
f.info.openTypeOS2Selection.append(9)
@@ -144,6 +144,23 @@ class FontProject:
generateGlyphs(f, self.diacriticList, self.adobeGlyphList)
# log(">> Reading features")
# readFeatureFile(f, f.features.text)
+
+ # adjust width of italic glyphs
+ if italic == True:
+ widthAdjustment = -8
+ leftAdjustment = math.floor(widthAdjustment / 2)
+ rightAdjustment = math.ceil(widthAdjustment / 2)
+ for g in f:
+ if g.name not in self.noItalic:
+ if g.width != 0:
+ if g.box is None:
+ g.width += widthAdjustment
+ else:
+ newLeftMargin = int(g.leftMargin + leftAdjustment)
+ newRightMargin = int(g.rightMargin + rightAdjustment)
+ g.leftMargin = newLeftMargin
+ g.rightMargin = newRightMargin
+
log(">> Decomposing")
# for g in f:
# if len(g.components) > 0:
@@ -151,7 +168,7 @@ class FontProject:
for gname in self.decompose:
if f.has_key(gname):
decomposeGlyph(f, f[gname])
-
+
copyrightHolderName = ''
if self.config.has_option('main', 'copyrightHolderName'):
copyrightHolderName = self.config.get('main', 'copyrightHolderName')
diff --git a/misc/pylib/fontbuild/italics.pyx b/misc/pylib/fontbuild/italics.pyx
index 522336197..769586f40 100644
--- a/misc/pylib/fontbuild/italics.pyx
+++ b/misc/pylib/fontbuild/italics.pyx
@@ -26,7 +26,7 @@ from fontbuild.alignpoints import alignCorners
from fontbuild.curveFitPen import fitGlyph, segmentGlyph
-def italicizeGlyph(f, g, angle=10, stemWidth=185, meanYCenter=-825, narrowAmount=1):
+def italicizeGlyph(f, g, angle=10, stemWidth=185, meanYCenter=-825, scaleX=1):
unic = g.unicode #save unicode
glyph = f[g.name]
@@ -39,7 +39,7 @@ def italicizeGlyph(f, g, angle=10, stemWidth=185, meanYCenter=-825, narrowAmount
# and -825 for a 2816 unit em square. (UPM*0.29296875)
m = Transform(1, 0, slope, 1, 0, 0)
xoffset, junk = m.transformPoint((0, meanYCenter))
- m = Transform(narrowAmount, 0, slope, 1, xoffset, 0)
+ m = Transform(scaleX, 0, slope, 1, xoffset, 0)
if len(glyph) > 0:
g2 = italicize(f[g.name], angle, xoffset=xoffset, stemWidth=stemWidth)
diff --git a/misc/ufocompile b/misc/ufocompile
index f577a4609..e63f93739 100755
--- a/misc/ufocompile
+++ b/misc/ufocompile
@@ -161,7 +161,7 @@ def main():
# styleCode should be one of:
# Regular, Italic, Bold, Bold Italic
#
- # italicNarrowAmount controls scale on the x axis. 1.0 means no scaling.
+ # scaleX controls scale on the x axis, used for italics. 1.0 means no scaling.
# italicMeanYCenter controls how far on the x axis the glyph should slide
# to compensate for the slant.
@@ -174,7 +174,7 @@ def main():
handledStyles.append('italic')
proj.generateFont(
rg.font, "%s/Italic/Italic/Rg" % FAMILYNAME,
- italic=True, stemWidth=232, italicMeanYCenter=-825, italicNarrowAmount=1,
+ italic=True, stemWidth=232, italicMeanYCenter=-825,
panose=mkpanose(5))
@@ -190,7 +190,7 @@ def main():
proj.generateFont(
Mix2([rg, bl], 0.32, glyphSpecializations.get('medium', {})),
"%s/Medium Italic/Italic/Me" % FAMILYNAME,
- italic=True, stemWidth=300, italicMeanYCenter=-825, italicNarrowAmount=1,
+ italic=True, stemWidth=300, italicMeanYCenter=-825,
panose=mkpanose(6))
@@ -206,7 +206,7 @@ def main():
proj.generateFont(
Mix2([rg, bl], 0.68, glyphSpecializations.get('bold', {})),
"%s/Bold Italic/Bold Italic/Rg" % FAMILYNAME,
- italic=True, stemWidth=350, italicMeanYCenter=-825, italicNarrowAmount=1,
+ italic=True, stemWidth=350, italicMeanYCenter=-825,
panose=mkpanose(8))
@@ -219,7 +219,7 @@ def main():
handledStyles.append('blackitalic')
proj.generateFont(
bl.font, "%s/Black Italic/Italic/Bl" % FAMILYNAME,
- italic=True, stemWidth=400, italicMeanYCenter=-825, italicNarrowAmount=1,
+ italic=True, stemWidth=400, italicMeanYCenter=-825,
panose=mkpanose(9))
# generate TTFs