Adobe Variable Font Support
A version of the AFDKO with experimental support for building OpenType/CFF2 variable fonts is now available at the AFDKO download page.
Current version 2.5 change number 65781, April 3 2017
Important Changes since AFDKO version 2.5 build 65463 Nov 11 2016.
When reading a CFF2 variable font, 'tx' now blends and and snapshots the font data, using the user blend coordinates specified with the option '-U'. If the blend coordinates are omitted, the default font data is passed through.
The commands for building CFF2 variable fonts have been updated to work with the github fonttools master branch library version 3.9.1. They can now buld variable fonts from master fonts that have non-matching kern data.
There have been many bug fixes in building and processing CFF2 variable font data.
'buildMasterOTFs" will build the OpenType/CFF fonts for each master design from a Superpolator design space file and accompanying UFO master fonts.
'buildCFF2VF" will build an OpenType/CFF2 variable font from a Superpolator design space file and a set of OpenType/CFF fonts for each master design.
The latest AFDKO will build a CFF2 variable font with the source files at: https://github.com/adobe-fonts/adobe-variable-font-prototype. The previous versions will not work with this OpenSource font.
The Python script called by 'buildCFF2VF' uses the 'fontools' module to build everything variable font-ish except the CFF2 table. Many thanks to Behdad Esfahbod, Sascha Brawer and the rest of their team for all their work!The resulting variable font will not yet be shippable, for several reasons. The variable font will still be missing the MVAR and STAT tables, which are required by the OpenType spec 1.8. The font will also largely be unhinted: although the scripts support hint data, they will discard hint data from any glyph where the hint data from the different master source fonts are not compatible, and there is not yet a tool that will make hints which are compatible between different master fonts. The fonts will not be optimized for size: the scripts do not yet apply charstring operator optimization, and the FDK does not yet support subroutinizing CFF2 font tables. Finally, Windows and MacOSX will not yet show an OpenType/CFF2 font. As of this moment, the only tool which will show them is the Google open source 'fontview', and some browsers. All of these issues will be resolved over the next months.
The AFDKO tools mostly do not work with the OpenType/CFF2 fonts. The only thing you can do is dump the CFF2 structure with the command 'tx -dcf ', and snapshot an instance to any of the usual outputs. You can also compile/decompile OpenType/CFF2 fonts with the AFDKO version of 'ttx'.
The two build scripts make a number of assumptions.
1) all the master source fonts are blend compatible in all their data, with the exception of GPOS kern pair and single positioning data.
2) Each master source font is in a separate directory from the other master source fonts, and each of these directories provides the default meta data files expected by the 'makeotf' command:
'features' file'ufo' font file
FontMenuNameDB within the directory or no more than three parent directories up.
GlyphAliasAndOrderDB within the directory or no more than three parent directories up
Please see the report from the commands ' buildMasterOTFs -h' and ' buildCFF2VF -h' for more details.
Note that this is just the start of support for variable fonts. Making the AFDKO generally variable-font-capable will take some months. The workflow will eventually support creating variable font info in the feature file syntax, and will allow building variable fonts without requiring UFO master fonts and Superpolator design space files.
The (very approximate) development path for the AFDKO is:
October 2017. Publish support for CFF2Charstring optimization and subroutinization in CFF2 fonts.
Nov 2017. Support autohinting of all master fonts in parallel, to generate blend-compatible hints.
After. Add feature file support for variable font tables. Extend build tools to allow building without a Superpolator designspace file and UFO source fonts.