Batching OpenType/features generation

blokland's picture

As I explained earlier on this forum, DTL FontMaster makes use of separate files for glyph, naming, encoding and kerning information. Although perhaps relatively complex, this system has proven over the years to be extremely versatile. For instance renaming a character or changing Unicode information can be applied to a complete type library by simply generating the fonts in batch with the newly edited Character Layout file (.cha). For the production of a different code page only another UFM file (that contains naming and some parameter settings) and .cha file have to be selected. In most cases the kerning for the different scripts is stored in a single file. All the files can be simply edited with a text editor.

The handling of the BE and IK glyph databases has been made more convenient by a number of batch functions. It is for instance possible to collect/import glyph data from different databases using a command file in DTL Bezier- and IkarusMaster. For generating the OpenType features a BE or IK glyph database can be connected through the UFM file to a features file. A large range of GSUB features is currently supported. When the OpenType font is generated, the glyph set is compared with the listed features and all features that are covered by the glyph set will be generated (actually the rest will be removed). There are three conditions: firstly the glyph(s) must be in the database, secondly the character(s) must be listed in the .cha file and thirdly the character(s) must be listed in the features file. Because of the option to batch the OpenType production a newly created entry in a feature can be applied to a (unlimited) number of fonts at once. Basically we are extending the features file as much as possible but additions can be simply made by the user also. Because the 'size' (i.e. number of characters) in the generated font is controlled by the Character Layout file, this way also the output of features can be controlled.

Because the UFM files are just plain text files that are connected by name to the glyph database files, it is very easy to copy the files and rename (some of) the entries for instance for generating Eastern-European, Cyrillic, Greek, et cetera or for the OpenType production (in DataMaster or directly in a text editor). Some of the changes can be done in batch with for instance BBEdit. At DTL we even have (slightly) different copies for the production of PS Type 1 for Mac OS and PC because of some of the style names (Light, Medium, Heavy, et cetera). The basic idea behind the system is that you fill in the naming once and never have to look at the UFM files again. At DTL all different UFM files are placed together with copies of the glyph database in different directories for the different code pages and font formats. The distribution from the 'base' glyph databases to these directories and the renaming of the files to match the UFM names, is handled via (simple) AppleScripts over here. For every directory a different Character Layout file, that contains the mapping info, is used. I have attached a simplified illustration of how the stuff is organized at DTL.

All this makes batch production very easy, although sometimes we still have to change some settings for a complete directory by hand. For this reason we are currently developing a command file entry in DataMaster, which makes it possible to generate all different font formats with all kind of code pages at once from one text file. Because we are updating the FM Features file constantly, this way it is for instance very easy to re-generate all OpenType fonts with the new features enhancements. But sometimes fixes in the Adobe OT FDK make it also necessary to re-generate the fonts. The only way to handle this kind of problems is to simply re-generate all the OpenType fonts with one mouse-click using the updated software (in this case DTL DataMaster 2.1.3, which will become available within a few weeks).

Sometimes there seems to be some confusion about the default em-square for the BE and IK formats. This might be caused by the fact, that the FMDemo font that is supplied with FM has an em-square of 15.000 units instead of 1000.
The default for the Ikarus system is 15000 for the em-square. Using analog material and a digitizer, 1000 IK units correspond with 1 centimeter. At DTL in many cases we still make working drawings with a caps height of 10 centimeters, which we digitize using a version of FM that supports Wacom CAD tablets. However, any other value for the em can be used in DTL IkarusMaster, of course.
The default for the BE format is an em of 1000 units but any other value can be used here also. Converting a PS Type 1 font to the BE format will result in a 1:1 conversion of the outlines using the default setting. When scaling, there is always a change of rounding errors, of course. The conversion from IK to BE is controlled by the Max Deviation parameter in the PAR (1) dialog of DTL DataMaster.

By the way, it seems that occasionally some of the modules of the current Light version of FM do not always function completely properly in the Classic mode. Creating an empty folder named TemporaryItems (without a space) on the root of the disk solves the problem.

blokland's picture

To make the former information somewhat more transparent and to illustrate
how relatively easy it is to generate OpenType features in DTL FontMaster, a
.sit and a .zip file can be downloaded here: <>.
Both files contain the BE glyph database of the FM Demo Font, the
corresponding UFM and AFM files, a Character Layout file for OpenType
production, the latest edition of the FM Features file and, last but not
least, an OTF version of the FM Demo Font generated with the mentioned

Using the FM Features file for the generation, the actual production of the
OpenType font was a matter of seconds. The same functionality can be applied
to a (large) number of OpenType fonts in batch, of course.

Syndicate content Syndicate content