// Copyright (c) Six Labors. // Licensed under the Six Labors Split License. namespace SixLabors.Fonts.Unicode { /// /// Unicode East_Asian_Width property values. /// /// /// /// East_Asian_Width is a Unicode character property used when interoperating with /// East Asian legacy encodings and typography. The property has six default values, /// but any operation that needs a display-cell width must still resolve those values /// to a context-specific narrow or wide result. /// public enum EastAsianWidthClass { /// /// Neutral (N): characters that are not East Asian for this property. /// /// /// Neutral characters are not normally found in legacy East Asian character sets or /// traditional East Asian typography. UAX #11 recommends treating them like narrow /// characters for practical resolved-width decisions, but the property value itself /// is distinct from . /// Neutral = 0, /// /// Ambiguous (A): characters that can be either wide or narrow depending on context. /// /// /// Ambiguous characters need extra information, such as language, script, font, /// source encoding, or explicit markup, before they can be resolved to a display /// width. In East Asian legacy contexts they may be treated as wide; /// otherwise UAX #11 recommends treating them as narrow by default. /// Ambiguous = 1, /// /// Fullwidth (F): explicitly encoded fullwidth compatibility characters. /// /// /// Fullwidth characters have a compatibility decomposition of type <wide> /// to another Unicode character that is implicitly narrow. They exist to preserve /// round-tripping with mixed-width East Asian legacy encodings. /// Fullwidth = 2, /// /// Halfwidth (H): explicitly encoded halfwidth compatibility characters. /// /// /// Halfwidth characters have a compatibility decomposition of type <narrow> /// to another Unicode character that is implicitly wide, with the special case of /// U+20A9 WON SIGN. They are distinct from ordinary narrow characters because they /// can still behave like East Asian compatibility forms for font selection and some /// punctuation behavior. /// Halfwidth = 3, /// /// Narrow (Na): characters that are always narrow and have explicit wide or fullwidth counterparts. /// /// /// Narrow characters are implicitly narrow in East Asian typography and legacy /// character sets. ASCII is the common example: the ordinary ASCII code points are /// Narrow, while their compatibility forms are Fullwidth. /// Narrow = 4, /// /// Wide (W): characters that are always wide in East Asian typography. /// /// /// Wide characters behave like ideographs for East Asian layout. This includes /// many Han, Kana, Hangul, and emoji-presentation characters that are not encoded /// as explicit Fullwidth compatibility forms. /// Wide = 5 } }