Особенности национального самана
АрхивЕсли бы Кирилл и Мефодий предвидели, с какими трудностями столкнутся потомки славянских народов в эпоху компьютеризации, они бы дважды подумали, прежде чем создавать свой стандарт кодировки символов - кириллицу.
Если бы Кирилл и Мефодий предвидели, с какими трудностями столкнутся потомки славянских народов в эпоху компьютеризации, они бы дважды подумали, прежде чем создавать свой стандарт кодировки символов - кириллицу. Впрочем, был еще более экзотический вариант - не «мефодьица», как можно было бы ожидать в наш век торжества копирайта, но глаголица, которая к кириллице относилась примерно так же, как КОИ-8 относится к Win-1251. Из-за проблем с поддержкой в браузерах ранних версий глаголица была успешно забыта, и остался лишь один вариант, известный нам ныне как кириллица. До наших дней дошла сильно переработанная и усеченная версия этого набора знаков для кодировки славянской письменности, но все же даже такой упрощенный вариант кодовой страницы встречает непонимание у целого ряда программ, в частности у известных пакетов от фирмы Adobe.
Исторически сложилось так, что родным языком создателей ЭВМ, увы, был английский. И первым языком, появившимся на дисплеях, был английский, а точнее - базовый набор латинских букв. Одному отображаемому на экране символу соответствовал один байт. В его 256 значений прекрасно укладывался весь английский алфавит, с заглавными и прописными, знаками препинания и служебными символами, не предназначенными для появления на экране (отсюда и пошло выражение «непечатные слова»). Но у байта оставалась еще масса свободных значений, которые решено было использовать для кодировки всякой всячины: элементарной графики, знаков валют и некоторых малоиспользуемых символов.
Благодарные носители языков, использующие немного или сильно другие алфавиты, для кодировки своего языка выкидывали эту всячину и замещали ее национальными символами. Так, один и тот же шрифт мог нести в себе как латинские, так и национальные символы, в том числе и кириллицу. Это была золотая эра однобайтовых шрифтов, работавших как в офисных, так и в графических программах. Правда, портило картину разногласие между операционными системами DOS\Windows\Unix\Mac в том, какие значения каким символам соответствуют. Но в целом все было нормально.
И тут программисты - конечно же, в неустанной заботе о пользователях - придумали гениальный вариант кодировки символов. Для одного символа было решено использовать не один, а два байта (65535 вариантов числовых значений), что означало возможность создания шрифта, универсального для всех языков, коих на данном этапе истории было немногим больше тысячи. О том, что придумать и отрисовать 65535 написаний символов для разных языков, при этом соблюдая еще и стиль и внешние признаки шрифта, будет непросто, программисты, как обычно, не подумали 1.
Этот метод был назван кодировкой Unicode. Счета были подписаны, работа закипела, и один за другим начали появляться соответствующие шрифты, программы и операционные системы, поддерживающие новый стандарт.
Обычный шрифт (Times New Roman, к примеру) в формате Unicode содержит символы для множества национальных алфавитов: само собой, английского, а также греческого, русского, турецкого и других. Программа, поддерживающая Unicode-шрифты, выбирает нужный вариант в зависимости от предпочтений пользователя (реально - от установок операционной системы). Так работают последние версии Microsoft Office.
Проблема в том, что ряд программ отказывается понимать Unicode-шрифты, и среди них вовсе не случайно оказались программы от Adobe. Дело в том, что Unicode-шрифты сейчас реализуются по технологии TrueType или OpenType, а программы Adobe традиционно ориентируются на работу со шрифтами Type I. И если у вас установлены национальные шрифты в формате Type I, корректные, как минимум укра… взятые из хорошего места, а еще лучше - купленные у производителя, почти никаких проблем с программами Adobe возникнуть не должно.
Но пользователей TrueType-шрифтов, как правило, ждут неприятные сюрпризы, связанные с поддержкой русских символов в Adobe Photoshop, Indesign и, что хуже всего, в Illustrator и при выводе файлов PDF из PageMaker и FrameMaker. Рассмотрим некоторые аспекты национальной шрифтовой проблемы и возможные методы борьбы с ней.
Первые шаги
Как уже было сказано, Adobe-программы ориентированы на использование шрифтов Type I, а точнее, технологии PostScript - формата и языка графического программирования, если можно так выразиться. Поэтому в операционной системе должны быть установлены:
И хотя в Windows уже включены драйверы для PostScript (производства «Билл и Ко»), для серьезной работы хорошо бы иметь установленные драйверы от Adobe (кому как не им знать всю подноготную PostScript). Эти драйверы скачиваются бесплатно с сайта Adobe.
Illustrator 9, Photoshop 5.x, Indesign
Особую нелюбовь к национальным кодировкам проявляет девятая версия Adobe Illustrator. По стечению обстоятельств эта же программа сейчас претендует на место самого мощного векторного редактора (см. www.softerra.ru/review/creative/graphics/9297).
Начнем с того, что программа категорически отказывается перезаписывать файл в своем девятом формате, если путь назначения содержит расширенные или национальные символы (кириллицу, умляуты и прочую местную символику). От этого страдают в равной мере и русские дизайнеры, и чешские, и далекий дон Педро вытирает пот со лба в солнечной Бразилии, безуспешно пытаясь повторно сохранить файл с португальским названием, причем тип платформы (Wintel или Mac) не играет ровным счетом никакой роли. Эта проблема пока никак не лечится, но обойти ее можно тремя путями: либо сохранять все в формате восьмого Illustrator, либо вместо команды «Save…» употреблять «Save As…», либо просто отказаться от привычки использовать русские (национальные) имена для файлов и папок. Я в свое время предпочел третий вариант и с тех пор ни разу не видел назойливое окно «Acrobat PDF file format is having difficulties».
Вторая проблема: не отображаются национальные символы в TrueType-шрифтах. Это характерно для юникодных платформ Windows (NT\2000\Me), Illustrator 9.x и Photoshop 5.x и связано с отсутствием поддержки национальных TTF-шрифтов. На сайте Adobe прямо говорится, что Illustrator 9 не поддерживает интернациональные шрифты TrueType, даже если в операционной системе установлено все необходимое. Жалобы, опять же, идут по всему миру - от Бразилии до Чехии. Счастливое исключение составляют только китайские, японские и корейские шрифты, но нам от этого вряд ли легче.
Первый способ справиться с этим - отредактировать реестр Windows. Делается это так:
Метод тестировался в системах Win9x, и, хотя этот способ встречается в советах чаще других, рекомендую им все же не пользоваться: во-первых, не стоит будить спящего зверя, то есть лишний раз ковыряться в реестре, а во-вторых, этот способ не всегда помогает в случае с Photoshop, а для Illustrator 9, как правило, бесполезен. Вместо этого нужно:
Проделав все эти операции, установите на файле атрибут «Только для чтения» («Read only»). Если вы пользуетесь проводником Windows, это легко сделать: щелкните правой кнопкой по файлу и выберите из меню «Свойства» («Properties»).
Теперь Illustrator при запуске открывает этот файл, читает имена шрифтов и их свойства. Если шрифт в системе есть, а в файле сведений о нем нет, программа обращается к системе за получением необходимых сведений. Так «Иллюстратор» достает из системы национальные символы. Они появляются в списках шрифтов отдельной группой с добавлением в конце имени сокращения «Cyr».
Описанный метод решает проблемы не только с девятым «Иллюстратором», но и с Photoshop 5.x и с Adobe Indesign. Он успешно использовался и доказал свою жизнеспособность на платформах Win2000\NT. Более подробно о функции Adobefnt.lst, а также о «нехороших» шрифтах Type I, работающих в Illustrator с ошибками, и борьбе с проблемами кириллицы в PDF читайте в полной версии статьи на сайте www.softerra.ru.
[i40238]
1 (обратно к тексту) - В ряд с вечными проблемами отцов и детей, преступления и наказания пора поставить еще одну - программистов и дизайнеров!
Проблема кириллических шрифтов многие годы была головной болью всех людей, причастных к издательскому делу и дизайну. В самом деле, если для текстовых редакторов и бизнес-приложений некорректное отображение русскоязычных шрифтов можно было решить заменой оных, поскольку основную роль играло содержание, а не оформление текста, то для любого дизайна и тем более верстки это было смерти подобно. Казалось, несколько лет назад все утряслось: были написаны соответствующие утилиты, созданы коллекции шрифтов с одинаковыми метриками, в том числе и кроссплатформные, разработана система встраивания шрифтов в документы и т. д. Но буквально год назад все вернулось на круги своя: с появлением Unicode- и OpenType-шрифтов и выходом «свежих» версий продуктов от одной известной «глинобитной» компании 1 армия дизайнеров и верстальщиков с удивлением обнаружила разделенные на несколько частей шрифтовые меню и, мягко говоря, непредсказуемость поведения примерно половины шрифтовых коллекций. Из-за этого многие (в том числе и я) так и не стали переходить на последнее поколение «саманов», решив, что лучше проще, да лучше.
Озадачившись этой проблемой, я стал искать решения - и вот результат. Вообще, в «Терре» мы давно стараемся не публиковать «прозаично-конкретных» статей: с открытием кольца наших сайтов все технарство плавно перекочевало в Сеть, однако в данном случае масштабы проблемы столь велики, а значение ее столь немаловажно, что мы решили опубликовать «рецепт» как есть.
Сергей Scout Кащавцев
1 (обратно к тексту) - Adobe, сущ. 1) саман (кирпич воздушной сушки, необожженный кирпич), 2) глинобитное строение, саманное строение.