RoboFab UFO

Glyph Interchange Format

Introduction


glyph is the top level element.

<glyph name="aGlyphName" format="1" >...<glyph>
]]>

The advance element stores horizontal and vertical metrics. This element has no child elements.

<advance width="268">
<advance height="1000">
]]>

The unicode element stores the Unicode code point for the glyph. This element has no child elements. The first occurance of this element defines the primary unicode value for this glyph.

<unicode hex="002E"/>
]]>

Outline description. The outline element can contain a number of component or contour elements. This element has no attributes.

<outline>...</outline>
]]>

The component element inserts another glyph as part of the outline. xScale, xyScale, yxScale, yScale, xOffset, yOffset taken together inthat 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.

<component base="a"/>
<component base="acute" vOffset="20"/>
]]>

Contour description. This element can contain any number of point elements,

<contour base="a"/>...<contour>
]]>

An attributed coordinate pair. This element has no child elements. (See also SegmentsVersusPoints and PointPen, for discussions about how outlines work here.

<point x=“134” y=“187” type=“curve” smooth=“yes”/>
]]>

Custom data storage, a.k.a. GlyphLib. No attributes, contents/child elements follow the "Property List":ufo/plist.html format. This element may occur at most once. *lib* has exactly one child, which must be *dict*. To avoid naming conflicts, keys must use ReverseDomainName-prefixed keys at the top level of this dictionary, for example "com.letterror.ourspecialdata".