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.
Startzeile | StartFontMetrics version |
---|---|
Endzeile | EndFontMetrics |
Inhalt | alle anderen Daten |
Startzeile | StartDirection richtung |
---|---|
Endzeile | EndDirection |
Inhalt | schreibrichtungsabhängige Angaben |
Die richtung ist 0 für Horizontal, 1 für Vertikal und 2 für beide Richtungen.
Startzeile | StartCharMetrics anzahl |
---|---|
Endzeile | EndCharMetrics |
Inhalt | Zeichenabmessungen |
Startzeile | StartKernData |
---|---|
Endzeile | EndKernData |
Inhalt | Kerningdaten |
Startzeile | StartTrackKern anzahl |
---|---|
Endzeile | EndTrackKern |
Inhalt | Trackingdaten |
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 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 |
UnderlineThickness | Unterstreichungsdicke |
UnderlinePosition | Unterstreichungsabstand |
StdVW | Stammdicke |
IsFixedPitch | Fixbreitenschrift |
CharWidth | Zeichenbreite |
EncodingScheme | interne Kodierung |
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.
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.
Diskussion