Подружим regular и book

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

Такие ошибки и устраняются просто, и быстро забываются. Оставшуюся минимальную долю составляют ошибки в софте - они требуют больше времени для их устранения, да и запоминаются надолго.

Об одной из таких ошибок я и решил написать эту статью.

Прежде чем перейти к сути дела, я хотел бы поблагодарить пользователя feuerloescher с ProDTP за присланный баг - без него этой статьи не было бы.

Вот суть дела: в одной из расширенных шрифтовых гарнитур формата OpenType, существуют два начертания Regular и Book. При попытке набрать текст в InDesign двумя этими шрифтами в одном документе, случается странный казус - в Preflight InDesign-а, остаётся только один шрифт.

Какой именно, это зависит от того, какое начертание использовалось вначале Book или Regular.

Preflight

Вообще это достаточно редкий случай, когда в одной гарнитуре встречаются regular и book, обычно это свойственно для шрифтов формата Type1. Ещё хотелось бы добавить, что у InDesign очень сложный шрифтовой движок, который ещё не раз заставит содрогнуться художников шрифта и технический отдел.

Прежде чем рассказать, как именно можно заставить работать эти два начертания, я хотел бы немного остановиться на вкладках "Basic set of font names" и "Open type specific font names", программы FontLab Studio, а именно она нам понадобиться для нашей работы.

Для начала, давайте условимся, что наш шрифт будет называться "First Font ", это никакого тайного смысла не имеет - такое название необходимо для лучшего понимания самого процесса.

FontInfo

На первой вкладке "Basic set of font names", в поле "Family name", будет отображаться имя гарнитуры, для базовых начертаний (таких как regular, italic, bold, bold italic), плюс начертание для расширенной группы (например: medium, light, book, black…).

Помните, в этом поле запрещено использование спецзнаков и цифр, в противном случае в некоторых программах это может вызвать проблемы при работе шрифта.

И так, для нормального начертания, это поле будет заполнено как First Font, для книжного - FirstFont Book.

Следующее поле - "Weight", характеризует «вес» шрифта, для нормального начертания, оно останется normal, а для книжного начертания, будет book. Поле "Width", служит для идентификации ширины знаков шрифта, в нашем случае ширина знаков у обоих начертаний нормальная, и обозначена как Normal.

Выключатели "Font is bold", "Font is Italic", должны быть выключены для нормальных начертаний , и включёны для полужирного и курсивных начертаний.

Для нашего случая данные выключатели должны быть сброшены, в противном случае, шрифты будут неверно идентифицированы. Так же обратите внимание на кнопку "More style", на этой вкладке.

Вы можете выбрать дополнительные стили шрифта. По тому же самому принципу работает поле "Style name".

Поле "PS Font Name", отображает PostScript имя шрифта, и не должно содержать пробелов. В нашем случае, для нормального начертания, заполняем как FirstFont, для книжного - FirstFontBook.

В отличии от "PS Font Name", поле "Full Name", может содержать пробелы и тире и будет выглядеть приблизительно так: First Font и First Font-Book, соответственно для нормального и книжного начертаний.

Поле "Menu name", отображается в программах при выборе шрифта, правда есть и исключения, например программы поддерживающие расширенную гарнитуру OpenType, отображают значения из поля "OT Style name", но об этом немного позднее.

На самом деле, в программах могут отображаться и другие имена. Поле "FOND Name", отображает данные FOND, и необходимо для компьютеров Macintosh.

OpenType Specific Names

Переходим к вкладке "OpenType specific font names". Данная вкладка посвящена OpenType именам.

Как и на предыдущей вкладке, в поле "OT Family name", отображается имя гарнитуры, с той лишь разницей, что на этой вкладке не должно быть начертания, в противном случае, большая гарнитура будет дробиться на несколько маленьких. Рассмотрим это на примере, для наших шрифтов.

Значения у этого поля будут одинаковыми для книжного и нормального начертаний - First Font Давайте на миг предположим, что наша гарнитура имеет не два, а пять начертаний: Regular, Book, Medium, Light, Black.

Если вы хотите, что бы все эти начертания отображались как единая гарнитура ( например в InDesign), то значения поля "OT Family name", должно быть одинаковым у всех данных начертаний.

Поле "OT Style name", отображает стиль начертания, как раз отсутствующий в поле "OT Family name", в нашем случае - Regular и Book.

Например, данные с этого поля будут отображаться в выпадающем списке начертаний в программах поддерживающих расширенные гарнитуры OpenType, остальные это поле игнорируют. Имена из поля "Mac name", отображаются на компьютерах Macintosh.

Так как OpenType формат кроссплатформенный, то необходимо быть внимательным при заполнении данных полей, в целях предотвращения проблем с работой шрифта.

Для генерации параметров на данных вкладках, в автоматическом режиме, существуют кнопки Build Style Name, Build names, Build OpenType Names.

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

Ну вот мы и подошли к самой сути - ради чего и писалась данная статья. Как это не смешно, но решение проблемы весьма и весьма простое: откройте шрифт с начертанием Book в FontLab Studio, идём в меню File > FontInfo, или жмём Ctrl+Alt+F.

Выбираем вкладку "Open type specific font names", а на ней поле "OT Style name". Перед Book, ставим пробел.

Всё! Генерируем шрифт.

Решение визуально не совсем эстетическое - теперь при выборе начертания из списка, начертание Book будет отбито пробелом , что немного «режет глаз»

Preflight

Осталось дело за малым - установить новые версии шрифта, предварительно удалив старые, и почистив кэш - удалив файлы AdobeFntXХ.lst, где ХX - это любая цифра, предварительно найдя их поиском по системе.

На самом деле, это не все вкладки в FontLab Studio, отвечающие за имена, имён в шрифте может быть гораздо больше, но об этом в следующий раз... Удачной работы!

Вместо послесловия:

С появлением пакета CS3, достаточно удалить AdobeFnt.lst, не закрывая программы, и новые версии шрифтов будут подхвачены. (спасибо Henyk!).

Выражаю огромную благодарность Евгению Дубинину за правки текста.