Release Notes > 12.1.1.0 > Updates in This Release > Kerning and OpenType Shaping > Using New Glyph-based Shape Shift Tables
  
Using New Glyph-based Shape Shift Tables
The OpenType shaping technology not only returns a series of glyphs, it also returns horizontal and vertical positioning information. We can therefore provide an override for this using a new feature for 12.1.1.0 called OpenType shape shifting. Shape shift tables are a new tag type, .os, which are similar to custom kerning tables (there are differences, though, so be careful). Whereas kerning tables work with characters, shape shift tables work with glyph IDs. However, the basic principle is the same, a pair of adjacent glyph IDs are used together with the new horizontal and vertical offset. Glyph IDs are specified using decimal values.
For example,
74:267=10
will shift the glyph 267 when it follows glyph 74 by 10 units (1/96 em) horizontally in the direction opposite to the current text progression direction. A negative value will shift it in the direction of the text progression.
As with kerning tables, if you have multiple pairs to be applied after an initial glyph, then they should follow on the same line:
74:276=10 278=20 290=10
If the same starting glyph ID appears on a later line, then this will override all the shifting applied on the earlier line.
As mentioned earlier, the shift value can take horizontal and vertical shift values. To shift vertically, add a second value:
74:267=10,15
where the second value (15) will shift downwards vertically by 15 units — positive values shift downwards, negative values shift upwards.
* 
It is important to remember that Layout Developer will not shift back once any kern or shift is applied. It is up to the user to re-apply a shift to ensure the progression continues where expected. This is not always necessary when applying kerning between characters, but if shifting accent or diacritic glyphs you will need to ensure the horizontal and vertical position is put back.
An addition to shape shift tables, which is not valid in kerning tables but is in ligature tables, is the use of -1 to mean “any glyph ID”. For example, if you always want to shift an accent which follows any character you can use
-1:245=10
where 245 is the glyph ID of the accent. You might want to include a line like this to shift subsequent glyphs back:
245:-1=-10
To apply a shape shift table to text, fStyle has a new property fStyle.openTypeShapeShiftTable. The value assigned to this property must be a .os tag in the document. For example:
formatting.currentStyle.openTypeShapeShiftTable = "mySSTable";