Using VOLT: The positioning tool

A positioning lookup can be edited in the Positioning Tool by double-clicking from the main project window or selecting it and pressing the 'Edit Lookup' button. This is by far the most complex tool in the box; what follows is only a general description.

Anchor attachment (reduced by 50%)

Lookup header

See the Substitution tool section.

Lookup types

The lookup type must be chosen before any data can be entered into the Positioning Tool. Below, very brief notes for each lookup type follow.

Glyph positioner

This is where you can specify positioning operation by drag-and-dropping glyph and anchor images. You can also enter the adjustments or coordinates below in a little table, for later display on the positioner.

For each operation, several images appear on the positioner, corresponding to the glyphs and anchors you can position. The 'inactive' shapes that cannot be positioned are shown in gray. Also, three lines indicate the font ascender, base line and descender. It is advisable that positioning operations not cross ascender and descender boundaries.

In the left-bottom corner is a small 'preview', the result of positioning at a smaller size. Choose the size right below the preview.

Single adjustment

The 'Single Adjustment' operation is for positioning of single glyphs, most useful when used in a contextual fashion.

Glyphs: Enter names of glyphs to be positioned in the list on the right. Glyphs groups can be used. All glyphs in the group (in one line) will receive the same treatment (the same adjustments to their positions). You cannot repeat the same glyph twice in different lines.

Positioning: Select a glyph or glyph group. In the positioner, drag the glyph image to get the adjustment operation you need. Drag the tall 'width anchor' to enter adjustments to the advance width. If multiple glyphs are entered on the simple line in the glyph list, you can choose different shapes from the dropdown list below to see how your positioning operation affects each glyph on the list.

Pair adjustment

Pair adjustment

Allows you to position pairs of glyphs. Similar to single adjustment, except that now there are two lists of glyphs, the first glyphs and the second glyphs.

Each pair of entries (one from each glyph list) is adjusted individually. As with single adjustment, if a glyph group is used, all glyphs from the group get the same treatment and positioning.

Anchor attachment

Anchor attachment

This option allows you to define Mark-To-Base, Mark-To-Mark and Mark-To-Ligature lookups. The actual lookup type is defined by the type of glyphs used. You cannot mix different glyph types in one lookup.

Next to the mark, enter the anchor name that identifies the anchor to be positioned to. One glyph can have any number of different anchors (with different names). If two marks share the same position, relative to the base glyph, they can use the same anchor name.

To define Mark-To-Base Lookups, enter a list of bases in the first glyph list, and a list of marks in the second list. After selecting one entry from each list, position the mark and anchor point in the positioner. When using glyph groups in the base or mark list, select a glyph to work with from the drop-down boxes above the positioner. Please note that glyphs in one groups do not share the same positioning values. However, you may apply one anchor position to all glyphs in a group by selecting the 'all 1st same' or 'all 2nd same' button.


Moving the anchor point affects both the base and mark anchors. To move only one anchor, first lock the other anchor down (see below).


Mark values are globally shared between lookups. For example, if two different lookups use the same anchor named 'TopCenter' for positioning a top mark over letter 'A', changing one lookup may affect another. You can lock a base anchor to prevent it from changing, and then fine-tune the position with the mark anchor, or vice versa.

Locking anchors: Below the positioner, an option is provided to lock either or both anchors. A locked anchor cannot be (unintentionally) changed until it is explicitly unlocked. If another lookup uses this same anchor (identified by glyph ID and anchor name), it will be locked in that lookup as well.

Defining Mark-To-Mark and Mark-To-Ligature Lookups: This is similar to defining mark-to-base lookups. The only difference is defining positions for many anchors per ligature glyph instead of one per simple base glyph (one anchor per component). The currently 'active' component is controlled by the component drop-down box above the positioner. The 'inactive' component anchors and marks are grayed out.

Cursive attachment

Cursive attachment is similar to anchor attachment. The anchor name is fixed to 'entry' for the second glyph, 'exit' for the first glyph. Used to define cursive positioning lookups.

Caret positioning

Caret positioning does not compile in an OTL lookup and cannot be linked to a feature. All data from caret positioning operations is gathered to produce GDEF data, which is then used by OpenType Layout services for measuring operations and caret placement.

Glyph list: Defines what ligatures' caret positions are described. Only ligature glyphs can be entered. Drag the tall 'caret' anchors to the right positions of carets inside ligatures. A ligature will have one less caret anchors than it's number of components. Choose the 'active' anchor by manipulating the component field above the positioner.

Adding device corrections

Check the 'Adjustment Mode' box to enter the mode when all positioning changes affect the currently selected size only. The 'Adjust at this Size' checkbox will expose adjustments for the selected size. These adjustments are always shown on the little preview. Check 'Adjustment Mode' to display them on the big positioner for additional changes.

De-select the 'Adjust at this Size' checkbox to clear adjustments for this size. Select the 'Clear' button to clear them for all sizes.

Defining contextual positioning

See Using Contexts in the Substitution Tool section.