Adobe Arabic – sample VOLT code
Very quietly a couple of years ago, with Acrobat 7.05, Adobe shipped Adobe Arabic, an original OpenType typeface commissioned by Adobe with production by Tiro Typeworks, created by type designer Tim Holloway with Fiona Ross and John Hudson. The typeface won recognition from the TDC and has generally been well received.
Tiro recently had inquiries about showing the VOLT source code for Adobe Arabic to a third-party font developer. We’re fine with that, but we thought that to be fair to all developers I should simply post the code here for any interested party. So here you are (73K Zip file).
Some of you may notice that Adobe Arabic is an OpenType CFF font, while VOLT only supports making OpenType tables with TrueType outlines. So how did John do that? He’s talked about this at a few conferences, but the short version is:
- developed the font in FontLab Studio, using cubic Bezier outlines (for Type 1 and CFF)
- exported an OpenType TrueType version to do the VOLT work with (note: must be careful to set FontLab’s options to NOT reorder glyphs at export time)
- added the OpenType tables to the TTF file with VOLT
- exported an OpenType CFF version of the font from FontLab. The two versions have identical glyph complements and glyph ordering, meaning that glyph IDs (GIDs) are constant.
- [see below for update on this point] extracted the relevant OT layout tables from the OT TTF and glued them into the OT CFF. This can be done with a number of tools, including some in the Adobe Font Development Kit for OpenType (AFDKO), or the open source TTX (which is also in the AFDKO these days, come to think of it). With TTX, one would dump both fonts to the TTX XML format, copy and paste the tables from one to the other, and recompile with TTX. You’ll need to know enough about the format to understand which tables you need and which are specific to TT outlines to avoid the latter.
John Hudson contributes the following comments….
Actually, Thomas, the final stage of the CFF font is simpler than described. VOLT will actually open a CFF OT font fine, it just won’t display any glyphs because VOLT doesn’t have access to a PostScript rasteriser. But you can open a CFF font, import a VOLT project file, compile and ship the font. So it isn’t necessary to copy and paste the compiled OTL tables from a TT to a CFF font. When I first started doing this kind of workflow, I thought that would be necessary, but then discovered the easier method.
There is some post-VOLT work that needs to be done, though, and for that I do use TTX. VOLT assumes that fonts are following the TT spec, so expects the first four glyphs in a font to be
If one is making a CFF font following Adobe’s preferences it will not include the .null and CR glyphs. What this means is that the first section of the Mac cmap table will be incorrectly written by VOLT, and needs to be edited in a TTX dump.
The usMaxContext field in the OS/2 table also needs to be updated after a font is compiled in VOLT, but this is true for TT as well as CFF fonts.
After some discussion with Read Roberts at Adobe during development of the Adobe Arabic, Hebrew and Thai fonts, it was determined that the first section of the Mac cmap should look like this: