NRSI: Computers & Writing Systems
Microsoft VOLT Tutorial (VOLT – Visual OpenType Layout Tool)
VOLT is Microsoft’s tool for adding OpenType tables to fonts. It provides a graphical UI that enables a person to visualize what is going to happen with the substitutions and positioning lookups when they are created. VOLT also includes a proofing tool that permits the functionality of the font to be tested without having to install the font in the system.
An explanation of VOLT menus and window layout are found in the article “Microsoft VOLT UI Overview”.
Information on obtaining VOLT can be found here.
Process of using VOLT
Before starting to add OpenType tables to a font it is important to understand what features will be used with which glyphs in the font. The glyph repertoire in the font will guide the implementation of OpenType tables for the font.
The process of adding OpenType tables for VOLT is:
For the tutorial we will step through the process of using VOLT. Each step is a module in the tutorial. The SILDoulosUnicodeIPA font is used for this tutorial. The original font, before OpenType tables are added, is provided. There is a version of the font to compare your work with after each module is completed.
Step 1 – Set Glyph Properties
The following glyphs are marks.
The following glyphs are marks.
Step 2 – Create Glyph Groups
Step 3 – Create Substitution Lookups
Create substitution lookups for the font.
The lookup type will be automatically assigned based on the lookups that are entered.
Process Marks should be set to “ALL” if marks have an impact on shaping and to “NONE” if the marks should be ignored when doing substitutions. For example, the Arabic lam alef ligature should be formed correctly even if there is a mark above the lam.
The Text Flow setting only impacts the display of the substitutions. All substitutions are entered in logical order.
When making lookups for ligatures, you need to make sure you do the lookups for the larger lookups before the smaller ones. This is because the first match when searching through a lookup will terminate the search process. For example: “uni02E5 uni02E7 uni02E9 -> uni02E502E9“ must come before “uni02E5 uni02E7 -> uni02E502E7“ or you will never have the possibility of forming the uni02E502E9 from the combination of uni02E5 uni02E7 uni02E9.
Substitution Lookup – dotless [this lookup changes the dotted form to dottless form of the glyph if an AboveMark is placed on the letter, e.g. i becomes dottless i.]
i -> dotlessi
j -> unitdb5
uni0286 -> unitdb4
Context (we will trigger this substitution if the letter is followed by an above combining mark)
Substitution Lookup – liga
f i -> fi
f l -> fl
Substitution Lookup – ipa
Step 4 – Create Positioning Lookups
Strategy for Anchor Attachments – A letter may have several anchor attachment points, depending on how various classes of marks interact with the character. Anchor attachment points for the base glyph must have unique anchor names.
The “Position First” column will contain a list of the base glyphs. The “Position Second” will contain a list of the marks that will be anchored to the base glyphs.
To make the process of positioning marks on a glyph easier, it is best to put all members of a class of marks into a group. For this tutorial, this was done when the AboveMarks and BelowMarks groups were created. To use a group in VOLT, the name of the group is put between “<” and “>”, e.g. “<AboveMarks>”.
All marks in the group should be adjusted first to allow for a single anchor on the base glyph to be used to correctly position the mark. After the mark is positioned, the mark should be locked in place.
Once the marks have been locked into place it will be straight forward to concentrate on positioning the anchor points on the base glyph.
Step 5 - Create language, script, and feature tree
This step will be the glue that allows the lookups you have defined to work when the font is called by an OpenType engine.
Step 6 - Test the features
Testing the features and lookups you have is important to make sure the font works as you have designed.
Learning how to debug your font with the VOLT Proofing tool will save a lot of time when tracking down a problem that might exist in your font.
Step 7 - Ship the font
When your font is sufficiently tested and you are ready to ship it to your user you can save a copy of your font that does not have the VOLT working tables.