Skip to content

Commit

Permalink
Add Compact instance
Browse files Browse the repository at this point in the history
Fixes #18
  • Loading branch information
khaledhosny committed Jan 7, 2024
1 parent fcc3050 commit 7c99302
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 8 deletions.
Binary file modified docs/assets/fonts/Raqq.woff2
Binary file not shown.
Binary file modified fonts/Raqq.ttf
Binary file not shown.
Binary file modified fonts/Raqq.woff2
Binary file not shown.
28 changes: 20 additions & 8 deletions scripts/build.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,15 +18,15 @@
from xml.etree import ElementTree as etree

from fontTools.cu2qu.ufo import glyphs_to_quadratic
from fontTools.designspaceLib import DesignSpaceDocument
from fontTools.designspaceLib import DesignSpaceDocument, AxisLabelDescriptor
from fontTools.fontBuilder import FontBuilder
from fontTools.misc.transform import Identity, Transform
from fontTools.pens.basePen import AbstractPen
from fontTools.pens.svgPathPen import SVGPathPen
from fontTools.pens.ttGlyphPen import TTGlyphPointPen
from fontTools.ttLib import newTable
from fontTools.ttLib.tables._h_e_a_d import mac_epoch_diff
from fontTools.varLib import build as merge
from fontTools.varLib import build_many as merge
from glyphsLib import GSAnchor, GSFont, GSFontMaster, GSLayer
from glyphsLib.builder.tokens import TokenExpander
from glyphsLib.glyphdata import GlyphData
Expand Down Expand Up @@ -788,22 +788,21 @@ def prepare(args):
return font, instance


def build(font, instance, args):
def build(font, default_instance, args):
ds = DesignSpaceDocument()

axisNames = {
"MSHQ": {"ar": "مشق"},
"SPAC": {"ar": "مسافات"},
"jstf": {},
}

axisMappings = font.customParameters["Axis Mappings"]
for axis, default in zip(font.axes, instance.axes):
for axis, default in zip(font.axes, default_instance.axes):
locations = axisMappings[axis.axisTag].values()
ds.addAxisDescriptor(
name=axis.name,
tag=axis.axisTag,
labelNames={"en": axis.name, **axisNames[axis.axisTag]},
labelNames={"en": axis.name, **axisNames.get(axis.axisTag, {})},
hidden=axis.hidden,
maximum=max(locations),
minimum=min(locations),
Expand All @@ -819,6 +818,19 @@ def build(font, instance, args):
location={a.name: master.axes[i] for i, a in enumerate(ds.axes)},
)

for i, instance in enumerate(font.instances):
location = {a.name: instance.axes[i] for i, a in enumerate(ds.axes)}
ds.addLocationLabelDescriptor(name=instance.name, userLocation=location)
if instance == default_instance:
continue
ds.addInstanceDescriptor(
name=f"instance_{i}",
familyName=font.familyName,
localisedStyleName={"en": instance.name},
postScriptFontName=instance.fontName,
location=location,
)

mappings = [
[{"Justification": -100}, {"Spacing": -100, "Mashq": 0}],
[{"Justification": -50}, {"Spacing": 0, "Mashq": 0}],
Expand All @@ -830,11 +842,11 @@ def build(font, instance, args):
for input, output in mappings:
ds.addAxisMappingDescriptor(inputLocation=input, outputLocation=output)

vf, _, _ = merge(ds)
vf = merge(ds)["VF"]
if "ltag" in vf:
del vf["ltag"]

otf = buildBase(font, instance, vf, args)
otf = buildBase(font, default_instance, vf, args)
return otf


Expand Down
8 changes: 8 additions & 0 deletions sources/Raqq.glyphspackage/fontinfo.plist
Original file line number Diff line number Diff line change
Expand Up @@ -1294,6 +1294,14 @@ axesValues = (
0
);
name = Regular;
},
{
axesValues = (
-100,
10,
0
);
name = Compact;
}
);
kerningRTL = {
Expand Down

0 comments on commit 7c99302

Please sign in to comment.