Q&A Tools

Fontbakery

Online checking: http://fontbakery.com

Via command line

fontbakery check-universal --html report.html

Locate a font files after check-universal.

Checking Interpolation

Diffenator

diffenator2 diff -fb -fa --pt size 48 (optional)

It must be ttf file. Locate a ttf after -fb and -fa

fontTools

Subset

fonttools subset font.otf --glyphs=a b c.. --notdef-outline

Locate a font file after subset.

Interpolation Check

fonttools varLib.interpolatable --pdf report.pdf

Locate a font file after varLib.interpolatable.

  • –kinkiness (0-1)
  • –tolerance (0-1)

Bigger the value is pickier.

It requires at least one variable font file. Locate the font file(s) at the end of the line.

AFDKO

Feature Writers

markFeatureWriter

  • -c: –write_classes write mark classes to extra file? (default: False)
  • -m: –write_mkmk write mark-to-mark feature file? (default: False)
markFeatureWriter -cm

Locate an UFO at the end.

Check Outlines

  • -e: error correction mode
  • -all: Force all glyphs to be processed. Makes the tool ignore the stored hashes thus checking all the glyphs, even if they have already been processed.
checkoutlinesufo -e

Locate an UFO after checkoutlinesufo.

Export font

  • -f: Source location
  • -r: Release mode
  • -gs: Exclude glyphs that are not present in GOADB
  • -omitMacNames: Don’t know clearly. I saw it on source sans/serif export settings
  • -o: Export location
makeotf -f -r -gs -omitMacNames -o

Locate an UFO after -f.

Compiling Binaries

ttf

otf2ttf

Locate otf file(s) at the end.

woff & woff2

  • First ttx the ttf files.
  • Then ttx the ttx files with --flavor (woff/woff2) flag

Fontmake

Convert .glyphs to .UFO

  • -i: To generate instances
fontmake -g -o ufo

glyphsfile after -g

Terminal

Venv

python3 -m venv my_venv
source my_venv/bin/activate

OpenType Features

Fraction frac

@figures = [zero one two three four five six seven eight nine];
@figuresNumerator = [zero.numr one.numr two.numr three.numr four.numr five.numr six.numr seven.numr eight.numr nine.numr];
@figuresDenominator = [zero.dnom one.dnom two.dnom three.dnom four.dnom five.dnom six.dnom seven.dnom eight.dnom nine.dnom];
@slash = [slash fraction];

feature frac {
    sub @figures by @figuresNumerator;
    sub [@slash @figuresDenominator] @figuresNumerator' by @figuresDenominator;
    sub slash by fraction;
} frac;