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

9 Responses

  1. woz says:

    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]

  2. Peter Bilak says:

    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/

  3. woz says:

    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]

  4. Aziz Mostafa says:

    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/36706http://www.typophile.com/node/19348Regrads + Flowers

  5. Amine says:

    May you help me please, I need Adobe Arabic. Thanks a lot.[Adobe Arabic comes bundled with the ME versions of Adobe products, and is also available for retail licensing on http://www.adobe.com/type.- David L]

  6. Bahman Eslami says:

    Thank you so much for contributing this huge project with us.But I have a question regarding the Adobe Arabic volt project, Perhaps Mr.John Hudson would answer me?Why glyph names are different between fonlab and volt in the project? I know it makes finding and typing the name of characters easier, but my major question is how did you do that?Thanks in advance.[I use ‘human friendly’ glyph names during development, especially inVOLT projects, and switch to final CFF/post table uniXXXX format namesjust before I generate the fonts from FontLab. So only the uniXXXX namesare actually written to the shipping fonts.I use a Python script (written by Adam Twardoch) within FontLab toswitch back and forth between the human friendly glyph names and theuniXXXX names.For a full explanation of my Fontlab-to-VOLT workflow, see:http://www.tiro.com/John/FontLab-to-VOLTworkflow.pdf– JH]

  7. Robert Letts says:

    So look- I am no programmer just a simple designer. Maybe I am still not understanding what I am up against in my search to be able to typeset Arabic in CS5 and have it read from right to left correctly. Is there some special code set or table I have to add or change to make this happen or do I need to purchase some amazing “pimped” out gizmo or version from Winsoft? You would think this feature would be a natural add-in for Adobe products with as small as the world is now. I have a job to complete and cannot do so until this issue is resolved.[What you need is access to our World-Ready Composer, which supports complex scripts, including right-to-left ones, such as Arabic and Hebrew. There are two ways to expose the World-Ready Composer in non-ME versions of our products, specifically InDesign, Photoshop, and Illustrator (CS4 and greater). One is to download and use the templates in Thomas Phinney’s “World-Ready Composer in Adobe CS4” blog article. See: http://www.thomasphinney.com/2009/01/adobe-world-ready-composer/The other is to purchase WinSoft’s ScribeDOOR for CS4. See: http://www.winsoft-international.com/en/products/scribedoor-for-creative-suite-4.htmlScribeDOOR works with InDesign and Illustrator, and you can purchase a slightly cheaper license that works in either application, but not both. You may need to contact WinSoft to ask whether ScribeDOOR works with CS5, though you should be able to find out yourself by simply downloading the trial version. — KL]

  8. O.M. says:

    I am not able to download, is there any link from where to download?

    1. If you are referring to the “Adobe Font Development Kit for OpenType (AFDKO)” link, we are aware that it is currently not working, and will fix this as soon as possible. Please be patient.

Comments are closed.

Thomas Phinney

Adobe type alumnus (1997–2008), now VP at FontLab, also helped create WebINK at Extensis. Lives in Portland (OR), enjoys board games, movies, and loves spicy food.

TypoTechnica 2007 talks

Thomas Phinney · May 22, 2007 · Making Type

Kromofons - representing letters with colors

Thomas Phinney · June 13, 2007 · Making Type