Предыдущий раздел
К оглавлению
Глоссарий
Следующий раздел

Общее описание кодировки

Расположение основных символов

Основой для 8-битных приложений выбирается кодировка 1251. В кодовых позициях, соответствующих этой кодировке, размещаются все символы, необходимые для 8-битных приложений -- насколько хватит места. Далее, для 16-битных программ на позициях, регламентированных Юникодом для ЦС-символов, также помещаются нужные символы церковно-славянского алфавита. При расположении символов для 8-битных приложений учитывается то обстоятельство, что Юникодный диапазон, выделенный под ЦС-символы, имеет пересечение с 1251 (это, в частности, почти весь русский алфавит, а также несколько символов национальных славянских алфавитов). Предпочтение при коллизиях отдается Юникоду и 16-битным приложениям (даже если следствием оказывается некоторое увеличение "риска" вытесняемых "8-битных" символов). С другой стороны, не все ЦС-позиции Юникода доступны из 1251 (и вообще из какой-либо кодовой страницы, следовательно, вообще из 8-битных приложений); такие символы нужно дублировать в позициях 1251, свободных от пересечения юникодного ЦС-диапазона, при этом по возможности на безрисковых позициях, и с учетом регистровой парности.

Для примера рассмотрим расположение , и по описанным принципам. Символ располагается на "А кириллическом строчном" (это соответствие предусмотрено Unicode), юникод-индекс 0430, ASCII-код в 1251 -- 224. Символ "а" принадлежит кодовой странице 1251 и без проблем вводится с клавиатуры стандартной русской раскладкой. Этот случай можно считать наиболее удачным.

Символ , согласно Unicode, располагается на CYRILLIC SMALL LETTER DZE (0455); этот символ имеется в 1251 (код 190), однако при помощи одной стандартной русской раскладки ввести его нельзя. Тем не менее, согласно описанному принципу мы располагаем его на позиции 190, а не на кажущейся наиболее удачной 115 (латинское s).

Для символа Юникодом предусмотрен CYRILLIC SMALL LETTER LITTLE YUS (0467). Его нет в 1251 и вообще в какой-либо кодовой странице, поэтому в 8-битной кодировке мы располагаем его на любой подходящей свободной позиции; например, на букве "z". Помещать его на "я" нельзя, ибо на CYRILLIC SMALL LETTER YA (044F) Юникодом полагается помещать . Жаль, ибо в церковно-славянских текстах встречается гораздо чаще, чем . Однако, поместив на "я", мы гарантируем себе проблемы совместимости с Unicode в будущем.

 

Надстрочные знаки и лигатуры. Правила набора и их необходимость

Вследствие особенностей церковно-славянского письма (обширность диакритики, нехарактерная для современных гарнитур форма символов), для качественной полиграфии потребуется множество лигатур вида "буква-надстрочник". Для 16-битных приложений мы в состоянии разместить полный набор даже теоретически маловероятных лигатур в свободной зоне; 16-битное пространство вполне позволяет реализовать полнолигатурный метод с большим запасом. В 8-битной же кодовой странице места для такого решения не хватит. Поэтому для 8-битных приложений ряд позиций 1251 выделяется под накладные надстрочники. Предусматривается минимум два накладных надстрочника на каждый возможный надстрочный знак, для букв большого и малого регистров. Оставшееся (после добавления также знаков препинания) место занимается лигатурами, состав которых тщательно продумывается.

Для каждой подобной лигатуры имеется следующая неоднозначность: букву с надстрочником можно набрать как в виде цельной лигатуры, так и в виде "буква"+"составной надстрочник". Правильно набранным текстом будем считать тот, в котором лигатуры использованы везде, где предусмотрены. Именно это правило позволит менять шрифт текста без боязни, что в новой гарнитуре надстрочники "поплывут". Неважно, что в данном конкретном шрифте, несмотря на предусмотренную лигатуру, пара "буква"+"составной надстрочник" и так смотрятся красиво. Главное, что существует шрифт, где эта пара смотреться красиво не будет, и именно в силу этого обстоятельства данная лигатура внесена в столь тесное кодовое пространство.

(Обеспечение правильного ввода не является прерогативой обсуждения кодировки. Однако, мы не собираемся предоставлять просто кодировку без оболочки из необходимых инструментов. Кое-что из инструментария ввода и редактирования имеется, например, здесь. Забегая вперед, скажу, что кодировка будет проектироваться практически без учета возможности ввода в отсутствие вспомогательного инструментария, одними стандартными системными средствами.)

