Основы работы в Fontforge

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

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

Форматы шрифтов, поддерживаемые FontForge, можно разделить на две группы: растровые и векторные.

К векторным относятся PostScript Type1 (PFA/PFB+AFM/GSF), PostScript Type0 (PS), TrueType (TTF) и OpenType (OTF), к растровым — BDF. Для хранения разрабатываемых шрифтов Fontforge использует свой собственный формат Structured Font Database (SFD). Кроме этого, он позволяет импортировать файлы в формате PCF, в нескольких форматах Mac OS и растровые шрифты TeX (PK + TFM).

Виды окон

При работе со шрифтами FontForge использует несколько различных видов окон: окно шрифта, окно редактируемого символа и окно метрик. Каждое окно содержит меню, содержимое которого, а также результат действия команд различаются в зависимости от ряда условий.

Окно шрифта

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

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

Добавлять символы к выделению можно, удерживая нажатой клавишу Shift. Повторный щелчок на уже выделенном символе при нажатой клавише Shift приведёт к исключению этого символа из выделения.

Окно символа

Окно шрифта

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

Окно редактируемого символа (растровый шрифт)

Панель слоёв позволяет включать/выключать отображение слоёв и выбирать, к какому из них будут относиться последующие команды. Поддерживаемые слои: переднего плана, фона, направляющих, «инструкций» разных типов (Type1 hinting или TrueType instructions).

Окно редактируемого символа

Для слоёв инструкций можно только включать/выключать отображение.

Панель инструментов содержит 14 инструментов, кратко описанных в следующем подразделе.

Инструменты

Указатель позволяет выделять и перемещать точки контура или сами контуры символа. Выделение производится щелчком по нужным точках или контурам или выделением при нажатой левой клавише мыши области, содержащей нужные точки. Также щелчком можно выделить правую границу символа. Добавление или исключение точек производится при нажатой клавише Shift.

Группу выделенных точек можно:

  • перемещать, нажав левой клавишей мыши на одну из них и переместив курсор в нужное место;
  • перемещать с помощью клавиш управления курсором;
  • подвергать различным геометрическим преобразованиям с помощью других инструментов или выбрав способ преобразования в диалоговом окне пункта «Преобразовать» меню «Элемент» (Ctrl+\);
  • изменять тип (см.ниже);
  • удалять, разрывая контур, или «упрощать», сохраняя контур между окружающими «упрощённую» точками.

Лупа позволяет изменять масштаб в окне символа. Увеличение производится щелчком в окне символа, уменьшение — щелчком при нажатой клавише Alt.

FontForge активно использует кнопки мыши с клавиатурными модификаторами. Независимо от выбранного инструмента, левая кнопка мыши в сочетании с нажатой клавишей Ctrl работает как «Указатель», средняя — как «Лупа», а средняя в сочетании с нажатой клавишей Ctrl — как «Измеритель» (см.ниже). Щелчок правой кнопкой в окне символа вызывает всплывающее меню, позволяющее выбрать один из инструментов.

«Кривая», «угловая» и «касательная» точки и «Перо» позволяют добавлять точки контура в окне символа и различаются типом добавляемой точки («Перо» добавляет точку кривой с контрольными точками). Тип точки можно изменить, выделив её и выбрав подходящий пункт в меню «Точка» или же нажав Ctrl+2, Ctrl+3 или Ctrl+4 для преобразования в точку кривой, угловую или касательную соответственно.

«Нож» позволяет разрезать контур между точками. На образующихся концах контура создаются две новые точки кривых, между которыми нет соединения. Чтобы разрезать контур, надо провести курсор в точке разреза, удерживая нажатой левую клавишу мыши. (Часто более удобным оказывается добавить точку на контур и удалить её. Контур при этом оказывается разорван.)

«Измеритель» позволяет измерять расстояние, угол и смещение по осям X и Y от точки, где была отпущена левая клавиша мыши до текущего положения курсора.

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

«Зеркало», как следует из названия, позволяет отразить выделенную часть символа по горизонтали или по вертикали. Так же, как и для «Масштабирования», точка, в которой была нажата клавиша, будет являться началом координат для преобразования.

