A Unicode® typeface is the graphical information required to display the characters present in the Unicode® universal character set (UCS). There are more than 1 million characters in the UCS, each called a code point, and they are continually being revised and expanded. For this reason, many Unicode® typefaces choose to provide only graphical data for a subset of the characters that could be represented, such as only Western English letters and numbers, although there are some typefaces that attempt to provide display information for as many characters as possible. Ultimately, the connection between a Unicode® typeface and the UCS is handled by the software using the characters, because there is no real definition for how the fonts should behave at a programming level.
Using a Unicode® typeface involves handing the two elements that make a complete font. The first is the UCS, which is a definition of what characters map to what specific numbers. This means that, in the UCS, the English number 1 would be represented in the set by a specific index number. This number can then be used to determine the index into the typeface to find the graphical data so the character can be rendered onto a screen or printed to paper. The Unicode® standards deal only with the underlying UCS and not the typefaces or the implementation of the relationship between the two, so this can vary from program to program.
The information within a Unicode® typeface can be nearly anything that in some way fulfills the role of displaying or representing the UCS character. The graphical representation of a UCS character is known as a glyph. The glyphs in a typeface can be images, or they can be vector data so the characters can be drawn and scaled to any size necessary. There is no definition for how the Unicode® typeface needs to be implemented, so it also could contain information to render letters in three dimensions (3D), or even audio signatures instead of visual data.
There are some typical methods of implementing complex characters in a Unicode® typeface, especially in non-Western languages in which there can be tens of thousands of individual characters. One way is to provide information about how to compile a single glyph from several elements that might each be used in more than one character. This can allow a typeface to hold less repetitive graphical data, and instead replace it with a system of layering to create the unique images necessary.