Legal
The views expressed in this blog are my own and do not necessarily reflect the views of Adobe Systems Incorporated.
Search
June 08, 2007
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.
UPDATE:
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
.notdef
.null
CR
space
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:
0x000 .notdef
0x0001 .notdef
0x0002 .notdef
0x0003 .notdef
0x0004 .notdef
0x0005 .notdef
0x0006 .notdef
0x0007 .notdef
0x0008 .notdef
0x0009 space
0x000A .notdef
0x000B .notdef
0x000C .notdef
0x000D space
0x000E .notdef
0x000F .notdef
0x0010 .notdef
0x0011 .notdef
0x0012 .notdef
0x0013 .notdef
0x0014 .notdef
0x0015 .notdef
0x0016 .notdef
0x0017 .notdef
0x0018 .notdef
0x0019 .notdef
0x001A .notdef
0x001B .notdef
0x001C .notdef
0x001D .notdef
0x001E .notdef
0x001F .notdef
0x0020 space
Comments
I love the way Open Type handles foreign languages like Arabic, Russian and Chinese. We create artwork for packaging worldwide and could not live without OpenType.
HOWEVER...
I fail to understand why Adobe RIPPED OUT the support for foreign languages in InDesign. What's the use of OpenType if InDesign won't let me use it proparly? If I create Arabic or Chines packaging I want to be able to set the Type right->left or bottom->top!
InDesign ME (Middle East) is able to do all this. So basically because I live in Europe I get a 'InDesign Light'?
[The best way to request features is to use the feature request form. But you have a major misconception I should clear up. Support for Arabic and middle eastern languages was not "ripped out" from the regular version of InDesign - it was never there. Adobe licenses the InDesign code to a third party, Winsoft, who add the middle eastern support to their own version of InDesign, which they sell. The situation with Chinese support is a bit more complicated, and is explained . - T]
We recently completed an Arabic project as well, and since it contained 4 weights of Arabic, we made a simple script that interpolates VOLT output data. You can load two master text files, input interpolation value, and in-between interpolated result will be generated. Useful for type designers and developers workign with non-Latin type families consisting of more than two weights.
Perhaps it iwll be useful for other soo.
http://www.typotheque.com/type_utilities/volt_interpolation/
Thanks for clearing this up mr. Phinney. So it's actually a 'pimped' InDesign they sell instead of a InDesign Light Adobe sells. Wow and I thought it was all just a plugin or something.
[Urm. Yes, WinSoft seriously "pimps Adobe's ride." There are significant changes in the core code and associated libraries, not just a plug-in. - T]
Well-done + Congratulations!
Out of Arabic Adobe OTF , I have made 2 complementary fonts with:
1. Longer Fatha on wide letters.
2. Longer Madda on Alif after wide letters.
3. Higher Madda on Alif after tall letters.
4. Longer + higher Madda on Alif after Wide+Tall letters.
5. Open loop sukun in place of the closed loop.
6. 69 Tansween instead of z9.
7. Standing Kasra similar to the Standing Fatha.
8. isolated Kasra from Shadda.
9. Closer Kasra + (Tanween Kasr) envelopable by final letters.
T. Marks on Ta positioned where the dot of its sister Za appears.
Like my uncompromisng Arabic font, Adobe Arabic has been made:
1. to work on both Windows 3.11 and Xp.
2. with no Quarrelsome fatha like that in طَآئر+|ترَك
More here:
http://www.typophile.com/node/36706
http://www.typophile.com/node/19348
Regrads + Flowers