Про шрифты с продолжением. Часть 14
Создание и редактирование шрифтов
Пришла пора поговорить о процессе создания шрифтов и тех программах, которые для этого используются.
В связи с этим в первую очередь принято упоминать о «прадедушке» нынешних шрифтовых редакторов — комплексе Ikarus, но мы этого делать не будем, поскольку практического смысла в этом нет никакого. Лучше подробнее рассмотрим две действительно выдающиеся программы в области шрифтовых редакторов — FontLab Studio (FLS), написанную Юрием Ярмолой и Вадимом Суворовым, а также FontForge (FF), написанную Джорджем Уильямсом (George Williams).
Общее для всех шрифтовых редакторов
Большинство шрифтовых редакторов имеют примерно один и тот же интерфейс: шрифт показан в виде таблицы, содержащей глифы. Каждый знак представляет собой ячейку в таблице и имеет подпись, которая может быть номером, именем в соответствии со спецификацией Unicode или другой информацией. Порядок знаков в таблице может быть самым разнообразным, но обычно определяется кодовой страницей.
Дважды кликнув на символ в таблице, можно открыть окно редактирования глифа. При этом становятся доступными инструменты, очень похожие на те, что применяются при редактировании векторной графики в Illustrator, Freehand, CorelDRAW, и др., но с несколькими небольшими различиями: вопервых, белый и черный — единственные цвета, которыми можно оперировать. Вовторых, мы, конечно, можем свободно рисовать кривые, но они всегда имеют нулевую толщину и используются только в целях формирования границы изображения. Втретьих, существуют некоторые ограничения на то, что мы можем сделать с кривыми Безье. Наконец, здесь нас интересуют такие параметры, как направление контура, порядок расположения точек на кривых Безье и т.д., — детали, которые кажутся глупыми, когда используется программное обеспечение для обычного графического дизайна, но могут быть весьма полезными в контексте шрифтового дизайна.
Широкая палитра инструментов для контурных шрифтов помогает рисовать как прямые линии, так и кривые Безье, а гладкое соединение двух прямых позволяет без труда рисовать округлые участки литер. Программой предоставлен набор графических примитивов — создание прямоугольников (с возможностью закругления их углов), кругов, овалов и дуг. Помимо этого полученный графический контур можно увеличивать или уменьшать в размере, создавать зеркальное отображение выделенного участка символа, выполнять поворот и наклон символа по горизонтали и вертикали. Как и любой другой графический редактор, программа для создания шрифтов предоставляет возможность работы с буфером обмена, увеличение масштаба редактирования и осуществление замеров расстояний с помощью специального инструмента.
Помимо прямого редактирования символов шрифтовые редакторы позволяют применять специальные эффекты к контуру символа целиком — по отдельности и всех символов данного шрифта. Например, менять ширину шрифта, удалять пересекающиеся линии, обводить контур символа и т.д.
Понятно, что тут же (в крайнем случае, на расстоянии одного клика) должны быть расположены все основные инструменты и необходимая информация. Среди них:
- глобальная разметка (ширина, высота, полуапроши);
- разметка каждого символа (ширина горизонтальных и вертикальных стоек, угол наклона диагональных элементов, величина свисания и т.д.);
- начальная и контрольные точки кривой Безье, тип соединения и пр.;
- фоновое растровое изображение;
- многое другое.
Прямо скажем, графической и текстовой информации в окне редактирования глифа очень и очень много. Поэтому одной из основных проблем шрифтовых редакторов является вопрос об удобстве расположения инструментов и доступности необходимой в работе информации о каждом конкретном знаке и шрифте в общем.
Еще одной из основных характеристик, присущих шрифтовым редакторам, является окно для контроля и настройки кернинга. Обычно доступны ручная и автоматическая настройки.
Наконец, существует еще один тип основной информации, настройка которого доступна в любом хорошем шрифтовом редакторе — имя шрифта, имя, дизайнера, тип лицензии, классификация Panose и пр.
При этом не надо забывать, что различные форматы шрифтов (PostScript, TrueType, OpenType, AAT) для разных платформ (DOS, Windows, OS/2, Macintosh, UNIX) накопили массу самых разнообразных данных, синтаксис и значение для каждого типа этих данных, которые дизайнер шрифтов может и не знать в принципе. И как раз хороший редактор шрифтов может помочь дизайнеру в автоматическом режиме правильно заполнить все необходимые значения.
FontLab Studio
FontLab Ltd, которая раньше выпускала программу Fontlab, ныне называющуюся FontLab Studio, с начала 2000х годов — лидер по выпуску программных инструментов для создания и редактирования шрифтов. Отчасти это произошло потому, что после покупки компанией Macromedia ее производителя — фирмы Altsys — сначала замедлилось, а потом и совсем прекратилось развитие главного конкурента FontLab — программы Fontographer.
Чуть позже, во время «слива» активов компании Macromedia после приобретения ее в 2005 году фирмой Adobe Systems, Macromedia продала исходный код и права на программу Fontographer компании FontLab Ltd. Таким образом, FontLab в настоящее время владеет и поддерживает оба наиболее популярных редактора шрифтов.
Для справки упомянем список инструментов для редактирования шрифтов, выпускаемых компанией:
- FontLab Studio — профессиональный шрифтовой редактор;
- Fontographer — еще один шрифтовой редактор с большой историей и огромной армией поклонников;
- TypeTool — шрифтовой редактор любительского уровня;
- AsiaFont Studio — профессиональный шрифтовой редактор, ориентированный на шрифты типа CJKV (Chinese, Japanese, Korean, Vietnamese) и подобные;
- Photofont — нишевой продукт по созданию растровых шрифтов с поддержкой цвета, текстур, прозрачностей и пр.;
- SigMaker — утилита для маркировки шрифтов цифровой подписью дизайнера этих шрифтов;
- TransType — конвертер OpenType, TrueType и Type 1 шрифтов между собой и платформами Macintosh и Windows;
- Bitfonter — редактор растровых шрифтов;
- ScanFont — программа распознавания и трассировки растровых шрифтов в векторные;
- FONmaker — конвертер bitmapшрифтов в формат TrueType;
- FontFlasher — утилита по конвертированию и оптимизации шрифтов для дальнейшего применения в малых и сверхмалых размерах (pixel fonts);
- FogLamp — конвертер исходных файлов старых версий Fontographer в современные.
Историю развития программы принято вести от наиболее значимой версии FontLab 2.0 (1993 г.). В предыдущей версии программа называлась FontDesigner 1.0 (1991 г.) и, видимо, поэтому не осталась в истории.
При помощи FontDesigner 1.0, в состав которой входили редактор контурных шрифтов, программа ввода сканированных изображений шрифтов и набор сервисных программ, можно было создавать почти полноценные шрифты Type 1. Программа поддерживала Type 1разметку и контурные подпрограммы. Множество средств разметки позволяло создавать шрифты неплохого качества. Все программы пакета работали под управлением MSDOS.
B отличие от предыдущей версии, FontLab 2.0 работал под управлением MS Windows. Программа полностью поддерживала все методы разметки Type 1шрифтов. Например, если шрифт импортировать и сразу же экспортировать, то он ничем не будет отличаться от оригинала. Такая точность в работе с Type 1шрифтами позволяла редактировать какойнибудь один символ любого шрифта, будучи уверенным в том, что остальные символы никак не изменятся.
Удобный интерфейс, большой набор специальных функций, подробное редактирование заголовка, множество возможностей по трансформации шрифтов, встроенный макроязык — всё это позволило FontLab 2.0 стать в один ряд с лучшими на тот момент программами создания шрифтов.
Версия 2.5 (рис. 1) создавалась как продолжение предыдущей версии — 2.0, поэтому унаследовала все ее основные возможности. Эта версия программы работала со шрифтами в форматах TrueType и Туре 1, то есть она могла импортировать и экспортировать эти шрифты, а также редактировать их параметры.
Большинство основных приемов работы в FontLab было создано именно в этой версии. О некоторых из них и пойдет речь ниже.
Рис. 1. Окно программы FontLab 2.5
Начнем с кнопок с изображением «магического камня» (в третьей версии они были заменены на кнопку Auto (рис. 2)). Этот знак в системе FontLab обозначает сервисные кнопки. Нажатие такой кнопки вызывает автоматическое выполнение некоторых операций и часто является оптимальным вариантом действий в той или иной ситуации. Это могут быть самые различные действия, например генерация Unicodeзначений для какоголибо знака или определение цифровых значений для классификации в системе Panose и т.п.
Рис. 2. Окно программы FontLab 3.0
Общее правило для шрифтовых редакторов заключается в том, что при создании нового шрифта проводится предварительная разметка, которая отталкивается от художественной идеи и определяет ряд основных параметров всех знаков будущего шрифта.
При разметке используются глобальные и локальные разметочные линии, глобальные и локальные хинты, сетка с изменяемым шагом, маски любой формы и растровые подложки.
Глобальные элементы разметки просматриваются во всех символах шрифта, а их положение относительно каждого символа можно точно определять в абсолютных цифрах.
В FontLab символы хранятся и отображаются точно так же, как это принято в формате Туре 1, а значит, для описания контуров используются векторы и кривые Безье третьего порядка. Редактирование контуров происходит путем перемещения опорных точек, последовательность которых и определяет контуры.
Наличие в кривых Безье контрольных точек, не лежащих на контуре, обычно затрудняет работу над ними. Для того чтобы упростить эту работу, в программе FontLab применяется метод редактирования контуров без использования опорных точек, — его можно изменять не только перемещая точки, но и непосредственно захватывая его в любом месте. При этом положение конечных точек векторов и контрольных точек кривых определяется программой автоматически, вместе с контролем за сохранностью гладкости контура в местах сопряжения графических примитивов.
Кстати, в FontLab сопряжения могут быть трех типов: угловые (без сглаживания), гладкие и фиксированные. Фиксированный метод сопряжения при редактировании контура перемещением опорных точек ничем не отличается от гладкого, а при свободном редактировании направления контрольных векторов кривых фиксируются, что дает гарантию сохранения основных свойств символов.
Новые символы могут быть созданы следующими способами:
- набраны из примитивов панели Palette и объединены командой объединения контуров;
- получены путем автотрассировки растровых подложек;
- нарисованы инструментом Contour, из панели инструментов Tools.
Инструмент Contour сочетает режим поточечного рисования и свободный режим (достаточно просто нажать клавишу Аlt на клавиатуре), что делает его незаменимым для построения сложных символов, особенно в комбинации с командой построения параллельных линий, командами объединения контуров и логическими контурными командами.
Помимо стандартного набора контурных операций (разрыв, объединение и изменение направления) в программе FontLab поддерживаются логические операции над замкнутыми контурами. При помощи команды Overlap... из меню Transform можно объединять контуры, устранять самопересечения, находить область пересечения и вычитать контур.
Наряду с командами построения контуров придется использовать команды и инструменты редактирования.
Основной из них — инструмент редактирования Edit, который может перемещать точки в поточечном и свободном режимах, изменять свойства любых объектов, расположенных в окне редактирования, удалять и добавлять опорные точки, преобразовывать векторы в кривые и обратно, нормализовать кривые (превращать их в дуги эллипсов) и выделять часть контура. При перемещении опорных точек и других элементов описания символа можно точно задавать их новые координаты, просто нажав на клавишу Ctrl.
Свойства инструмента редактирования дополняют два других инструмента: Select и Erase. Первый используется для более удобного выделения участков контура, с которыми после этого можно производить различные операции, например скопировать в другое место, удалить, дублировать или трансформировать. Второй инструмент применяется для быстрого удаления опорных точек и работает как ластик.
Инструменты Arc и Curve применяются для преобразования участков контуров в часть эллипса или в кривую Безье соответственно. Инструмент Curve можно использовать для ручной аппроксимации участков контуров, а его свойство фиксации направлений контрольных векторов получающейся кривой позволяет за один шаг создавать высококачественные контуры.
Инструмент Arc, кроме своей основной функции, может применяться для определения произвольных эллипсов или окружностей.
Для измерения любых размеров символа применяется инструмент Meter, который, как и инструмент Set, может работать в прямоугольной или полярной системе координат. Измерения могут производиться в свободном режиме (без ограничения направления) или перпендикулярно контуру.
Для обеспечения оптимального качества контуров, созданных средствами системы FontLab, в ее состав входит функция FontAudit. Будучи включенной, эта функция позволяет постоянно в реальном времени отслеживать контур символа на его соответствие по более чем 20 параметрам и отображает найденные ошибки в виде стрелочки, острием указывающей на проблемный участок контура (рис. 3).
Рис. 3. Окно программы FontLab 4.6
Следует также отметить, что внутри программы шрифты размечаются в формате Туре 1, и при экспорте в таком формате разметка этих шрифтов полностью сохраняется. Более того, разметка исходных Туре 1шрифтов сохраняется и при их импорте, обеспечивая свойство прозрачности FontLab по отношению к Т1шрифтам. Разметка Туре 1шрифтов состоит из двух частей — глобальной разметки и локальной, относящейся к отдельным символам.
Глобальная разметка в FontLab производится в диалоговом окне описания параметров шрифта, где она при желании может быть определена автоматически.
Локальная разметка, которая состоит из разметки знаков, производится в окне редактирования и в панели разметки, которая называется Type1 Hinting. В этой панели можно определять смену хинтов, размечать слабо изогнутые кривые и симметричные элементы.
Для TrueTypeшрифтов обычно производится автоматическое построение разметки.
Очень удобная функция, реализованная в виде подпрограммы, — редактирование общих динамически связанных элементов символов. Что здесь имеется в виду?.. В шрифтах часто встречаются символы, содержащие одинаковые элементы. Такие элементы можно формировать при помощи команд копирования участков контуров, но при этом теряется связь между ними, и если приходится вносить в них изменения, то процесс копирования необходимо повторять для каждого знака в отдельности.
А использование упомянутой подпрограммы позволяет изменять почти весь шрифт, редактируя только один символ. При этом обновление тех символов, которые затрагивает это редактирование, производится автоматически.
Встроенный макроязык дает возможность программировать последовательность преобразований символов шрифта и тем расширяет возможности трансформации знаков шрифта.
Формирование всех информационноструктурных свойств шрифта может производиться в двух режимах. В первом случае достаточно ввести имя шрифта, а потом, задействуя функциональные кнопки с изображением «магического камня», автоматически сгенерировать недостающие элементы. Во втором случае вы проделываете все то же самое в ручном режиме, будучи уверенными, что делаете всё правильно.
Такие свойства шрифта, как поля и ширину символов, кернинг и трекинг, можно изменять прямо в окне редактирования того или иного знака или через специальное меню. Для определения кернинга применяется отдельное окно — Preview/Metrics.
В этом окне предусмотрен ручной и автоматический режимы работы. В ручном режиме вы просто вводите строку, для символов которой необходимо определить кернинг (или выбираете эту строку из ниспадающего списка), и перемещаете символы, добиваясь их оптимального расположения. В автоматическом режиме достаточно просто выбрать команду Auto… из контекстного меню.
FontLab Studio позволяет хинтировать шрифты на профессиональном уровне в автоматическом или ручном режимах. В ручном режиме можно установить четыре различные инструкции в вертикальном или горизонтальном направлении и применить два различных типа дельтаинструкций.
После того как работа над шрифтом завершена, файл можно сохранить в собственном формате FontLab Studio или экспортировать в один из распространенных форматов. Поддерживаются:
- OpenType PS (*.otf);
- Win TrueType / OpenType TT (*.ttf);
- Win Type 1 (*.pfb + *.pfm/.afm);
- ASCII/Unix Type 1 (*.pfa + *.afm);
- Win Multiple Master (*.pfb + *.mmm);
- FontLab 3.04.6/TypeTool/AsiaFont Studio/ScanFont/TransType/FontLab Studio (*.vfb).
Кроме того, существует возможность экспортировать глифы шрифта в формат Adobe Illustrator 8 EPS (*.ai + *.eps), TIFF, BMP.
Масверсия программы поддерживает экспорт шрифта в Mac Type 1 (LWFN), Mac TrueType (*.dfont или FFIL) и Mac Multiple Master.
При работе над существующим шрифтом используются возможности импорта из различных форматов:
- OpenType PS (*.otf);
- Win TrueType / OpenType TT (*.ttf);
- Win Type 1 (*.pfb + *.pfm/.afm);
- ASCII/Unix Type 1 (*.pfa + *.afm);
- Mac Type 1 (LWFN из *.hqx, *.bin);
- Mac TrueType (*.dfont or FFIL из *.hqx, *.bin);
- TrueType AAT (*.ttf, *.dfont);
- Win Multiple Master (*.pfb + *.mmm);
- FontLab 2.5 (*.vfa);
- FontLab 3.04.6/TypeTool/AsiaFont Studio/ScanFont/FontLab Studio (*.vfb);
- Ikarus (*.ik);
- BDF Bitmap (*.bdf);
- импорт отдельных глифов из Adobe Illustrator 8 (*.ai, *.eps), TIFF, BMP.
В настоящее время пользователям поставляется новая версия FontLab Studio 5.0.4. (рис. 4).
От предыдущей, 4й версии, «пятерка» отличается тем, что ориентирована на «дизайн в контексте». Новые инструменты позволяют дизайнеру шрифтов видеть текст, набранный созданным шрифтом не только в горизонтальной строке, но и как на настоящей двумерной странице. В 5й версии улучшены чертежные инструментальные средства Безье, интегрированное автоматическое преобразование, слияние и смешивание шрифтов, улучшена поддержка OpenType и Unicode 5.0, импорта BDFфайлов и конвертация их в пиксельные шрифты, расширена автоподсказка.
Рис. 4. Окно программы FontLab Studio 5.0.4
FontForge
Этот редактор шрифтов позволяет создавать и редактировать шрифты в различных форматах, а также преобразовывать их из одного формата в другой. Интерфейс программы переведен на десяток языков, в том числе и на русский.
Как и в других подобных программах, в начале работы можно выбрать файл шрифта для редактирования или создать новый. Форматы шрифтов, поддерживаемые FontForge, — PostScript (Type1, Type3, Type0), TrueType, OpenType (Type2), CID (CIDkeyed), multimaster, CFF, SVG, BDF, Datafork TrueType и др.
Для сохранения создаваемых шрифтов FontForge использует собственный формат Structured Font Database (SFD). Кроме того, он позволяет импортировать файлы в формате PCF, в нескольких форматах Mac OS и растровые шрифты TeX (PK + TFM).
Как уже упоминалось, если вы работали в одном из шрифтовых редакторов, то вам не составит труда сориентироваться в любой другой подобной программе. То же утверждение справедливо и в отношении FontForge. Принципиально алгоритм работы в ней не отличается от работы в уже упомянутом FontLab. Так, FontForge имеет несколько функциональных окон: окно шрифта, окно редактируемого символа и окно метрик. Каждое окно содержит контекстнозависимое меню, содержимое которого может меняться в зависимости от совершаемых действий (рис. 5).
Рис. 5. Окно программы FontForge
Окно шрифта отображает все символы редактируемого шрифта. Наиболее часто выполняемые в этом окне операции — выделение символов и открытие окна символа для дальнейшего редактирования.
Для выделения отдельного символа достаточно щелкнуть на нем левой клавишей мыши; двойной щелчок приведет к открытию окна редактирования символа. Для выделения нескольких символов подряд надо кликнуть на первом из выделяемых символов левой клавишей мыши и, удерживая ее нажатой, переместить курсор к последнему выделяемому символу. То же самое можно сделать кликом по добавляемому символу, удерживая нажатой клавишу Shift.
Окно редактируемого символа показывает знак в виде контура (для векторного шрифта) или растра. Вместе с этим окном открываются две панели: со слоями и с инструментами. Содержимое этих панелей для векторных и растровых шрифтов различно.
Панель слоев позволяет включать/выключать отображение слоев и выбирать, к какому из них будут относиться последующие команды. Поддерживаемые слои: основной, фон, направляющие, хинтирование (Type 1)/инструктирование (TrueType).
Панель инструментов содержит 14 инструментов, которые по большей части являются стандартными для такого класса программ.
Инструмент редактирования (Указатель) позволяет выделять и перемещать точки контура или сами контуры символа. Выделение производится щелчком по нужным точкам/контурам или выделением при нажатой клавише Shift, либо выделением области знаков.
FontForge активно использует кнопки мыши с клавиатурными модификаторами. Независимо от выбранного инструмента левая кнопка мыши в сочетании с нажатой клавишей Ctrl работает как Указатель, средняя — как Лупа, а средняя в сочетании с нажатой клавишей Ctrl — как Измеритель. Щелчок правой кнопкой в окне символа вызывает контекстное меню, позволяющее выбрать один из инструментов.
«Кривая», «угловая» и «касательная» точки и Перо позволяют добавлять точки контура в окне символа и различаются типом добавляемой точки. Тип точки можно изменить, выделив ее и выбрав подходящий пункт в меню Точка либо нажав Ctrl+2, Ctrl+3 или Ctrl+4 для преобразования в точку кривой, угловую или касательную соответственно.
Инструмент Нож позволяет разрезать контур между точками. На образующихся концах контура создаются две новые точки кривых, между которыми нет соединения. Чтобы разрезать контур, надо провести курсор в точке разреза, удерживая нажатой левую клавишу мыши.
Измеритель позволяет измерять расстояние, угол и смещение по осям X и Y от точки, где была отпущена левая клавиша мыши до текущего положения курсора.
Зеркало позволяет отразить выделенную часть символа по горизонтальной или вертикальной оси симметрии. Точка, в которой была нажата клавиша, будет являться началом координат для преобразования.
Окно метрик позволяет изменять различные параметры шрифта в целом и знаков в отдельности. Изменение границ символа или полуапроши возможно путем либо введения значения в соответствующее поле, либо перемещения мышью символа или его границы.
Для создания нового знака обычно используются три способа: копирование символа (или создание ссылки на него), автоматическая или ручная трассировка изображения и модификация подходящего символа.
В большинстве шрифтов многие символы содержат одинаковые или схожие элементы, а некоторые символы даже частично совпадают друг с другом. Кроме того, у латинских, греческих и кириллических шрифтов вертикальные основные элементы должны быть абсолютно одинаковы, в противном случае возможно возникновение очень заметных искажений при растрировании.
Таким образом, «склеивание» символов из соответствующих элементов других символов не только удобно, но и позволяет достичь более правильного в техническом плане результата.
* * *
Данный обзор не претендует на всеобъемлющую полноту. Тех, кого заинтересовала эта тема, отсылаю к руководству пользователя FontLab Studio (http://www.font.to/downloads/manuals/FLS5WinManual.zip) и FontForge (http://fontforge.sourceforge.net/fontforgetutorial.pdf). К сожалению, они существуют только на английском языке.
Также мы не стали рассматривать функционал других программ для создания и редактирования шрифтов. В целом, принцип работы у них довольно стандартный, различия же заключаются в удобстве, интерфейсе, наличии тех или иных «фишек».