- •Глава 1
- •Шрифтовое дело в России
- •Графические характеристики шрифта
- •Принципы классификации шрифта
- •Шрифтовая система измерений
- •Глава 2
- •Эстетика и удобочитаемость шрифта
- •Некоторые последствия наступления цифровой эпохи
- •Требование удобочитаемости
- •Факторы, влияющие на скорость чтения
- •Основные требования к шрифту
- •Назначение и срок службы издания
- •Зачем нужны медленно-читаемые шрифты
- •Дизайнер и информационное общество
- •Читабельность технических шрифтов
- •«Акцидентные» и «наборные» печатные шрифты
- •Традиционная оценка удобочитаемости, характерности или нейтральности, употребимости, прозрачности гарнитур некоторых шрифтовых семейств
- •Высота строчного знака в наборных гарнитурах
- •Удобочитаемость и пробелы
- •Абзац
- •Спуск
- •Интерлиньяж
- •Межсловные пробелы
- •Межбуквенные пробелы
- •Глава 3
- •Проектирование наборного шрифта
- •Как не надо делать шрифты
- •Изучение прототипа
- •C чего начать?
- •Конструкция и гарнитурные признаки шрифта
- •Оптические компенсации в шрифте
- •Прописные буквы
- •Строчные буквы
- •Акценты
- •Курсивные и наклонные начертания
- •Полужирные и жирные начертания
- •Апроши
- •Кернинг
- •Глава 4
- •Компьютерные шрифты
- •Язык Adobe PostScript
- •Растрирование в PostScript-технологии
- •Растровые и векторные изображения
- •Что такое «растрирование»
- •Программные и аппаратные RIP
- •Глава 5
- •Шрифт в компьютере
- •Кодировка шрифта
- •Растровые, векторные и контурные шрифты
- •Растровые шрифты
- •Векторные шрифты
- •Контурные шрифты
- •Шрифты в операционной системе. Файл шрифтов. Установка и удаление шрифтов
- •Шрифты в Windows 3.x
- •Шрифты в Windows 95
- •Шрифты в Macintosh
- •Семейства шрифтов и начертания
- •Глава 6
- •Форматы цифровых шрифтов
- •Понятие о формате и шрифтовой машине
- •Структура шрифтового формата
- •Кодирование шрифтов
- •Стандарт кодирования Unicode
- •Управление растеризацией символов
- •Алгоритм растеризации
- •Проблемы растеризации
- •Методы разметки символов
- •Декларативный метод разметки
- •Программируемый метод разметки
- •Общая структура шрифта в формате Type 1
- •Описание символов в формате Type 1
- •Разметка в Type 1 шрифтах
- •Формат TrueType
- •Построение символов
- •Координатная система TrueType-шрифтов
- •Масштабирование символов
- •Разметка в TrueType-шрифтах
- •Общее описание языка разметки
- •Обозначение точек
- •Измерение расстояний и перемещение точек
- •Изменение контура в зависимости от размера символа
- •Построение шрифтовых файлов
- •Другие форматы
- •Глава 7
- •Шрифтовые программы
- •Редакторы контурных шрифтов
- •Система редактирования шрифтов FontLab
- •Создание нового шрифта
- •Содержимое экрана
- •Способы построения символов
- •Автоматическое тестирование правильности построения контуров
- •Разметка символов
- •Использование подпрограмм
- •Трансформации и эффекты
- •Формирование заголовка шрифта
- •Редактирование метрик символов
- •Экспорт шрифта
- •Редактирование существующих шрифтов
- •Сервисные программы
- •Программы для поиска шрифтов
- •Программы для печати примера шрифтов
- •Программы для преобразования шрифтов
- •Программы для простого редактирования шрифтов
- •Глава 8
- •Практическая работа со шрифтами
- •Шрифты «свои»
- •Пользуйтесь легально приобретенными шрифтами
- •Составьте каталог своих шрифтов
- •Распределите свои шрифты по каталогам
- •He трогайте фирменные шрифты
- •Унифицируйте шрифты
- •Шрифты «чужие»
- •He смешивайте шрифты
- •Сделайте резервную версию системных шрифтов
- •Каждой работе - свой комплект шрифтов
- •Что нужно для верстки
- •Аппаратные средства
- •Программные средства
- •Вывод текста
- •Вывод на принтере
- •Вывод на лазерном экспонирующем устройстве
- •Проблемы и решения
- •Проблемы, наблюдаемые «на экране»
- •Проблемы, наблюдаемые «на бумаге»
- •Глава 9
- •Как покупать шрифты
- •Системы защиты шрифтов от копирования
- •Способы продажи шрифтов
- •Продажа шрифтов «россыпью»
- •Продажа открытых шрифтовых пакетов
- •Продажа зашифрованных шрифтов
- •Критерии качества шрифтов
- •Качество контуров
- •Основные ошибки описания контуров
- •Качество разметки
- •Полнота набора знаков
- •Правильность кодировки
- •Правильность оформления заголовка
- •Соответствие требованиям формата
- •Полнота описания метрических параметров
- •Некоторые поставщики шрифтов
- •Глава 10
- •Юридические аспекты разработки и использования шрифтов
- •Пиратство на рынке шрифтов
- •Как защитить шрифт в России
- •Приложение 1
- •Шрифтовые синонимы
- •Приложение 2
- •Примеры кодовых таблиц, поддерживающих кириллицу
- •Альтернативная кодировка DOS (866)
- •Кодировка КОИ-8
- •Кодировка Windows (1251)
- •Приложение 3
- •Лицензионная политика
- •Базовая лицензия
- •Многопользовательская лицензия
- •Ограниченная корпоративная лицензия
- •Лицензия на публикацию
- •Неограниченная корпоративная лицензия
- •Лицензионное соглашение
- •Лицензионные права
- •Лицензионные ограничения
- •Права собственности
- •Гарантийные обязательства
- •Приложение 4
- •Приложение 5
- •Образец заявки о выдаче патента на гарнитуру наборного шрифта
- •Гарнитура наборного шрифта «Арбат»
- •Аналоги промышленного образца
- •Перечень иллюстраций
- •Сущность промышленного образца
- •Основные размеры заявляемого шрифта (в мм)
- •Возможность многократного воспроизведения промышленного образца
- •Перечень существенных признаков промышленного образца
- •Выводы:
Рисунок 6.19 Улучшение контуров TrueType-шрифтов
3. Заполнение контуров
Ha этом этапе происходит заполнение контуров и автоматическое подавление выпадения точек. Для того чтобы определить точки, которые необходимо активизировать при заполнении, используется простое правило: активизируются все точки, центр которых находится внутри заполняемой области или точно на контуре.
Разметка в TrueType-шрифтах
B TrueType-шрифтах используется программируемая разметка символов. Для ее описания служит специальный язык программирования, который мы так и будем называть - язык TrueType.
Программы разметки символов формируются при создании шрифта и описывают все особенности символов для того, чтобы по возможности сохранять их в любых ситуациях. B процессе исполнения программы интерпретатор языка TrueType получает информацию о текущем размере символов в точках растрового устройства и о трансформациях символа (повороте и наклоне). Операторы языка используют эти значения и изменяют контур с тем, чтобы качество растрового изображения символа было наилучшим. Чем сложнее программа разметки, тем точнее можно описать все детали построения символа.
Разметка программируется двумя основными методами: описанием характеристик символа (например, заданием горизонтального расстояния между точками, образующими прямой вертикальный штрих, которое всегда должно быть одинаковым) и указанием конкретных команд, изменяющих контур.
Изменение контура происходит путем перемещения точек, образующих его. Точки могут перемещаться по отдельности или группами с использованием интерполяции. Отдельные команды служат для управления растеризацией в конкретных ситуациях.
Основой программы разметки являются команды измерения расстояния между точками и команды округления значений. Как правило, большая часть программ разметки строится следующим образом:
- 173 -
1.Измеряется некоторое расстояние, которое затем округляется по определенным правилам.
2.Остальные расстояния (целочисленные) устанавливаются в пропорции к измеренному.
Команды языка могут использовать переменные и таблицы глобальных значений, которые могут иметь отношение к нескольким символам.
Общее описание языка разметки
Поскольку полное описание всех команд языка разметки приводится в официальной документации фирмы Microsoft, ограничимся лишь определением основных групп команд. Некоторые принципиальные методы разметки будут объяснены в следующих разделах, но без привязки к конкретным командам.
Итак, при построении программы разметки используются следующие структуры:
•стек данных;
•команды языка;
•глобальные таблицы.
Через стек данных командами производится передача всех значений. Команды могут брать значения со стека или класть их на стек. Стек работает по принципу «последний вошел - первый вышел», так что параметры командам (если их больше одного) передаются в обратном порядке. Стек может содержать значения, кратные 32 битам при 32-битной реализации TrueType-машины (Windows NT) и 16 битам при 16-битной реализации (Windows 3.1).
Данные и команды чередуются в потоке команд. Специальные команды (и только они!) могут выбирать значения из потока и переносить их на стек. Все остальные команды работают только со значениями, находящимися на стеке.
Команды языка разделяются на следующие группы:
•переносящие значения на стек;
•управляющие областью данных;
•управляющие таблицей значений;
•изменяющие текущее графическое состояние;
•управляющие контурами;
•общего назначения.
Большая часть команд используется для измерения параметров контуров и для перемещения точек, определяющих контуры. Отдельные команды применяются для управления последовательностью интерпретации программы (например, команды условных и безусловных переходов) и для управления областями данных.
Основная область, в которой хранятся все постоянные и проме- - 174 -
жуточные параметры, необходимые для разметки символов – это таблица значений, сокращенно CVT. Для доступа к полям CVT существуют специальные команды, при помощи которых можно читать значения или изменять их. С CVT связана особая программа, которая запускается всякий раз при изменении основных параметров шрифта: кегля набора или какого-либо из чисел матрицы трансформации, например угла наклона. Обычно та программа используется для модификации значений в CVT.
Другая глобальная программа, называемая шрифтовой, запускается только один раз в момент загрузки шрифта и выполняет инициализацию значений в CVT.
Для хранения промежуточных значений применяется другая таблица, которая называется областью данных (storage area). C ее помощью можно создавать переменные и небольшие массивы данных.
Последняя глобальная область - это область графического состояния (graphic state). Она содержит переменные, фиксирующие текущее состояние интерпретатора языка, например, способ округления значений или направление вектора измерения расстояний. Все переменные имеют значения по умолчанию. Для изменения этих значений обычно используется шрифтовая программа или CVT-программа.
Обозначение точек
Программа разметки, написанная на языке TrueType, связывается с контурами символов, которые описываются отдельно, при помощи указания номеров точек. Нумеруются все точки, определяющие контур (on-line и offline), как это показано на Рисунок 6.20.
Команды языка могут использовать любые точки, реально описывающие контур, и набор точек, используемых только в качестве промежуточных. Для разделения этих точек символ представляется состоящим из двух слоев: слой 1 (Z1), содержащий реальные точки, и слой 0 (Z0), состоящий из промежуточных точек. Оба слоя могут применяться во всех операциях языка.
Кроме этого, интерпретатор добавляет к описанию контура символа две дополнительные точки, определяющие поля символа
(Рисунок 6.21).
Эти точки могут использоваться наравне с другими в программе разметки и позволяют точно определять поля символа в растровых единицах.
Например, с их помощью легко можно заблокировать полное исчезновение полей. Для этого достаточно написать фрагмент программы, который бы не позволял приравнивать горизонтальные координаты дополнительных точек и крайних точек символа.
- 175 -
Рисунок 6.20 Нумерация точек, определяющих контур в TrueTypeшрифтах
Рисунок 6.21 Дополнительные точки, определяющие поля символа в
TrueType-шрифтах
B некоторых операциях требуется указание одной из трех опорных точек, которые могут указывать на любую из точек контура в слое 1 или на промежуточные точки в слое 0. Номера опорных точек опре-
- 176 -