Home   All Products  |   Support  |   Search  | Home  

Microsoft Typography | Developer | VOLT specification
UI | Main | Proj window | Glyph grp | Subs tool | Posi tool | Glyph def | Proof tool | Output

Proofing tool


The Proofing Tool is used to try out the tables defined in VOLT on any sample character strings and track the execution.



The Proofing Tool contains the following fields:

  • the Script Drop-down List that allows to select the script tag for the test run;
  • the Language System Drop-down List that allows to select the language system tag for the test run;
  • a list of Feature Checkboxes allowing the user to turn features on and off for all or parts of the test run. This list is compiled of all features available for the selected of script and language system. It is refreshed every time the selected script or language tags change. By default all feature checkboxes start unchecked.
  • List of Alternate Indexes for every feature;
  • Button "Clear All" that re-sets the selected features for the test run;
  • "Size" text field that controls at what size to render the test string;
  • "Direction" field that controls how the glyphs are laid out in the Text Run area;
  • a list of Lookup Checkboxes showing which lookups are turned on by the selected features
  • the Test Run of glyphs, shown in the font associated with the project, in the specified point size (a large point size by default). This is where the changes (substitutions and positioning) performed on the test run are shown to the user. One can also select ranges of glyphs to apply features to in here.
  • a string of Test Run Glyph Names; this allows the user to check the names of glyphs in the test run (e.g. in case similar glyph shapes have different glyph IDs and names in the font) and to input glyphs that do not have entries in the CMAP table;
  • Buttons: "Restart", "Stop", "Next Glyph", "Next Lookup" and "Complete Processing" that allow the user to control and track the processing;
  • Information fields: Current Lookup and Current Char that reflect the state of the processing (the same information can be read from the Test Run and Lookup List; see below)


At any time the Proofing Tool can be in one of two different modes: Preparing the Test and Running the Test.

Preparing the Test

In this mode, the following actions are available:

Choosing Script and Language

One can choose the script and language in the drop-down lists. After choosing a script, the default language is automatically selected. Each time the script and language change, the list of features and lookups is re-initialized.

Selecting Text Direction

By manipulating the Direction field the user can control the directions of text in the Test Run area. By default the glyphs are put next to each other in the left-to-right order, but that can be changed for scripts like Hebrew and Arabic.

Inputting the Test Run as Characters

One can click on the Test Run and start typing in the current keyboard. The characters will appear just like in a normal text editor; the glyph names (result of applying CMAP) will appear at the same time in the Glyph Name Test Run. In case a character is types in that has no glyph associated with it in the font, one will see the "invalid glyph" sign and "Invalid" (in red) in the glyph name field. The test will not run as long as there are invalid characters in the test run.

The Test Run field should support cut and paste.

Inputting the Test Run by Glyph Names

One can also input the test run by glyph name. For that, click and type into the Glyph Name Test Run string. As soon as focus switches from it, the glyph names will be resolved and results will appear in the Test Run field. Again, the names that could not be resolved should appear in red in the name run and as invalid glyph signs in the test run. The test will not run until these errors are resolved.

The Glyph Name Test Run field should support cut and paste.

Selecting Test Run Ranges and Applying Features

After clicking in the test run or test run glyph names field, the caret will appear and one can either type or select a range of characters.

(As a shortcut for selecting features for the whole run, on the first click we select the whole run, and display a caret only if the user clicks inside it again).

After a range has been selected (even if it is a zero-length range, that is, a caret), the feature list will reflect all features that have already been selected for this range. If a feature is not on for the whole range, the checkbox will not be checked; if it is on for the whole range, it will be checked; otherwise, it is checked in gray. The lookups that are enabled by the selected features are checked/unchecked automatically in the same fashion.

At this time, the user can change the feature selection for this range by checking/un-checking feature checkboxes.

The user can also change alternate indexes for features at any time. These are the indexes that will be used during processing. For any lookup type except "Alternate Substitution" the alternate index is not applicable (the value is "-" and cannot be edited). Note that the Proofing Tool restricts the user to specifying the same alternate index for all sub ranges of the test run (this restriction does not apply in general in OpenType Layout processing). This restriction should not seriously affect the user's ability to test the OpenType tables.

Selecting Features and Viewing Feature Ranges

Clicking on a feature name selects (highlights) that feature. At this point the region of the Test Run where the feature is applied is outlined by drawing a border around it. Checking/un-checking the feature box for the highlighted feature inserts/removes the border around the selected range of characters.

It may be more intuitive for the user to apply the features in the actual test run, but it also may be more convenient to do it on glyph name run instead in presence of marks (which are hard to select because they are zero-width). Still, all visual effects (except highlighting the selected range) happen on the actual Test Run.

Clearing All Features

By pressing the "Clear All" button the user can clear all set features for the given test run. The alternate indexes are returned to their defaults ("1" where applicable and "-" otherwise)

Selecting Font Size to Run the Test

By changing the value of the "Size" field one changes the ppem size the test will be run at. The display of the test string changes correspondingly (it would be nice to leave the physical size of letters unchanged but change the size of pixels instead).

Starting the Test

One can start running the test by hitting one of the five buttons that control test execution (except "Stop"). The tool will enter the "Running the Test". If "Complete" is pressed, the completed results of substitution and positioning will be presented; otherwise, the tool will enter the initial state of running the test.

Running the Test

While running the test, one can use the four buttons "Restart", "Next Glyph", "Next Lookup", "Complete" and "Stop". By pressing "Stop" one can leave the "running the test" mode.

While running the test, the tool has two important variables to track:

  1. The Current Lookup. The processing goes through all lookups that are enabled (through features) for any sub range of the test run. The current lookup is highlighted the current lookup's name is shown in the Current Lookup information field; the range where the lookup is applicable is indicated by drawing a border around it (please note that the applicability ranges are defined in terms of character indexes and are translated to glyph indexes. The outlined range for the current lookup reflects the results of this translation).

  2. 2. The Current Glyph Index. It is: shown in the Current Glyph information field; The caret is drawn before the current glyph in the test run; if the lookup is applicable at the current glyph index (and within its enabled range) the range affected by the lookup (glyphs to be substituted or positioned) is selected and highlighted. The substitution or positioning does not take place however until the user moves to the next glyph/lookup.

The current lookup and glyph index are always shown as described above while the test is running.


The tool is returned in it's initial state when running a test: current lookup = first applicable lookup, current glyph index = start of the lookup's applicable range, and the test run returns to its initial state.

Next Glyph

If the current lookup was applicable at the current glyph and within its enabled range, perform the substitution/positioning and move the current glyph right after the glyphs that participated in the action. Otherwise, increment the current glyph index by one and, if needed, snap it forward to the next glyph where the lookup is enabled. If such a glyph does not exist, we go to the next enabled lookup and set glyph index to the first one where the next lookup is enabled. If we are out of lookups that means we have finished processing and the Next Glyph button is disabled; the shape of the test run is the result of applying the specified features.

Next Lookup

Simulates pressing "Next Glyph" until the next lookup becomes current or we finish processing.


Simulates pressing "Next Lookup" until the processing is finished.

this page was last updated 13 August 1999
© 1999 Microsoft Corporation. All rights reserved. Terms of use.
comments to the MST group: how to contact us


UI | Main | Proj window | Glyph grp | Subs tool | Posi tool | Glyph def | Proof tool | Output
Microsoft Typography | Developer | VOLT specification