Skip to content

Instantly share code, notes, and snippets.

@rsms
Created July 17, 2018 15:54
Show Gist options
  • Select an option

  • Save rsms/96ecfbd12c1698d010a9bd79de31fd77 to your computer and use it in GitHub Desktop.

Select an option

Save rsms/96ecfbd12c1698d010a9bd79de31fd77 to your computer and use it in GitHub Desktop.
Use sfddiff to find difference between font files
sfddiff [-merge outfile] [-ignorehints] [-ignorenames] [-ignoregpos] [-ignoregsub] [-ignorebitmaps]
        [-exact] [-warn] [-version] [-help] fontfile1 fontfile2

Sfddiff compares (or merges) two font files (in any format fontforge can read) and checks for differences.

It will notice:

  • any characters present in one font but not in the other
  • any characters present in both fonts but which have different sets of outlines or references. The outlines may be compared so that only exact matches are accepted, or so that a fuzzier match is used (useful in compare that a truetype and postscript font are the same). Similarly references may be matched exactly or may match after an unlink.
  • optionally will check if the postscript hints or truetype instructions are different.
  • if the truetype ‘name’ tables match
  • if kerning (and other ‘GPOS’ data) match
  • if ligatures (and other ‘GSUB’ data) match
  • Any bitmap strikes present in one font but not the other
  • Any bitmap characters present in one font but not the other
  • Any bitmap characters which differ

If the -merge flag is specified the following argument should be the name of an output file into which sfddiff will store a merged version of the two fonts. This will contain everything from fontfile1 as well as any characters present in fontfile2 but not in fontfile1. For any characters with different outlines or references, the background of the character will contain the splines from fontfile2 (sadly references can not be placed in the background).

If the -ignorehints flag is specified, then no hint differences will be reported.

-help will provide a mini description and will list the available options.

-usage will list the available options.

-version will display the current version of sfddiff.

Example:

$ brew install fontforge
$ sfddiff font1.otf font2.otf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment