2004 г.
Windows&Fonts. Как Windows управляет шрифтами
Лев Гордеев
http://www.izcity.com/,
Как правило, пользователям приходится
время от времени сталкиваться с проблемами комплектования шрифтами, выбора шрифта
для той или иной работы и т.п. Здесь я делюсь некоторым опытом и соображениями
в решении подобных вопросов на примере системы Windows98SE.
Стандартный набор средств Windows очень
скромен, но для многих пользователей и для многих приложений достаточен по своим
возможностям. Собственно он состоит всего из двух компонент: системной папки Fonts
(Шрифты) и программы Charmap (лежит непосредственно в папке Windows)
Системная папка Fonts
Системная папка Fonts – это один из
сервисов Windows - называется системным потому, что она является органическим компонентом
Windows, имеет активную связь с другими компонентами ОС, в первую очередь с реестром,
и называется папкой, потому что по форме и содержанию очень похожа на обычную папку.
Откройте Control Panel\Fonts (Шрифты).
Перед Вами предстанет перечень всех установленных в системе шрифтов, подберите удобный
«вид» (я предпочитаю «список») и полюбуйтесь.
Слева внизу скромные маленькие цифры
– это количество установленных шрифтов, хорошо, если количество соответствует рекомендациям
части 1 (Izone 518). Команды из меню «Файл» позволяют удалять неугодные шрифты или
добавлять шрифты из любых других директорий и дисков, доступ к которым открывается
из подменю «установить шрифт».
Два клика левой кнопкой по названию
шрифта открывают окно с информацией: наименование, размер файла, начертания всех
символов (малюсенькие, но всё-таки различимые). Имеется образец дивного спецтекста,
зато содержащего все символы алфавита, или образец наименования операционной системы;
и вся эта странная красота для удобства восприятия представлена в куче масштабов.
Случается, что системная папка утрачивает
в своём меню специфичные для неё пункты (например, "Установить новый шрифт"). Причина
может быть одной из перечисленных:
- атрибут "Системный" не установлен на папке «Fonts»;
- файл Fontext.dll в папке Windows\System отсутствует
или повреждён;
- файл Desktop.ini в папке Windows\Fonts отсутствует
или повреждён.
Для восстановления системного атрибута
на каталоге «Fonts» следует перейти в сеанс MS-DOS, в каталоге Windows выполнить
команду
ATTRIB FONTS +S и перезагрузить компьютер.
Для восстановления файлов Fontext.dll
и Desktop.ini их можно в сеансе MS-DOS извлечь из инсталляционного комплекта
с помощью программы Extrac32.exe (находится в папке Windows). Для всех этих дел
можно загрузится с дискеты, открыть досовский файл-менеджер (DOS-Navigator, например)
и всё легко в нём выполнить. Также возможно восстановление файлов Fontext.dll
и Desktop.ini путём перезаписи из соответствующих папок директории Windows
любого работающего компьютера (с помощью банальной дискеты). Однако практикуется
также такой кровавый метод, как переустановка системы по-горячему, т.е. поверх действующей.
Впрочем, иногда он предпочтительнее, так как требует меньше навыков, а заодно может
помочь справиться с другими проблемами.
Полный перечень шрифтов можно также
увидеть в папке Fonts (в директории Windows). Уже беглое сравнение вызывает некоторое
недоумение: очень похоже на содержание системной папки, но всё же не то. В действительности
и там, и там доступны одни и те же шрифты, но в системной папке приведены наименования
шрифтов, а в папке Windows наименования файлов, содержащих шрифты. Конечно,
было бы естественным совпадение этих наименований, однако, как правило, они только
похожи, вернее, позволяют вычислить или угадать, какие из них относятся к одному
и тому же шрифту. Это разработчики, а чаще переработчики шрифтов вносят сознательно,
а иногда вынуждены вносить разнобой в наименованиях. В частности при доработках,
связанных, например, с дополнением в шрифт кириллических или других региональных
начертаний.
Но стоит открыть раздел реестра
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\ Fonts, всмотреться,
и станут доступны взору и пониманию связь между обеими папками – реестр объединяет
их. Каждая строка реестра содержит в качестве параметра запись из папки Windows\Fonts
и в качестве значения запись из системной папки. Так что противопоставлять различия
в содержании системной папки Fonts содержанию папки Windows\Fonts не следует – один
и тот же перечень выступает в разных видах.
Charmap
Назначение этой маленькой программки
показать одновременно все символы выбранного шрифта. Иногда это бывает просто интересно,
но чаще это бывает и необходимо, например, в том случае, когда требуется ввод символа,
не имеющего своей клавиши на клавиатуре: знака умножения « ´ », символа градуса
температуры « ° », или когда очень хочется изобразить греческую букву дельта
« d ».
Открывается программа, выбирается шрифт,
греющий взор и душу, выделяется мышкой нужный символ, а в правом нижнем углу появляется
код этого символа. Например, Alt+0188. Имейте в виду – это левый Alt и цифры дополнительной
(правой) клавиатуры. Символ окажется впечатанным в Ваш текст, как только отпустите
все кнопки. Есть и другой метод, это с помощью кнопок окна программы занести выбранный
символ в клипбод, а потом воспользоваться по усмотрению.
В кодах, так называемых дополнительных
(не привязанных к кнопкам клавиатуры), символов различных шрифтов царит беспорядок,
даже полный беспорядок. И символы разные, и коды разные, и масса неиспользуемых
кодов – весь этот беспорядок бросается в глаза при рассмотрении таблиц Charmap’а.
Но самая главная беда не эта, а та, что часто на экран и, соответственно, на печать
выводится совсем не тот символ, какой показывает Charmap. Это грех файлов шрифтов,
его источник, видимо, лежит в пиратском происхождении большинства распространяемых
у нас шрифтов, в их неаккуратной переработке на разных этапах адаптации к нашей
жизни.
Всмотритесь в таблицы Ваших декоративных
шрифтов. Наверняка большинство из них имеют крайне бедный набор дополнительных символов,
а некоторые лишены их вовсе. Но большой беды в этом нет - вряд ли у кого-нибудь
возникнет потребность в текст приглашения на свадьбу, набранного декоративным шрифтом,
вносить такой ‰ или такой Ђ дополнительные символы.
Назад... Далее...