Вход:  Пароль:  
FreeSource: StcWiki/ProkolyUcs8 ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |

Выявленные проколы проектирования UCS8


Собственно говоря, крупных проколов найдено два: неудачный выбор аббревиатуры кодировки (UCS) и неудачное решение с монолитностью оу.


1. Неудачный выбор названия

Месяца через три после объявления о кодировке было обнаружено, что “UCS” имеет довольно распространенного тезку: Unified Character Set — базовое понятие из области Юникода. Фактически, это синоним Юникода. Позже мне на это начали указывать пользователи. Кроме того, в C++ Builder и Delphi имеются типы данных UCS2Char, UCS4Char, UCS2String, UCS4String... Короче, это не просто совпадение, а совпадение с распространенным сокращением. Обидно также, что его могло бы не быть, не сократи мы нашу аббревиатуру ради благозвучности. Unified Church Slavonic ENCODING, UCSE — таков был полный вариант названия, но мне не понравилось окончание на «Е» (вспомнилась «ПАСЕ"), и было оставлено только три буквы, тем более что проговаривались они гораздо проще.


2. Неудачный выбор решения с «оу» в пользу монолитного исполнения этого диграфа

Этот прокол — более тонкий, и в качестве частичного оправдания могу предъявить то обстоятельство, что проектировщики кириллической части Юникода также его допустили. Он имеется почти во всех известных мне «частных» церковно-славянских КШС и шрифтах. Короче, наступает на эти грабли подавляющее большинство. Моя собственная инерция была столь велика, что наткнулся я на этот прокол лишь совсем недавно, когда начал делать поддержку произвольной разрядки для UCS, и уже написал три четверти необходимого кода.


В чем заключается проблема? В UCS8 диграф «оу» во всех регистрах и лигатурах выполнен в виде единых, монолитных символов, занимающих по одному знакоместу. Между тем, это вполне очевидное решение является неправильным по целому ряду причин. Можно долго спорить, являются ли компоненты «о» и «у» из «оу» в ново-ЦС самостоятельными графемами, или же они настолько же неделимы, как, скажем, компоненты бывшей некогда двумя символами буквы «ы». При проектировании КШС семантика графических знаков не играет никакой роли и игнорируется, если она входит в противоречие с правилами отображения и форматирования символов в тексте выбранной письменности.


Попытаюсь объяснить это понятнее. Для наглядности я буду сравнивать «оу» с традиционно монолитным и сегодня, и в ново-ЦС символом «ы». Есть три существенных момента:



В противовес этому i-компонента буквы «Ы» всегда пишется в том же регистре, в котором употребляется Ь-компонента. Ну, напрягите воображение и представьте слово, начинающееся на «ы» с заглавной буквы.



В противовес этому ь- и i-компоненты в «ы» не отбиваются никогда, ни в современном письме, ни в ново-ЦС.


В противовес этому надстрочники над «ы» располагаются между компонентами этого символа — примерно посередине. То есть, так, как это происходит в «ю», «iа» и прочих давно уже монолитных даже по изображению символах. Налицо явное отличие от «оу».

Конечно, на это можно возразить, что придыхание в церковнославянском языке может находиться только над первой гласной буквой слова, а никак не над второй. Таковы правила ЦС графики, унаследованные от греческого письма, в котором придыхания и ударения пишутся над вторым компонентом дифтонгов.

Однако в греческом письме дифтонг ov никто не предлагает считать единой буквой. Ни в одной официальной или распространенной неофициальной КШС греческого письма дифтонги никогда не реализовывались «монолитным» символом. Да и в греческом алфавите официально такой буквы – ov – нет. А в славянском с легкой руки автора какой-то древней азбуки и вплоть до Гамановича и современных учебников букву – о_у – упорно помещают во всех таблицах алфавита ЦС. Впрочем, в данном случае это и неважно. Мы же договаривались не принимать во внимание никаких лингвистических аспектов ЦС азбуки? Для нас сейчас важно только то, что «о_у», формально объявленная как «полноправная буква», на практике набора не ведет себя как буква.

Резюме

С точки зрения любой системы отображения и форматирования текстов «о» и «у» в «оу» ведут себя как отдельные символы. Любой из первых двух пунктов даже сам по себе будет являться веской причиной реализовывать компоненты отдельными символами.


В данном случае я не имею в виду более высокий уровень работы с текстами – ввод и редактирование. Здесь, возможно, для удобства пользователя придется связать эти компоненты, сделать поведение и реакцию системы на изнутри разъединенные компоненты такой, как если бы они составляли единый символ. Однако это вовсе не обязывает в шрифтах делать «оу» монолитными.


Далее, вопросы кернинга также не препятствуют разъединению диграфа «оу». Поскольку надстрочники в «оу» никогда не ставятся над «о», разрывающий кернинг-пару накладной надстрочник никогда не встретится между «о» и «у».


Что можно было бы сделать, если бы мы пока что еще не приняли UCS официально




Сейчас в стандарте UCS имеются следующие буквы и лигатуры:


Отмечу, что в UCS отсутствуют знаки для «ОУ». Написать «ОУ» можно лишь, перейдя на капитализированное начертание.

Вместо этого в новом стандарте будут такие буквы:


Таким образом освобождается 2 знакоместа, причем это будет регистровая пара.

Новая кодировка не так уж сильно будет отличаться от старой: изменения коснутся лишь слов, начинающихся на «оу», в которых будет отсутствовать начальное «о». Поскольку на практике нелегко будет сразу разобраться, в какой кодировке набран текст: в новой или в старой, — лучше будет совместить обе предлагаемых реформы: замену аббревиатуры UCS и расчленение диграфа «оу». Замечу, что и после реформ старые тексты при установленных старых (ныне еще не старых, UCS) шрифтах останутся читаемыми.


Вне зависимости от того, будут ли приняты эти предложения или нет, все выявленные проколы однозначно необходимо учесть при разработке новых кодировок, — начиная с иного наименования и заканчивая, возможно, предложением корректирующего дополнения в Юникод по поводу «оу».


На главную страницу StcWiki


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]