Variant form (Unicode)
A variant form is a different glyph for a character, encoded in Unicode through the mechanism of variation sequences: sequences in Unicode that consist of a base character followed by a variation selector character.
A variant form usually has a very similar appearance and meaning as its base form. The mechanism is intended for variant forms where, generally, if the variant form is unavailable, displaying the base character does not change the meaning of the text, and may not even be noticeable by many readers.
Unicode defines two types of variation sequences:
- Standardized variation sequences defined in StandardizedVariants.txt[1]
- Ideographic variation sequences defined in the Ideographic Variation Database (IVD)[2][3]
Variation selector characters reside in several Unicode blocks:
- Variation Selectors (16 characters abbreviated VS1–VS16)
- Variation Selectors Supplement (240 characters abbreviated VS17–VS256)
- Mongolian (3 characters abbreviated FVS1–FVS3)
Variation selectors are not required for Arabic and Latin cursive characters, where substitution of glyphs can occur based on context: glyphs may be connected together depending on whether the character is the initial character in a word, the final character, a medial character or an isolated character. These types of glyph substitution are easily handled by the context of the character with no other authoring input involved. Authors may also use special-purpose characters such as joiners and non-joiners to force an alternate form of glyph where it would not otherwise appear. Ligatures are similar instances where glyphs may be substituted simply by turning ligatures on or off as a rich text attribute.
For other glyph substitution, the author's intent may need to be encoded with the text and cannot be determined contextually. This is the case with character/glyphs referred to as gaiji, where different glyphs are used for the same character either historically or for ideographs for family names. This is one of the gray areas in distinguishing between a glyph and a character: If a family name differs slightly from the ideograph character it derives from, then is that a simple glyph variant or a character variant?
Character substitutions may also occur outside of Unicode, for example with OpenType Layout tags.[4]
Blocks with standardized variation sequences
As of Unicode 15.0, standardized variation sequences specifically for emoji/text presentation are defined for base characters in twenty blocks:[1]
- Arrows
- Basic Latin
- CJK Symbols and Punctuation
- Dingbats
- Emoticons
- Enclosed Alphanumeric Supplement
- Enclosed Alphanumerics
- Enclosed CJK Letters and Months
- Enclosed Ideographic Supplement
- General Punctuation
- Geometric Shapes
- Latin-1 Supplement
- Letterlike Symbols
- Mahjong Tiles
- Miscellaneous Symbols
- Miscellaneous Symbols and Arrows
- Miscellaneous Symbols and Pictographs
- Miscellaneous Technical
- Supplemental Arrows-B
- Transport and Map Symbols
Other standardized variation sequences are formed with base characters in the following fourteen blocks:[1]
- CJK Unified Ideographs
- CJK Unified Ideographs Extension A
- CJK Unified Ideographs Extension B
- Egyptian Hieroglyph Format Controls
- Egyptian Hieroglyphs
- Halfwidth and Fullwidth Forms
- Manichaean
- Mathematical Alphanumeric Symbols
- Mathematical Operators
- Mongolian
- Myanmar
- Myanmar Extended-A
- Phags-pa
- Supplemental Mathematical Operators
Blocks with ideographic variation sequences
As of 13 September 2022[update], ideographic variation sequences are defined for base characters in nine blocks:[2][3]
- CJK Compatibility Ideographs
- CJK Unified Ideographs
- CJK Unified Ideographs Extension A
- CJK Unified Ideographs Extension B
- CJK Unified Ideographs Extension C
- CJK Unified Ideographs Extension D
- CJK Unified Ideographs Extension E
- CJK Unified Ideographs Extension F
- CJK Unified Ideographs Extension H
See also
References
- ^ a b c "UCD: Standardized Variation Sequences". Unicode Consortium.
- ^ a b "Ideographic Variation Database". Unicode Consortium.
- ^ a b "UTS #37, Unicode Ideographic Variation Database". Unicode Consortium.
- ^ "Language system tags". Microsoft.