Здесь же, и только здесь учитывается специфика набираемого 8-битной частью кодировки текста. Предполагается, что это конец 19 века, без древних юсов, с "нормальным" употреблением "уков" относительно начала слова, с нормальной диакритикой и с не слишком расширенным набором букво-титл. Проще говоря, грамматика текста ограничивается новоцерковно-славянский языком. Более подробное перечисление возможностей 8-битной части кодировки будет дано далее.

Увы, для цифр места в 8-битной странице не остается. Их судьба пока не решена.

 

Капшрифты

С целью экономии места в 8-битной кодировке пришлось также прибегнуть к специальному приему при наборе капитализированного текста (текста, набранного одними заглавными буквами). В церковно-славянских текстах такой вид набора встречался мне в двух случаях: в заголовках и колонтитулах, и в качестве выделения титулов при перечислении Царствующей семьи в издательских данных -- внутри текста. Первый случай обычно предполагает или использование отдельного от основного текста шрифта, или... в общем, заголовок -- он обособлен, находится вне основного текста, и как-то относительно текста выделяется, либо гарнитурой, либо кеглем. А второй случай -- совсем уж редкий, издательские данные обычно одни на все издание, да и вряд ли кто-то сейчас будет их перенабирать со всей Царской семьей при переиздании.

С другой стороны, капитализированный текст так же, как и обычный, требует для обеспечения своей красоты определенный набор лигатур.

Поэтому для участков текста в заглавном регистре решено было организовавыть отдельные шрифты. Правила при этом следующие:

Думаю, последнее правило не слишком осложнит набор. Заголовки все равно нужно как-то выделять, так что шрифт пришлось бы менять по любому. Ну а внутри текста... я уже говорил.

 

Разрядка и трекинг

Очевидно, применение трекинга к тексту, набранному в описываемой кодировке, недопустимио, ибо это действие нарушит оптимальное положение накладных надстрочников над буквами. Как было сказано в сравнительном анализе различных методов реализации надстрочников, выключка за счет межбуквенных пробелов в старопечатных изданиях не применялась. Вместо этого использовалось увеличение междусловных пробелов и переносы. С учетом этого при проектировании 8-битного слоя было принято непростое решение отказаться от возможности корректного трекинга произвольной величины. Препятствий для применения стандартного механизма трекинга два: наличие накладных надстрочников и цельносимвольное представление букв . Первый момент еще предусматривает какие-то решения, наподобие специальной надстройки, обеспечивающей имитацию трекинга за счет включения/выключения трекинга в нужных местах текста. Второй момент выбора не оставляет никакого.

Для формирования разрядки в тексте предлагается следующее решение. Наряду с основным шрифтом дизайнер должен предоставлять также специальное начертание для набора текста вразрядку. Оно обладает следующими свойствами:

а) расположение и форма символов в этом тексте повторяет исходное начертание;

б) правые и левые полуапроши букв и знаков препинания увеличены на половину разрядочного интервала (о нем далее);

в) контуры символов накладных надстрочников смещены влево на половину разрядочного интервала.

Величина, на которую увеличиваются полуапроши и смещаются надстрочники, составляет собственно величину разрядки. Очевидно, она фиксирована, а потому должна подбираться дизайнером тщательно и с умом. Описанное разрядочное начертание для единообразия должно оформляется как курсивное начертание основного шрифта.

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

Если у дизайнера есть желание, он может развить идею разрядочного начертания и учесть особенности отбивки знаков препинания. По правилам верстки знаки препинания, находящиеся справа от букв в разреженных фрагментах, отбиваться от букв не должны. Это же касается знаков, примыкающих к буквам непосредственно слева (открывающие скобки, кавычки, кавыка и подобное). Все это можно в разумных пределах учесть уже в самом шрифте. Для этого достаточно:

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

б) для всех знаков препинания, способных примыкать к букве слева (скобки, кавычки и пр.), задавать серию кернингов, компенсирующих отбивочный интервал у букв. То есть, необходимо определить ряд сдвигающих кернинг-пар вида (знак препинания, буква) на величину, равную половине величины отбивки букв. Аналогично поступают с "правыми" и "обесторонними" знаками.

Со стороны же пользователья потребуется лишь не забыть включить кернинг в районе разреживаемого текста.

 

 

Достоинства объединения кодировок

 

Недостатки похода

 

Предыдущий раздел
К оглавлению
Глоссарий
Следующий раздел