В вычислениях CJK (китайский, японский и корейский) графические символы традиционно классифицируются как полноширинные [a] и полуширинные [b] . В отличие от моноширинных шрифтов полуширинный символ занимает половину ширины полноширинного символа, отсюда и название.
Формы половинной и полной ширины — это также название блока Unicode U+FF00–FFEF, предоставленного для того, чтобы старые кодировки, содержащие как символы половинной, так и полной ширины, могли без потерь преобразовываться в Unicode и обратно.
В дни текстового режима вычислений западные символы обычно располагались в сетке на экране, часто 80 столбцов по 24 или 25 строк. Каждый символ отображался как небольшая точечная матрица , часто шириной около 8 пикселей , а для кодирования символов западных языков обычно использовался SBCS (однобайтовый набор символов).
По эстетическим причинам и для удобства чтения предпочтительнее, чтобы китайские иероглифы были приблизительно квадратной формы, то есть вдвое шире, чем эти символы SBCS фиксированной ширины. Поскольку они обычно кодировались в DBCS (двухбайтовый набор символов), это также означало, что их ширина на экране в двухширинном шрифте была пропорциональна их длине в байтах. Некоторые терминалы и программы редактирования не могли работать с двухбайтовыми символами, начинающимися с нечетных столбцов, только с четных (некоторые даже не могли поместить двухбайтовые и однобайтовые символы в одну строку). Поэтому наборы DBCS обычно включали также римские символы и цифры для использования вместе с символами CJK в одной строке.
С другой стороны, ранние японские вычисления использовали однобайтовую кодовую страницу JIS X 0201 для катаканы . Они отображались с той же шириной, что и другие однобайтовые символы, что делало их полуширинными символами каны, а не пропорциональными канами. Хотя сам стандарт JIS X 0201 не определял полуширинное отображение для катаканы, это стало визуально отличительной чертой в Shift JIS между однобайтовой JIS X 0201 и двухбайтовой JIS X 0208 катаканой. Некоторые кодовые страницы IBM использовали похожую обработку для корейской джамо [1] , основанную на N-байтовом коде хангыль и его переводе в EBCDIC .
Для совместимости с существующими наборами символов, содержащими как половинные, так и полноширинные версии одного и того же символа, Unicode выделил один блок в U+FF00–FFEF, содержащий необходимые символы «альтернативной ширины». Это включает полноширинные версии всех символов ASCII и некоторые знаки препинания, не входящие в ASCII, такие как знак йены, полуширинные версии катаканы и хангыля , а также полуширинные версии некоторых других символов, таких как круги. Были выделены только символы, необходимые для безпотерьного кругового перемещения в существующие наборы символов, вместо (например) создания полноширинной версии каждого латинского акцентированного символа.
Unicode присваивает каждой кодовой точке свойство "Восточноазиатская ширина" . Это может быть: [2]
Эмуляторы терминала могут использовать это свойство, чтобы решить, должен ли символ занимать один или два «столбца» при определении табуляции и положения курсора.
OpenType имеет теги функций fwid
, halt
, hwid
, и vhal
, которые используются для воспроизведения полноширинной или полуширинной формы символа. CSS обеспечивает управление этими функциями с помощью свойств font-variant-east-asian
и . [3]font-feature-settings