Lookup Type 3:
Cursive Attachment Positioning Subtable

Some cursive fonts are designed so that adjacent glyphs join when rendered with their default positioning. However, if positioning adjustments are needed to join the glyphs, a cursive attachment positioning (CursivePos) subtable can describe how to connect the glyphs by aligning two anchor points: the designated exit point of a glyph, and the designated entry point of the following glyph.

The subtable has one format: CursivePosFormat1. It begins with a format identifier (PosFormat) and an offset to a Coverage table (Coverage), which lists all the glyphs that define cursive attachment data.

In addition, the subtable contains one EntryExitRecord for each glyph listed in the Coverage table, a count of those records (EntryExitCount), and an array of those records in the same order as the Coverage Index (EntryExitRecord).

CursivePosFormat1 subtable: Cursive attachment

Type

Name

Description

uint16

PosFormat

Format identifier

—format = 1

Offset

ŽCoverage

Offset to Coverage table

—from beginning of CursivePos subtable

uint16

EntryExitCount

Number of EntryExit records

struct

EntryExitRecord

Array of EntryExit records

[EntryExitCount]

—in Coverage Index order


Each EntryExitRecord consists of two offsets: one to an Anchor table that identifies the entry point on the glyph (EntryAnchor), and an offset to an Anchor table that identifies the exit point on the glyph (ExitAnchor). (For a complete description of the Anchor table, see the end of this chapter.)

To position glyphs using the CursivePosFormat1 subtable, a text-processing client aligns the ExitAnchor point of a glyph with the EntryAnchor point of the following glyph. If no corresponding anchor point exists, either the EntryAnchor or ExitAnchor offset may be NULL.

At the end of this chapter, Example 6 describes cursive glyph attachment in the Urdu language.

EntryExitRecord

Type

Name

Description

Offset

Ž EntryAnchor

Offset to EntryAnchor table

—from beginning of CursivePos subtable

—may be NULL

Offset

Ž ExitAnchor

Offset to ExitAnchor table

—from beginning of CursivePos subtable

—may be NULL