summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile16
-rw-r--r--misc/dist/variable.txt9
-rwxr-xr-xmisc/fontbuild59
3 files changed, 79 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index f6cecb4df..4c8125aec 100644
--- a/Makefile
+++ b/Makefile
@@ -44,7 +44,13 @@ all: all_const all_const_hinted all_var
all_const: all_otf all_ttf all_web
all_const_hinted: all_ttf_hinted all_web_hinted
-all_var: $(FONTDIR)/var/Inter-UI.var.woff2
+all_var: \
+ $(FONTDIR)/var/Inter-UI.var.woff2 \
+ $(FONTDIR)/var/Inter-UI-upright.var.woff2 \
+ $(FONTDIR)/var/Inter-UI-italic.var.woff2 \
+ $(FONTDIR)/var/Inter-UI.var.ttf \
+ $(FONTDIR)/var/Inter-UI-upright.var.ttf \
+ $(FONTDIR)/var/Inter-UI-italic.var.ttf
# Disabled. See https://github.com/rsms/inter/issues/75
# all_var_hinted: $(FONTDIR)/var-hinted/Inter-UI.var.ttf $(FONTDIR)/var-hinted/Inter-UI.var.woff2
@@ -79,8 +85,8 @@ build/%.woff: build/%.ttf
all_ufo_masters = $(Regular_ufo_d) $(Black_ufo_d) $(Italic_ufo_d) $(BlackItalic_ufo_d)
-$(FONTDIR)/var/Inter-UI.var.ttf: src/Inter-UI.designspace $(all_ufo_masters)
- misc/fontbuild compile-var -o $@ src/Inter-UI.designspace
+$(FONTDIR)/var/%.var.ttf: src/%.designspace $(all_ufo_masters)
+ misc/fontbuild compile-var -o $@ $<
$(FONTDIR)/const/Inter-UI-Regular.%: src/Inter-UI.designspace $(Regular_ufo_d)
misc/fontbuild compile -o $@ src/Inter-UI-Regular.ufo
@@ -135,7 +141,7 @@ $(FONTDIR)/const-hinted/%.ttf: $(FONTDIR)/const/%.ttf
# ttfautohint --fallback-stem-width=256 --no-info --composites "$<" "$@"
# make sure intermediate TTFs are not gc'd by make
-.PRECIOUS: $(FONTDIR)/const/%.ttf $(FONTDIR)/var/%.ttf
+.PRECIOUS: $(FONTDIR)/const/%.ttf $(FONTDIR)/const-hinted/%.ttf $(FONTDIR)/var/%.var.ttf
# check var
all_check_var: $(FONTDIR)/var/Inter-UI.var.ttf
@@ -235,7 +241,7 @@ docs_fonts:
cp -a $(FONTDIR)/const/*.woff \
$(FONTDIR)/const/*.woff2 \
$(FONTDIR)/const/*.otf \
- $(FONTDIR)/var/*.woff2 \
+ $(FONTDIR)/var/*.* \
docs/font-files/
.PHONY: docs docs_info docs_fonts
diff --git a/misc/dist/variable.txt b/misc/dist/variable.txt
index 78ac81974..c2a3b5cb2 100644
--- a/misc/dist/variable.txt
+++ b/misc/dist/variable.txt
@@ -1,6 +1,15 @@
Variable fonts is a new technology still undergoing development.
+The directory named "Inter UI (TTF variable)" contains three files:
+
+- Inter-UI.var.ttf -- multi-axis complete family
+- Inter-UI-italic.var.ttf -- italic-only with variable weight axis.
+- Inter-UI-upright.var.ttf-- upright-only with variable weight axis.
+
+The "Inter UI (web)" directory contains WOFF2 versions of these same
+font files.
+
Support for variable fonts is limited as of late 2018, but support
is quickly arriving to web browsers, operating systems and
design application.
diff --git a/misc/fontbuild b/misc/fontbuild
index 998739f35..d272a7aec 100755
--- a/misc/fontbuild
+++ b/misc/fontbuild
@@ -469,6 +469,47 @@ class Main(object):
font.save(ufo_path)
+ def _genSubsetDesignSpace(self, designspace, tag, filename):
+ ds = designspace
+ italic = False
+ if tag == 'italic':
+ italic = True
+ elif tag != 'upright':
+ raise Exception('unexpected tag ' + tag)
+
+ for a in ds.axes:
+ if a.tag == "slnt":
+ ds.axes.remove(a)
+ break
+
+ rmlist = []
+ hasDefault = not italic
+ for source in designspace.sources:
+ isitalic = source.name.find('italic') != -1
+ if italic != isitalic:
+ rmlist.append(source)
+ elif italic and not hasDefault:
+ source.copyLib = True
+ source.copyInfo = True
+ source.copyGroups = True
+ source.copyFeatures = True
+ hasDefault = True
+ for source in rmlist:
+ designspace.sources.remove(source)
+
+ rmlist = []
+ for instance in designspace.instances:
+ isitalic = instance.name.find('italic') != -1
+ if italic != isitalic:
+ rmlist.append(instance)
+ for instance in rmlist:
+ designspace.instances.remove(instance)
+
+ self.log("write %s" % relpath(filename, os.getcwd()))
+ ds.write(filename)
+
+
+
def cmd_glyphsync(self, argv):
argparser = argparse.ArgumentParser(
usage='%(prog)s glyphsync <glyphsfile> [options]',
@@ -557,6 +598,24 @@ class Main(object):
self.log("write %s" % relpath(designspace_file, os.getcwd()))
designspace.write(designspace_file)
+ # upright designspace
+ upright_designspace_file = pjoin(outdir, 'Inter-UI-upright.designspace')
+ p = Process(
+ target=self._genSubsetDesignSpace,
+ args=(designspace, 'upright', upright_designspace_file)
+ )
+ p.start()
+ procs.append(p)
+
+ # italic designspace
+ italic_designspace_file = pjoin(outdir, 'Inter-UI-italic.designspace')
+ p = Process(
+ target=self._genSubsetDesignSpace,
+ args=(designspace, 'italic', italic_designspace_file)
+ )
+ p.start()
+ procs.append(p)
+
for p in procs:
p.join()