Инструментальные средства для OpenType-технологий
Редактор FontLab 4.6 как конвертор
Исходные комментарии и допущения
Можно и генерировать, и корректировать
Данная статья — это продолжение предыдущих публикаций автора, касающихся шрифтового формата OpenType
(см. КомпьюАрт № 2, 3, 6’2006). Предметом рассмотрения
в ней являются основные технологические вопросы,
связанные с конвертацией шрифтов
в формат OpenType с помощью шрифтового редактора FontLab.
Версия 4.6 в настоящее время наиболее популярна среди пользователей, хотя не исключено, что уже к началу следующего года пользователи перейдут на самую последнюю версию
этой программы — FontLab Studio.
Введение
Возможно, некоторые читатели, ознакомившихся с предыдущей публикацией, сочтут решение автора начать рассмотрение инструментальных средств для конвертации шрифтов в формат OpenType с редактора FontLab не вполне логичным. В самом деле, можно было бы взять за основу рассмотрения более простой вариант, основанный на использовании шрифтового конвертора TransType Pro. Выбор автора в пользу FontLab обусловлен тем, что на практике шрифтовые редакторы применяются в России гораздо более широко, чем шрифтовые конверторы. Например, многие российские пользователи предпочитали использовать для конвертации шрифтов из TrueType в PostScript (и наоборот) редактор Macromedia Fontographer, а не специально предназначенные для этого программы. Логично предположить, что и конвертацию шрифтов в формат OpenType многие, если не большинство пользователей, будут выполнять именно с помощью редакторов.
Напомним, что в 2004 году руководство фирмы — производителя FontLab приобрело у Macromedia пакет Fontographer, а недавно этот редактор был введен в состав продуктовой линейки, выпускаемой командой фонтлабовских разработчиков. К сожалению, расширять функциональный состав Fontographer нынешние его владельцы пока не собираются, поэтому ожидать, что с помощью новой версии этого пакета можно будет работать и с OpenTypeшрифтами, пока не приходится.
Пытаясь дополнительно популяризировать FontLab, автор должен отметить, что, в отличие от старых версий Fontographer, этот редактор предоставляет пользователям обширную и развитую систему помощи (к сожалению, не русскоязычную). Кроме того, немаловажно, что документация к FontLab свободно доступна в Интернете.
Исходные комментарии и допущения
Преобразование шрифтовых файлов в формат OpenType в данной статье будет рассматриваться в сугубо прагматическом контексте. Это означает, что предложенная методика преобразования шрифтов из формата в формат практически не будет сопровождаться пояснением того, как различные опции интерфейса FontLab соотносятся, например, со спецификацией OpenTypeфайлов. При этом мы подробно рассмотрим все этапы генерации OpenTypeшрифтов и действия, которые необходимо для этого предпринять.
Стараясь изначально построить изложение в соответствии с практикой, попытаемся смоделировать конкретную производственную ситуацию и рассмотрим пример, построенный на реальном материале (рис. 1). Отметим, что типографические огрехи представленного на рис. 1 шрифта (см., например, букву «ы») не являются поводом для критических сентенций, а дают материал для решения совершено конкретной задачи. Будем считать, что некое рекламное издание решило перевести на новый формат все используемые начертания базовой гарнитуры Herios. Целью такого мероприятия может быть не только внесение поправок в используемые шрифты, но и ускорение вывода макета. Напомним, что в современных RIP, поддерживающих PostScript Level 3, OpenTypeшрифты обрабатываются быстрее, чем шрифты TrueType и PostScript.
Рис. 1
Рис. 2
Будем считать, что в формат OpenType конвертируется не один шрифтовой файл, а полный комплект шрифтоначертаний: Normal, Bold, Italic и BoldItalic (рис. 2). Следует уточнить, что в случае если конвертирование шрифтов выполняется на платформе Мас, то в папку, содержащую шрифты, которые подлежат конвертации, необходимо добавить также их ресурсные компоненты. В связи с этим заметим, что в дальнейшем мы будем использовать Windowsверсию FontLab 4.6, тем более что Мас OSверсия этого редактора имеет аналогичный интерфейс.
Импорт и входной контроль
Для импорта шрифтов в FontLab используется стандартная опция Open из выпадающего меню File. Отметим, что пользователи могут не беспокоиться о кернинге, поскольку при импорте соответствующая информация из метрических файлов PostScript корректно прочитывается и затем в неизмененном виде помещается в OpenTypeшрифты. На рис. 3 представлено окно с файлами всех четырех исходных начертаний выбранной гарнитуры. Поскольку были импортированы PostScriptшрифты, в верхних управляющих линейках каждого из этих окон автоматически оказались задействованы режимные опции Name и Imported. При импорте кириллических «юникодных» шрифтов в формате TrueType открылись бы другие режимные индикаторы — Unicod и MS Windows 1251. В синей заголовочной части каждого окна с фрагментами шрифтовых знаковых таблиц фигурирует название шрифта, а далее в квадратных скобках располагается файловое имя. Внутри шрифтовых окон над каждым шрифтовым символом помещено его имя.
Рис. 3
Титульный контроль
Поскольку мы рассматриваем набор, включающий несколько начертаний, то следует выполнить ряд контрольных процедур, которые обеспечат распознавание системой конвертированных шрифтов как единого семейства. Понятие «титульный контроль» не гостировано, а введено здесь в чисто методических целях.
Все контрольные процедуры будут выполняться внутри операционного набора окон, входящих в подсистему Font Info. Для входа в эту подсистему достаточно найти одноименную опцию в выпадающем меню File. Откроем первое и главное из данного набора окон Basic set of font names (рис. 4). Отметим, что в подсистеме Font Info фиксируется последнее операционное состояние, и, входя в нее в очередной раз, пользователь возвращается в то окно, с которым он до этого работал.
Рис. 4
Для того чтобы все опции интерфейса окна Basic set of font names были хорошо различимы, на рис. 4 приводится только правый его фрагмент. Левая навигационная часть окна представлена на рис. 5.
Рис. 5
На рис. 4 демонстрируется финишный вариант заполнения этого окна, изначально же некоторые установки выглядели по-иному. К сожалению, в программной документации проблема корректного формирования установок для данного операционного окна освещена недостаточно, поэтом автор вынужден был предложить здесь свою методику заполнения, разработанную чисто прагматическим образом. Данная методика, конечно, не является единственной, однако она гарантирует верное распознавание системой всего семейства шрифтов. Для того чтобы сформировать предложенные ниже рекомендации, в FontLab были импортированы аналогичные четыре начертания заведомо работоспособной гарнитуры формата OpenType одного из ведущих шрифтовых вендоров. По образу и подобию того, как были сформированы параметры этого эталонного примера, был создан набор установок, который для удобства представлен в таблице.
Набор установок для формирования титульных параметров
Начертание
|
Нормальное
|
Жирное
|
Наклонное
|
Жирное наклонное
|
Family Name
|
Herios
|
Herios
|
Herios
|
Herios
|
Weight
|
Normal
|
Bold
|
Normal
|
Bold
|
Width
|
Medium
|
Medium
|
Medium
|
Medium
|
Style Name
|
Regular
|
Bold
|
Italic
|
Bold Italic
|
FontName
|
Herios
|
Herios-Bold
|
Herios-It
|
Herios-BoldIt
|
Full Name
|
Herios
|
Herios-Bold
|
Herios-It
|
Herios-BoldIt
|
Menu Name
|
Herios
|
Herios
|
Herios
|
Herios
|
FOND Name
|
Herios
|
Herios
|
Herios
|
Herios
|
Поясняя процедуру формирования титульных параметров, приведенных в таблице, отметим, что сначала для каждого из импортированных шрифтов должен быть выполнен контроль правильности расстановки маркерных указателей Font is italic и Font is bold. Необходимо удостовериться, установлены ли маркирующие галочки во всех насыщенных начертаниях (Bold и Bold Italic) и во всех курсивных начертаниях (Italic и Bold Italic). Затем следует нажать кнопку Build Style Name, после чего в окне Style Name появится текст со стилевым параметром — программа формирует его автоматически на основании выставленных указателей.
Следующим действием является проверка индикации весового показателя. Если весовое окошечко пусто, надо развернуть выпадающее меню Weight, и после выбора нужной опции в контрольном окошечке появится соответствующий весовой показатель: 400 — для нормальной насыщенности и 700 — для жирной.
Рис. 6
Завершив, таким образом, подготовительные действия, следует нажать кнопку Build Names, после чего поля Font Name, Full Name, Menu Name и FOND Name будут автоматически заполнены. Сформированные значения редактируются в соответствии с содержанием табл. 1. Следует уточнить, что сокращенная форма написания «It» вместо «Italic» необязательна, а рекомендуется фирмой Adobe для того, чтобы полные имена файлов более компактно отображались, например, при разворачивании списка установленных в системе шрифтов. Точно так же необязательно наличие дефиса для параметра Full Name, который допустимо заменить пробелом. Отметим также, что нет никакой необходимости в том, чтобы загружать в редактор скопом все четыре начертания гарнитуры, поскольку и проще и удобнее работать с каждым из них по отдельности. Поэтому практически все дальнейшие наши операции будут вестись с жирным наклонным начертанием Herios Bold Italic.
Нажав на кнопку Apply (это следует делать после окончания работы с каждым окном), которая во всех рабочих панелях подсистемы Font Info располагается в правом нижнем углу, перейдем к панели OpenType specific font names (рис. 6). Записи в полях параметров Family Name, Style Name и Mac Name формируются автоматически после нажатия кнопки Build OpenType Names, помеченной «бриллиантовым» значком.
Рис. 7
Проигнорировав окно Additional OpenType Names, в котором в нашем случае никаких действий выполняться не будет, перейдем к окну Copyright Information (рис. 7). Из этических соображений в заголовке PostScriptшрифта фигурировало название вымышленной фирмыразработчика Russian Font Soldgers, которое было воспринято FontLab и индицируется в верхней строке Created by. Нажатие кнопки Build Copyright and Trademark records позволило автоматически скорректировать текст строки Copyright и заполнить строку Trademark. Заметим, что никаких действий с этим окном можно было бы не производить, поскольку они никоим образом не влияют на дееспособность OpenTypeшрифтов. Вместе с тем сформированная только что запись Copyright (c) Russian Font Soldgers, 2006 будет отображаться в окне любой программы просмотра шрифтов, поэтому в наших интересах, чтобы этот реквизит смотрелся как положено.
Рис. 8
Переходя к следующему окну установок Font embedding settings, отметим, что с ним надо работать внимательно, несмотря на то, что в нем фигурирует только один параметр — Еmbedding settings (рис. 8). Поспешные или непродуманные действия могут стать источником совершенно ненужных проблем, например шрифт «не захочет» встраиваться в PDFфайл макета. Поэтому следует выбрать в выпадающем меню самую «лояльную» опцию — Everything is allowed (installable mode).
Содержимое окон Designer Information и License Information на работоспособность шрифта не влияет, поэтому мы их рассматривать не будем.
Следующей группой титульных параметров шрифта в подсистеме Font Info является набор из четырех рабочих панелей с общим названием Version and Identification. Первая панель из этого набора называется Font version and revision information (рис. 9). Заполнение данного окна с системной точки зрения необязательно, но следует учесть, что эта информация отображается в окне программ просмотра шрифтов. Поэтому, хотя бы ради приличия, значения данных реквизитов всетаки стоит указать. Рис. 9 является комбинированным: в его верхней части размещены исходные значения, которые FontLab считал при импорте, а в нижней части помещена отредактированная информация.
Рис. 9
Редактирование установок окна Font identification values (рис. 10) также необязательно. Здесь можно задать значение параметра Type 1 Unique ID number, которое должно находиться в отведенных фирмой Adobe пределах, а также можно автоматически, нажатием соответствующей кнопки заполнить поле TrueType Unique ID record. Поле Type 1XUID number заполнять категорически не рекомендуется, его лучше вообще не трогать.
Рис. 10
Установки окна PANOSE font identification (рис. 11) редактировать не обязательно. Как известно, в отличие от офисной практики, макет конкретного издания жестко связывается с выбранными для него шрифтами, поэтому никакой пользы от подробного формирования PANOSE нет. Отметим, что лишь в случае, когда конвертируемый шрифт равноширинный, в позиции Proportion из выпадающего списка к параметру Record следует выбрать значение Monospaced.
Рис. 11
В следующей рабочей панели IBM and other identifications (рис. 12) желательно выставить маркергалочку около позиции Automatically link all ID values. Все остальные позиции можно не трогать. Только для подстраховки из выпадающего списка параметра MS ID была выбрана типовая категория Swiss. Впрочем, этого можно было и не делать.
На этом работа с титульными данными шрифта завершена. Со следующими группами панелей подсистемы Font Info мы ознакомимся в следующем подразделе.
Рис. 12
Метрический и табличный контроль
Функциональная группа подсистемы Font Info, которая называется Metrics and Dimensions, включает четыре рабочих панели. В первой из этих панелей — Font UPM value (рис. 13) — нужно проконтролировать, чтобы значение Fonts UPM было задано равным 1000, а также отметить галочкой опцию Scale all glyphs according to UPM change.
Рис. 13
Поскольку в данной статье не рассматривается разработка нового шрифта, а речь идет о конвертации рабочего PostScriptшрифта в формат OpenType, то этап заполнения рабочего окна с красноречивым названием Most impotent font dimensions существенно облегчен. На рис. 14 приведены исходные установки данного окна, считанные редактором FontLab из заголовка импортированного шрифта. Прежде чем выполнить пересчет этих данных, рекомендуется записать текущие установки, включая представленные в последней строке предельные значения размерных параметров знакового очка по координатам х и у. В нашем случае самая высокая буква в шрифте — это «Ё», ее высота — 913, что и зафиксировано в нижней строке.
Рис. 14
Рис. 15
На рис. 15 представлено то же окно с данными, полученными после нажатия на кнопку Recalculate. Заметим, что значение параметра Ascender было введено вручную. Кроме того, была помечена маркером опция Copy values to TrueType metrics.
После завершения предпринятых действий следует перейти к панели Additional font metrics. В случае если конвертируемый шрифт планируется использовать на обеих платформах, желательно перестраховаться и выполнить пересчет значений, последовательно нажав обе кнопки Recalculate. Результаты проведенных операций пересчета отражены на рис. 16. Завершая перестраховочные действия, контролируем значения параметров Win Ascet и Ascender, которые должны иметь значение 913.
Рис. 16
Следующее рабочее окно называется Subscript and Superscript positions (рис. 17). Значения представленных в нем восьми параметров установлены по умолчанию при импорте PostScriptшрифта. Изменять их мы не будем, заметим лишь, что редактор Fontographer при импорте PostScriptшрифтов аналогичным образом подставляет значения по умолчанию в опции OS/2 Positions. При этом подставляются почти те же значения параметров.
Рис. 17
Перейдем к группе Encoding and Unicode, которая состоит из двух панелей и отвечает за правильность кодирования шрифтовых символов по стандарту Unicode. Первая из этих панелей — Supported codepages and default character set — представлена на рис. 18. Сразу уточним, что этот рисунок отражает одну из возможных ситуаций, которые могут возникнуть при импорте в FontLab кириллических шрифтов в формате PostScript. Желающие более подробно исследовать данный вопрос могут попытаться импортировать PostScriptшрифты из комплекта CorelDRAW или первые кириллические разработки фирмы Adobe, например гарнитуру Minion. Формат журнальной статьи, к сожалению, не позволяет сделать обзор всех подобных ситуаций.
Рис. 18
Обратим внимание читателей на то, что в правом окне рис. 18, которое называется Supported codepages, наличествует только одна распознанная в импортированном шрифте кодовая таблица. Более того, для параметра Microsoft Character Set установлено несколько озадачивающее значение — Bitstream font set. Придерживаясь выбранного прагматического формата изложения, не будем углубляться в причины появления этих установок, а опишем конкретные действия, которые в данном случае необходимо предпринять.
Рис. 19
Первым делом следует выбрать из импортированного PostScriptшрифта 192й символ, то есть кириллическую букву «А» (рис. 19). Заголовок рисунка свидетельствует о том, что в окне находится нужный символ и что у него «правильное» кириллическое имя afii0017, а потому последующие действия сведутся к тому, чтобы добавить к верным именам кодировку по стандарту Unicode. Это тем более необходимо, что для некоторых символов шрифтового набора, возможно, потребуется скорректировать их Unicodeномера. Конечно, предпринимаемые контрольные действия могут показаться комуто избыточными, однако цель здесь совершенно очевидна — получить работоспособный шрифтовой файл в формате OpenType. Хочется надеяться, что это именно тот самый случай, когда цель оправдывает средства.
Для выполнения вышеописанной контрольной процедуры следует переключить интерфейс редактора в режим Unicode нажатием кнопки Codepages (рис. 20). В результате наименования знаков в заголовочных зонах заменяются на шестнадцатеричные кодовые значения. Для того чтобы обеспечить в окне компактную индикацию нужной комбинации латинских и кириллических знаков, в выпадающем меню надо выбрать кодовую страницу MS Windows 1251 Cyrillic.
Рис. 20
После выполнения контроля следует вновь вернуться к рабочему окну Supported codepages and default character set в подсистеме Font Info. Как следует из рис. 18, хотя в списке поддерживаемых кодовых страниц Supported codepages фигурирует только запись 1252 Latin, однако в списке доступных кодовых страниц Available codepages наличествует и строка 1251я Cyrillic. Нажатием на кнопку «стрелка вправо» эта запись перемещается в правое окно (рис. 21), после того как это сделано, для параметра Microsoft Character Set следует выбрать значение Cyrillic СР1251.
Рис. 21 является комбинированным: в его нижней части даны примеры формирования скриптовых записей для параметра Mac script and FOND ID. Пользователь может не выставлять самостоятельно числовые значения для идентификаторов, поскольку если выбрать нужный скрипт в окне Mac script and FOND ID, то программа автоматически сформирует значение идентификатора с помощью заложенного в ней псевдослучайного алгоритма.
Рис. 21
После того как результат выполненных действий зафиксирован нажатием кнопки Apply, можно переходить к панели Supported Unicode ranges (рис. 22). В этом окне следует установить поддерживаемый в данном шрифте набор юникодовских подмножеств, для чего достаточно нажать на уже знакомую кнопку с бриллиантиком.
Рис. 22
Описание действий со следующими тремя панелями, которые входят в функциональную группу Hinting Settings, завершает рассмотрение нашей работы с подсистемой Font Info по конвертации рассматриваемого шрифта. Опции Hinting Settings позволяют контролировать параметры разметки шрифта. Это необходимо для того, чтобы программа FontLab наилучшим образом могла выполнить автохинтование.
Рис. 23
Первая из рабочих панелей этой группы имеет довольно длинное название: Type 1 and TrueType Hinting: alignment zones. На рис. 23 показано, как будет выглядеть эта панель для импортированного шрифта. Как следует из рисунка, при импорте FontLab «вычитал» три зоны горизонтального выравнивания для левого «первичного» окна — Primary zones и одну зону для правого окна Secondary zones. Выполним автоматическую коррекцию этих значений, нажав кнопку Auto zones. Результаты корректировок представлены на рис. 24. Две новые зоны, появившиеся на этом рисунке, были введены вручную и выставлены для гарантированной фиксации свисающих элементов букв «Д», «Ц» и «Щ», а также «д», «ц» и «щ». Строго говоря, эти дополнительные зоны можно было и не вводить, однако на практике такая процедура иногда необходима.
Рис. 24
Следующий этап подготовки к автохинтованию выполняется при работе с панелью Type 1 hinting: standard stems, в которой задаются параметры толщин вертикальных и горизонтальных штрихов. От этих установок существенным образом зависит точность автоматического хинтования в программе. На рис. 25 представлены исходные значения параметров V stems и H stems. Чтобы повысить их точность, применим методику, которая известна многим опытным пользователям редактора Fontographer и состоит в нескольких повторах одной и той же последовательности действий. В принципе, можно было бы, оставив исходные значения, переходить к следующей рабочей панели, однако в ряде случаев описываемая ниже процедура может помочь создать шрифт, который качественно работает даже на малых кеглях. Перечислим последовательность действий по объявленной методике:
• с помощью клавиатурной комбинации Ctrl+A выделяем все шрифтовое окно;
• клавиатурной комбинацией Shift+F7 удаляем всю имевшуюся разметку;
• нажатием на функциональную клавишу F7 выполняем автохинтование;
• перейдя к окну Type 1 hinting: standard stems нажимаем кнопку перерасчета.
Принципиально важно, чтобы было выполнено не менее двух циклов перерасчетов. Откорректированные значения параметров автохинтования представлены на рис. 26.
Рис. 25
Рис. 26
Установки рабочей панели Type 1 hinting: global hinting parameters мы трогать не станем, поскольку при работе со многими современными «лаконизированными» наборными шрифтами, как гротесковыми, так и антиквенными, вполне достойные результаты могут быть получены и на базе тех значений, которые по умолчанию присваиваются параметрам этой панели самим редактором.
Если обратиться к рис. 5, то можно убедиться, что остались нерассмотренными, вопервых, панель Type 1 specific settings, вовторых, обширная функциональная группа TrueType specific settings и, наконец, панель для примечаний Font Notes.
Поскольку данная статья посвящена пусть и частной, но для практики важной теме — конвертации PostScriptшрифтов в формат OpenType — и не затрагивает шрифты TrueType, то это дает нам основания вообще не рассматривать работу с окнами группы TrueType specific setting. Вопрос же о том, какие примечания можно поместить в панели Font Notes, автор полностью оставляет на усмотрение читателей. Таким образом, остается нерассмотренной только одна панель — Type 1 specific settings, которая, судя по названию, может быть както связана с нашей тематикой. Однако, открыв ее, легко убедиться, что устанавливаемые там параметры предназначены для обслуживания экспорта из FontLab шрифтов в формате PostScript. Поскольку эта проблематика также не корреспондируется с задачами данной статьи, то перейдем непосредственно к генерации OpenTypeшрифта, которую методически целесообразно описать в отдельном разделе.
Генерируем OpenType
Каждый пользователь ПК хорошо знает, что полезно сохранять не только итоговые, но и промежуточные результаты работы. Хотя об этом в статье нигде не упоминалось, но эту процедуру следует выполнять регулярно. При этом файл сохраняется в собственном формате редактора VFB.
Для генерации шрифтовых файлов всех типов в редакторе выбирается опция Generate font из меню File, после чего открывается окно, представленное на рис. 27. В этом окне сначала необходимо выбрать тип генерируемого файла — OpenType, а затем зафиксировать кодовую таблицу в окне Export Options (рис. 28).
Рис. 27
Рис. 28
В окне Export Options следует отметить галочкой две опции: Export only first 256 characters of selected code page и Put MS Char Set value into fsSelection field. Хотя автор этих строк в своих разработках чаще всего первую из перечисленных опций не маркирует, ее включение может быть полезно, особенно когда не проводился скрупулезный контроль знакового состава шрифта. Отключение опции Put MS Char Set value into fsSelection field может быть полезно при работе на Мас OSплатформе. Однако и в этом случае нельзя дать однозначных рекомендаций.
После выбора кодовой таблицы следует вернуться к предыдущему окну, где нажатием кнопки «Сохранить» запускается процесс генерации OpenTypeшрифта. Результат этого процесса представлен на рис. 29.
Рис. 29
Можно и генерировать, и корректировать
Разработчики редактора FontLab сделали его интерфейс не только логичным, но и достаточно комфортным для пользователей. При этом для работы с ним, как правило, достаточно тех навыков, которые есть у большинства тружеников prepress, использующих Adobe Illustrator, CorelDRAW или FreeHand. Эти пользователи, дважды щелкнув мышью на любом шрифтовом символе и увидев там хорошо знакомую инструментальную линейку, вскоре обнаружат, что им вполне доступны пусть и несложные, но насущные действия по работе со знаками шрифта как с привычными для них объектами векторной графики.
Вернувшись к нашему примеру, попробуем скорректировать букву «ы» в одном из шрифтов семейства Herios. Предпринятая корректировка этой буквы (рис. 30) свелась фактически к двум простым действиям: вначале левая часть буквы была придвинута к правому штриху, а затем была выделена вся буква и отодвинута немного назад для центровки между апрошами.
Рис. 30
В заключение следует подчеркнуть, что получение приемлемых для рекламноиздательской практики результатов — дело непростое, особенно в той части, которую принято называть хинтованием. Эта работа нуждается в привлечении специалистов, которых, к сожалению, в нашей стране крайне мало. Поэтому автор пользуется случаем, чтобы предложить методически обоснованный и весьма доступный по стоимости вариант. В самом деле, и хинтование, и собственно генерацию шрифта можно заказать в фирме «ПараТайп», где есть специальное подразделение, возглавляемое Борисом Левиным. Все эти процедуры могут быть легко и быстро реализованы через Интернет. Естественно, при этом ничто не мешает пользоваться полученным образцом шрифта как своеобразным методическим пособием для совершенствования собственных навыков. Именно поэтому вполне уместно закончить статью известным слоганом: «Делай с нами, делай, как мы, делай лучше нас!»