| Microsoft Typography | Developer information | Specifications | OpenType font development | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Syriac OpenType Specification | Terms | Shaping | Features | Other | Appendix | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The features listed below have been defined to create the basic forms for the languages that are supported on Syriac systems. Regardless of the model an application chooses for supporting layout of complex scripts, Uniscribe requires a fixed order for executing features within a run of text to consistently obtain the proper basic form. This is achieved by calling features one-by-one in the standard order listed below. The order of the lookups within each feature is also very important. For more information on lookups and defining features in OpenType fonts, see Encoding feature information in the OpenType font development section. The standard order for applying Syriac features encoded in OpenType fonts:
Feature Tag: "ccmp" The 'ccmp' feature is used to compose a number of glyphs into one glyph, or decompose one glyph into a number of glyphs. This feature is implemented before any other features because there may be times when a font vender wants to control certain shaping of glyphs. An example of using this table is seen below. The 'ccmp' table maps default alphabetic forms to both a composed form (essentially a ligature, GSUB lookup type 4), and decomposed forms (GSUB lookup type 2).
Splitting the character into two glyphs, a dot above and a dot below, allows the dots to correctly float above and below any glyph without having to make many forms of the U+0732 character.
Feature Tag: "isol" The 'isol' feature is used to map the Unicode character value to its isolated form. This is usually the same glyph form. (GSUB lookup type 1).
Estrangelo style font
Feature Tag: "fina" The 'fina' feature is used to map the Unicode character value to its final form. (GSUB lookup type 1).
Feature Tag: "fin2" The 'fin2' feature is used to replaces the 'Alaph' glyph at the end of Syriac words with its appropriate form, when the preceding base character cannot be joined to, and that preceding base character is not a 'Dalath', 'Rish', or dotless 'Dalath-Rish'. The 'fin2' table maps default alphabetic forms to corresponding final forms (GSUB lookup type 5). This feature is used only for the Syriac script 'Alaph' character.
Example: When an 'Alaph' is preceded by a He (one of Syriac’s right-joining only characters), the 'Alaph' would be replaced by the ‘fin2’ non-joining form (instead of the joining ‘fina’ form).
Feature Tag: "fin3" The 'fin3' feature is used to replaces 'Alaph' glyphs at the end of Syriac words when the preceding base character is a 'Dalath', 'Rish', or dotless 'Dalath-Rish'. The 'fin3' table maps default alphabetic forms to corresponding final forms (GSUB lookup type 5). This feature is used only for the Syriac script 'Alaph' character.
Example: When an 'Alaph' is preceded by a 'Dalath', the 'Alaph' would be replaced by the ‘fin3’ non-joining form (instead of the joining ‘fina’ form).
Feature Tag: "medi" The 'medi' feature is used to map the Unicode character value to its medial form. (GSUB lookup type 1).
Estrangelo style font
Feature Tag: "med2" The 'med2' feature is used to replace the 'Alaph' glyph in the middle of Syriac words when the preceding base character cannot be joined to. The 'med2' table maps default alphabetic forms to corresponding medial forms (GSUB lookup type 5). This feature is used only for the Syriac script 'Alaph' character.
Example: When an 'Alaph' is preceded by a 'Waw', the 'Alaph' would be replaced by the ‘med2’ non-joining form (instead of the joining ‘medi’ form).
Feature Tag: "init" The 'init' feature is used to map the Unicode character value to its initial form. (GSUB lookup type 1).
Estrangelo style font
Feature Tag: "rlig" The 'rlig' feature is used to map glyph values to their correct ligated form. Font developers should use this table for all ligatures that they want to map as such all of the time. Ligatures that should be optional, based on user preferences should not be included in this table. Optional ligatures are defined in the 'liga' table. The 'rlig' feature maps sequences of glyphs to corresponding ligatures (GSUB lookup type 4). Ligatures with more components must be stored ahead of those with fewer components in order to be found. See Ordering ligatures in the Encoding Feature Information section. The set of required ligatures will vary by design and script.
Estrangelo style font
Feature Tag: "calt" In specified situations, replaces default glyphs with alternate forms that provide better joining behavior. Used in script typefaces which are designed to have some or all of their glyphs join. The 'calt' table specifies the context in which each substitution occurs, and maps one or more default glyphs to replacement glyphs (GSUB lookup type 6). "Example: If a Gamal is preceded by a Teth, a short expansion glyph is inserted between the glyphs for a better connection (to prevent the characters from crashing). In the picture, uni0713.fina is substituted with uni0640.short + uni0713.fina when the context of the letter before is uni071B.init.
Serto style font
Feature Tag: "liga" The 'liga' feature is used to map glyphs to their optional ligated form. Font developers should use this table for all ligatures that they want the user to be able to control by user preference. Uniscribe has a flag that will allow this type of feature to be deactivated. The 'liga' feature maps sequences of glyphs to corresponding ligatures (GSUB lookup type 4). Ligatures with more components must be stored ahead of those with fewer components in order to be found. See Ordering ligatures in the Encoding Feature Information section. The set of optional ligatures will vary by typeface design and script. Note: Ligatures that should be formed all of the time should not be included in this feature type. Required ligatures are defined in the 'rlig' table.
Estrangelo style font
Feature Tag: "dlig" The 'dlig' feature is also used to map glyphs to their optional ligated form. Font developers should use this table for all ligatures that they want the user to be able to control by user preference. Uniscribe has a flag that will allow this type of feature to be deactivated. The 'dlig' feature maps sequences of glyphs to corresponding ligatures (GSUB lookup type 4). Ligatures with more components must be stored ahead of those with fewer components in order to be found. See Ordering ligatures in the Encoding Feature Information section. The set of optional ligatures will vary by typeface design and script.
Serto style font
Feature Tag: "kern" The 'kern' feature is used to adjust amount of space between glyphs, generally to provide optically consistent spacing between glyphs. Although a well-designed typeface has consistent inter-glyph spacing overall, some glyph combinations require adjustment for improved legibility. Besides standard adjustment in either horizontal or vertical direction, this feature can supply size-dependent kerning data via device tables, "cross-stream" kerning in the Y text direction, and adjustment of glyph placement independent of the advance adjustment. Note that this feature would not be used in monospaced fonts. The font stores a set of adjustments for pairs of glyphs (GPOS lookup type 2 or 8). These may be stored as one or more tables matching left and right classes, and/or as individual pairs. If both forms are used, the classes should be listed last, so as to provide a means to replace any non-ideal values that may result from the class tables. Additional adjustments may be provided for larger sets of glyphs (e.g., triplets, quadruplets, etc.) to overwrite the results of pair kerns in particular combinations. These should precede the pairs.
Creating kern table using Microsoft VOLT
Feature Tag: "mark" The 'mark' feature positions mark glyphs in relation to a base glyph, or a ligature glyph. This feature may be implemented as a MarkToBase Attachment lookup (GPOS LookupType = 4) or a MarkToLigature Attachment lookup (GPOS LookupType = 5).
Positioning mark to base using Microsoft VOLT
Feature Tag: "mkmk" The 'mkmk' feature positions mark glyphs in relation to another mark glyph. This feature may be implemented as a MarkToMark Attachment lookup (GPOS LookupType = 6).
Positioning mark to mark using Microsoft VOLT
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Syriac OpenType Specification | Terms | Shaping | Features | Other | Appendix | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Microsoft Typography | Developer information | Specifications | OpenType font development | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||