AFM

AFM ist ein Textformat mit grundsätzlich einer Information pro Zeile. Die Informationen sind in Blöcken zusammengefasst, welche durch eine Startzeile und eine Endzeile markiert sind.

Blöcke

FontMetrics

StartzeileStartFontMetrics version
Endzeile EndFontMetrics
Inhalt alle anderen Daten

Direction

StartzeileStartDirection richtung
Endzeile EndDirection
Inhalt schreibrichtungsabhängige Angaben

Die richtung ist 0 für Horizontal, 1 für Vertikal und 2 für beide Richtungen.

CharMetrics

StartzeileStartCharMetrics anzahl
Endzeile EndCharMetrics
Inhalt Zeichenabmessungen

KernData

StartzeileStartKernData
Endzeile EndKernData
Inhalt Kerningdaten

TrackKern

StartzeileStartTrackKern anzahl
Endzeile EndTrackKern
Inhalt Trackingdaten

KernPairs

Startzeile StartKernPairs anzahl
StartKernPairs0 anzahl
StartKernPairs1 anzahl
Endzeile EndKernPairs
Inhalt Daten für Unterschneidung/Vertikalversatz

StartKernPairs und StartKernPairs0 bezeichnen einen Block für horizontale Schreibrichtung. StartKernPairs1 bezeichnet einen Block für vertikale Schreibrichtung.

allgemeine Angaben

Allgemeine Angaben kommen direkt im FontMetrics Block und in Direction Blöcken vor. Jede Zeile ist eine Angabe. Enthalten sind ein Schlüsselwort und ein oder mehrere Werte. Schlüsselwort und Werte sind durch Leerräume getrennt.

Schlüsselwort Wert(e)
FontName Schriftname
FamilyName Schriftart
Ascender Oberlänge
Descender Unterlänge
CapHeight Versalhöhe
FontBBox Zeichenumfang
ItalicAngle Schrägung
Weight Schriftdicke
UnderlineThicknessUnterstreichungsdicke
UnderlinePosition Unterstreichungsabstand
StdVW Stammdicke
IsFixedPitch Fixbreitenschrift
CharWidth Zeichenbreite
EncodingScheme interne Kodierung

Zeichenbreiten

Zeichenbreiten sind im CharMetrics Block. Jede Zeile beschreibt ein Zeichen. Die einzelnen Angaben sind durch Strichpunkte getrennt. Die Angaben bestehen aus einem Code und einem oder mehreren Werten. Strichpunkte, Code und Werte sind durch Leerräume getrennt.

CodeWert(e)
N Zeichenname
C Zeichennummer
WX Zeichenbreite
W0X Zeichenbreite (horizontale Schreibrichtung)
W Zeichenbreite und -höhe
W0 Zeichenbreite und -höhe (horizontale Schreibrichtung)

Unterschneidung

Informationen über Unterschneidung sind im KernPairs Block abgelegt. In diesem Block existiert eine Zeile pro Zeichenpaar, für welches Unterschneidung und/oder Vertikalversatz festgelegt wurden. Die Zeilen beginnen mit einem Code, welcher die Art der Definition festlegt. Darauf folgt die eigentliche Definition, welche aus mehreren Werten besteht. Code und Definitionen sind durch Leerräume getrennt.

Bei normalen Type1 Schriften kann Unterschneidung auf folgende zwei Arten definiert sein:

KP links rechts unterschneidung vertikalversatz
KPX links rechts unterschneidung

Ist ein Vertikalversatz ungleich 0 angegeben so sollte die Zeile ignoriert werden.

Details KernPairs Block