Glyph Interchange Format
File Format | XML |
The Glyph Interchange Format (GLIF) is a simple and clear XML representation of a single glyph. GLIF files typically have a .glif extension.
Specification
<glyph> The top level element.
Attributes
name | description |
---|---|
name | The name of the glyph |
format | The format version. 1 for this version. |
The name attribute has limited uses in this version. The contents.plist file maps glyph names to file names, and one of the reasons to do this is to avoid having to parse all files just to get at a list of available glyph names. When reading GLIF files, the name attribute is probably best ignored, since manual editing may have caused a mismatch with the glyph name as stored in contents.plist, as well as with the file name, which is an algorithmic transformation of the glyph name. This attribute may become more useful in future versions of GLIF.
Child Elements
name | description |
---|---|
advance | May occur at most once. |
unicode | May occur any number of times. |
outline | May occur at most once. |
lib | May occur at most once. |
<advance> Horizontal and vertical metrics.
Attributes
name | type | description |
---|---|---|
width | integer or float | The advance width. |
height | integer or float | The vertical advance. |
This element has no child elements.
<unicode> Unicode code point.
Attributes
name | description |
---|---|
hex | A unicode code point as a hexadecimal number. |
This element has no child elements. The first occurrence of this element defines the primary unicode value for this glyph.
<outline> Outline description.
Child Elements
name | description |
---|---|
component | May occur any number of times. |
contour | May occur any number of times. |
This element has no attributes.
<component> Insert another glyph as part of the outline.
Attributes
name | type | description | default |
---|---|---|---|
base | string | Name of the base glyph | None |
xScale | integer or float | See below. | 1 |
xyScale | integer or float | See below. | 0 |
yxScale | integer or float | See below. | 0 |
yScale | integer or float | See below. | 1 |
xOffset | integer or float | See below. | 0 |
yOffset | integer or float | See below. | 0 |
xScale, xyScale, yxScale, yScale, xOffset, yOffset taken together in that order form an Affine transformation matrix, to be used to transform the base glyph. The default matrix is [1 0 0 1 0 0], the identity transformation.
This element has no child elements.