«Вращение» позволяет вращать выделенную область.

«Наклон» позволяет наклонять выделенную область.

Для точного масштабирования, вращения и наклона удобнее использовать соответствующий параметр в диалоге «Преобразовать…» меню «Элемент».

«Прямоугольник/Эллипс» и «Многоугольник/Звёздочка» позволяют нарисовать соответствующие фигуры. Двойной щелчок на инструменте открывает окно диалога для выбора параметров инструмента (закругление углов прямоугольника, прямоугольник или эллипс, число углов многоугольника/звёздочки, многоугольник или звёздочка).

Окно метрик

Окно метрик позволяет изменять различные параметры, относящиеся к сочетаниям символов, а также изменять метрики каждого символа в отдельности.

Окно метрик

Изменить левую или правую границы символа или его ширину, а также задать значение апроша для любой пары символов можно либо введя значение в соответствующей клетке, либо перемещая мышью символ или его границы. Для того, чтобы упростить работу с кириллическим алфавитом, имеет смысл указать в настройках FontForge используемый для ввода набор символов («Файл→Настройки…→Локальная кодировка», например КОI8-R). Это позволит вводить кириллические символы в любых строках ввода, в частности, в окне метрик. (По умолчанию строка в окне метрик содержит символы, выделенные в окне шрифта.)

Создание шрифта

Чтобы создать новый шрифт, надо при запуске FontForge выбрать пункт «Создать» в окне выбора шрифта (или выбрать пункт «Создать» меню «Файл», или запустить Fontforge-new). При этом откроется окно шрифта не содержащее контуров символов. Набор символов вновь создаваемого шрифта можно указать в диалоге «Настройки…» меню «Файл». Если вас не устраивает текущий набор символов, то его можно изменить в диалоге «Информация о шрифте» меню «Элемент». В этом же диалоге можно установить название шрифта, его семейство, угол наклона, комментарий и многое другое.

Информация о шрифте

Если ни один из предлагаемых наборов символов не покрывает всего диапазона необходимых вам символов, то можно выбрать наиболее близкий диапазон, увеличить число символов в шрифте (лист «Кодировка» в диалоге «Информация о шрифте» ) и дать названия всем дополнительным символам. Чтобы назвать (или переименовать) символ, надо вызвать диалог «Информация о символе» меню «Элемент» (или нажать Ctrl+I), в появившемся окне можно ввести символ, его название в соответствии с Unicode или его код по Unicode. После того, как все необходимые символы названы, можно сохранить получившийся набор, нажав кнопку «Создать из шрифта» на листе «Кодировка» окна «Информация о шрифте».

Все наборы символов, созданные пользователем, сохраняются в файле ~/.Fontforge/Encoding.ps, поэтому для создания нового набора символов часто бывает удобнее добавлять названия символов прямо в этот файл по образцу.

Создание символа

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

Копирование символа, акцентированные символы

Часть символов может быть создана копированием уже существующих. Например, если вы добавляете в шрифт кириллические глифы, то латинские символы АВСЕНМОРТХасеорух могут быть скопированы в соответствующие кириллические. Шрифты Type1 и TrueType поддерживают механизм ссылок, который позволяет не копировать одинаковые символы, а помещать ссылки на уже существующие. Замена копий символа ссылками позволяет уменьшить размер шрифта, а также обеспечить совпадение всех таких «копий» с оригиналом в случае его изменения.

Кроме того, такие символы, как «ЁёЙй», являющиеся акцентированными версиями других символов, могут быть созданы из соответствующих символов и акцентов. Чтобы создать акцентированные символы, достаточно выделить соответствующие ячейки в окне шрифтов и выбрать пункт «Элемент→Сделать акцентированный символ» (или нажать Ctrl+Shift+A). Так как шрифты европейских языков содержат достаточно большое количество символов с различными акцентами, то один раз нарисовать каждый акцент, а затем сделать акцентированные символы не только быстрее, но и правильнее, так как акценты у соответствующих символов будут одинаковы.

Оконтуривание вручную

