About Glyphs»

Character vs. Glyph»

Characters are logical text units identified by Unicode codepoints, whereas glyphs are graphical font units. The distinction between character and glyph is critical to understanding FontLab VI, and fonts in general. Both concepts are explained below:

Character»

A character is the minimal unit of the written language – a part of the alphabet, a symbol, a digit. In font terminology, something is a character if it is encoded, i.e. it has a number or code assigned to it in some standard, so that it can be referenced in the same way across fonts. The primary standard for such codes is Unicode, a universal character encoding standard with over 100,000 defined characters so far. These codes are used to store text data on a computer, and also used to reference the glyphs in a font.

The same character can be written or drawn differently based on styles:

At the same time, sometimes characters may look the same, yet represent different characters. For example, the Latin A, the Cyrillic А and Greek capital Alpha Α, all look the same but represent different characters from different scripts.

A character that is supported in a font must have some way of being represented by the glyphs in the font. In simple cases, there is one glyph for each supported character.

Glyph»

A glyph is the basic element of the font, occupying a “slot” in the font. A glyph can be a default typographic representation of a character (if it has a Unicode codepoint assigned), or a variant typographic representation of one or more characters, or a constituent of another glyph, or a combined form of two or more glyphs (then they’re accessed via typographic features or composites). Note that all glyphs are unique, even if they represent different forms of the same character. For instance in a handwriting font, each variant of the character A would be a distinct glyph.

Glyphs are identified in several different ways. Every glyph in a font has a Glyph ID or index, which is the physical numbering of the glyphs in the font (starting at zero, so if there are 27 glyphs in a font, they have Glyph IDs 0–26). Glyphs in most fonts also have glyph names, which are brief ASCII text labels without spaces (for example, the glyph name for “&” is “ampersand”). Additionally, many or all glyphs in a font are encoded, which means that the glyph is the default for a given Unicode character or codepoint. For example, the default ampersand should have the Unicode codepoint U+0026. Some glyphs in a font may have no Unicode codepoint but every glyph must have a unique name.

Glyph input in text»

The glyphs from a font that are encoded can be entered directly, via keyboard, for example. But those glyphs that have no Unicode assigned to them cannot. They can appear when an application makes OpenType substitutions to replace particular encoded glyphs with their counterparts without Unicode. These OpenType substitutions Glyph Substitution Rules are defined in the font and reference glyphs by their names, not by Unicode values.

Glyphsets»

A Glyphset is the glyph repertoire of a font, i.e. all glyphs present in the font. The old term for this repertoire was “character set”, but it is misleading because in modern font technology, a font is a collection of glyphs, not a collection of characters.

The glyphset of your font depends on its language support. To check if an existing encoding offers the glyphset you want, select Encoding in the view mode of the Font Window header, and explore encodings from the list. You can choose any encoding from the list on the left and see a preview of its repertoire on the right.

Once you choose an encoding, all the glyphs from the encoding will be displayed in the Font Window at the top, whether or not the glyphs are present in your font. If none of the existing encodings include the glyphs you want in your font, you can create your own custom encoding file or try other view modes: Codepages, Unicode Ranges, Unicode Categories or Script.

For example, to quickly see all Armenian glyphs at the top of the Font window, click on Encoding choose Script in the drop-down menu and then select Armenian in the next menu populated with scripts.