In this section, we shall describe the big guns of the AAT tables: those used as finite automata to perform positionings, substitutions, and justification. They are the tables `morx` (the new version of the `mort` table) and `just`: they play the same role as the tables `GPOS/GSUB` and `JSTF` in OpenType. Before we confront the formidable `morx` table, let us say a few words about finite automata.

A finite automaton is a way to represent certain simple programs. In our case, we shall describe in this manner the program that reads the string of glyphs for a line of text and then displays the glyphs. A program of this type may be in one or more states. Being in a given state means that the program reacts in a certain manner when it reads the glyphs, and that this manner is always the same for the same glyph; in other words, if in state A the program replaces an a with a b, then that will always be the case, however many times the letter a occurs, as long as the program remains in that state. The program's reaction consists of performing an action (leaving the glyph as it is, modifying it, replacing it, moving it, etc.) and possibly changing states. When the program changes state, we say that a transition has occurred. The automaton is called "finite" because this type of program has only a finite number of possible states, therefore only a finite number of transitions.

In Figure D-9, we see two examples of finite automata. Let us ...

Start Free Trial

No credit card required