Managing Multiscript Typefaces with Just One File

by Hugo Jourdan

Traditionally, when working with multiscript typefaces, each script is stored in a separate source file, with each file also including the Core and Latin glyph sets. When working on Diatype Global, this would mean our font engineers (ie. me) having to work with several source files. Imagine all of these on your Desktop at one time:

All Source Files

The more scripts a typeface supports, the more source files needed. The primary challenge with this is the difficulty in maintaining, fixing, and updating these files.

For example, if an issue is found in the Latin glyph set, it must be fixed in all source files because all of our multiscript typefaces also include the Latin glyph set. If every file needs to be fixed, this significantly increases the workload, as the number of supported scripts multiplies the amount of work required.

Maintenance Problems

✨ A New Approach ✨

To simplify file management process, we decided to keep all scripts in a single source file and generate exports with subsetted glyph sets:

The GLOBAL

However, building this came with its own set of challenges…

Designspace: Diatype includes four axes (Weight, Width, Slant, Mono), but not all scripts support all of these axes or their full ranges. This can create significant incompatibilities, making export nearly impossible without extensive adjustments.

Glyphset Subset: Since all glyphs are combined in one large file, some needed to be removed during export. While this is straightforward, it can cause issues if glyphs that are removed remain in manually defined OpenType classes and features, leading to errors during export.

Stylistic Sets: Diatype, even with just Latin, already uses all 20 available slots for stylistic sets. This required additional work to ensure that the stylistic sets for other scripts could coexist with those initially assigned to the Core and Latin glyph sets.

To address these challenges, we developed an alternative export dialog for Glyphs that allows us to define subsets by setting the name, script to keep, designspace, and other parameters.

Screenshot 2024 09 23 at 16 48 08

Designspace: Depending on the selected scripts and instances, the design space is automatically trimmed to retain only the masters and instances supported by the remaining scripts, while also removing any unused axes.
Glyphset Subset & Stylistic Sets: We introduced a new syntax for Features that allows us to filter based on the remaining scripts in the subset, giving us control over which parts of the code are retained during export.

Screenshot 2024 06 13 at 12 22 58

A significant benefit of this approach is that, since everything resides in the same source file, it’s possible to export fonts containing all scripts together—creating the true Diatype International

Screenshot 2024 05 22 at 14 06 00