Asian languages, and to a lesser extent other languages, have always presented a challenge to desktop publishing software. Although fonts can include thousands of ideographs, documents often need to use ideographs that are valid in the language but not included in any font. This particular problem is referred to as gaiji, the Japanese word for foreign or outside character. The SING architecture is Adobe's solution to this problem.
Glyphlets are the basic packaging of glyph data in the SING architecture. A glyphlet is a small font file, built using a subset of the OpenType font format tables, which encapsulates essential information for one gaiji. Two fundamental types of information comprise a glyphlet. One component is the visual image or glyph outline. The other component is definitional data about the gaiji's characteristics, such as stroke count, pronunciation, radical index, Unicode properties, and so on. This information is collectively called metadata. Adobe has specified two new font tables, the META and SING tables, where metadata is stored in a glyphlet. Note, however, that although a glyphlet looks much like an OpenType font with just one or two glyphs, it is missing several tables required by the OpenType specification, and cannot be used as a stand-alone font. Using two utilities, cvt2sing and spot, in the Glyphlet Development Kit (GDK), experienced font developers can create and validate glyphlets for in-house or commercial use. A font developer uses the cvt2sing utility to create a glyphlet, and the spot utility to examine the contents of a glyphlet. The font developer needs to provide two inputs to cvt2sing: the gaiji's glyph outline and its associated metadata. The Adobe Technical Note 5148, "SING Glyphlet Production: Tips,Tricks & Techniques", provides an in-depth discussion of this process, and should be read carefully before attempting to use the tools. Note that the tool "otfproof", which is referred to in the "SING Glyphlet Production: technical note is an alias for the "spot" tool included in the GDK. First, the font developer must provide the source glyph outline cvt2sing in the form of an OpenType font. This may be a font specifically created to support glyphlet production or any other OpenType font. Refer to User Manual for the Glyphlet Conversion Tool: cvt2sing for a list of font technologies and native formats that can be used as the source font file. Next, the font developer must create an XML file that contains the gaiji's metadata. An XML file is a specially formatted text file that contains a specific XML tag for each piece of metadata. The file can be created using a standard text editor. If a company has sufficient resources, it may wish to create a utility to generate the XML file. Refer to the SING Glyphlet Specification and the META Table Specification for technical details about the fields that can be specified by the XML file. During the glyphlet conversion process, cvt2sing prints informative messages notifying the user of its progress. If cvt2sing encounters a problem, it prints an error message. Refer to User Manual for the Glyphlet Conversion Tool: cvt2sing for a list of possible error messages. cvt2sing takes the source OpenType font and the XML file and creates a glyphlet file. The selected glyph outlines are converted to Type2/CFF technology. TrueType glyphs are converted without hint information in the resulting CFF glyph. The XML file's contents are parsed and converted into a compact META table in the sfnt structure of the glyphlet file.
Once the glyphlet file has been created, the font developer can use the spot utility to validate both the appearance of the glyphlet as well as the contents of the font tables that it contains. spot is a command-prompt tool, with several options. Refer to OTFproof / spot User's Guide for further details. If the user invokes spot with any of the visual proofing options, spot creates a PostScript file. For options that are used to validate the metadata, spot outputs the information to a report window.