Для того, чтобы обвести какое-либо изображение по контуру, его необходимо сначала импортировать в слой фона символа. Для этого надо открыть окно символа и выбрать пункт меню «Файл→Импортировать…». FontForge позволяет импортировать изображения в форматах BMP, GIF, PNG, JPEG, EPS и XFig. После того как изображение импортировано в слой фона, можно выбрать в качестве рабочего инструмента какой-либо тип точки (удобнее начинать работу с точкой кривой) и последовательно добавить необходимые точки. В том случае, когда требуется создать более одного контура (например, у О есть внешний и внутренний контуры), надо снять выделение с последней добавленной точки (нажать Ctrl, чтобы переключить инструмент на «Указатель», и щёлкнуть на свободном месте в окне символа) после того, как текущий контур будет замкнут — и перейти к обводке следующего контура.

Эту операцию можно выполнить автоматически, если в вашей системе установлена программа autotrace.

Автотрассировка

Для автоматического оконтуривания импортируйте изображение и выберите пункт меню «Элемент→Автотрассировка». Для того, чтобы получить результат, приемлемый для последующей обработки, необходимо импортировать изображение с достаточно высоким разрешением.

Модификация символов

В большинстве шрифтов многие символы содержат одинаковые или схожие элементы, а некоторые символы даже частично совпадают друг с другом. Например, нижние половины у Б, Ь, Ы и Ъ во многих шрифтах будут одинаковы, а Р и Ь можно будет получить из друг друга зеркальным отражением. Кроме того, у латинских, греческих и кириллических шрифтов вертикальные основные элементы должны быть абсолютно одинаковы, в противном случае возможно возникновение очень заметных искажений при растрировании.

Таким образом, «склеивание» символов из соответствующих элементов других символов не только удобно, но и позволяет достичь более правильного с технической точки зрения результата (в отдельных случаях элементы, которые кажутся одинаковыми, должны быть разными из соображений дизайна шрифта; рассмотрение вопросов дизайна выходит за рамки данного текста). Для создания нового символа путём модификации уже существующего необходимо скопировать модифицируемый символ через буфер обмена: выделить исходный символ, выбрать пункт меню «Правка→Скопировать» или нажать Ctrl+C; выделить ячейку создаваемого символа, выбрать пункт меню «Правка→Вставить» или нажать Ctrl+V. Если к уже существующим частям символа необходимо добавить части какого-то другого символа, то вставку необходимо производить в окне создаваемого символа, а не в окне шрифта, иначе уже имеющиеся части создаваемого символа будут заменены вставляемыми.

Другие способы создания символов

Помимо описанных, возможно непосредственное рисование символов.

Для этого FontForge предлагает функции «Расширить штрих» и «Удалить пересечения» в меню «Элемент». Первая позволяет заменить созданную из точек кривую повторяющим её форму контуром заданной ширины, а вторая — объединить пересекающиеся контуры.

Обработка символов

Созданные символы можно (и нужно) дополнительно обработать. FontForge предлагает следующие функции обработки: «Упростить», «Добавить экстремумы», «Исправить направление». Все они доступны из меню «Элемент». Любые изменения можно контролировать, скопировав контур символа в слой фона (пункт меню «Правка→Скопировать передний план в фон» или Ctrl+Shift+C).

FontForge позволяет добавлять инструкции (hints) для растеризатора «Type1» и «TrueType» в ручном или автоматическом режиме. Для запуска автоматической генерации инструкций выберите пункт меню «Инструкции→Автоинструкции». В настоящий момент качество автоматически генерируемых инструкций для TrueType недостаточно высокое. Для создания инструкций TrueType предназначена программа ttfmod (в настоящий момент позволяет только просматривать существующие инструкции).

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

Сценарии

Уникальной чертой FontForge является предлагаемая им возможность писать сценарии на собственном языке, похожем на смесь C, языка программирования командной оболочки (bash) и команд из меню Fontforge.

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


Авторы: George Williams, Валентин Филиппов

1 Kомментарий

  1. Возникла проблема. При создании шрифта путем копирования элементов в одну ячейку, т.е. при сборке одних символов из других на месте их пересечения возникает белая область. В меню Элемент — Пересечения она не убирается.

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*


Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.