D.13. AAT Tables with Finite Automata

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.

D.13.1. 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 ...

Get Fonts & Encodings now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.