Распаковка оригинальных растровых шрифтов Macintosh
Я большой поклонник растровой гарнитуры Chicago от Сьюзан Каре. Если вы старше 25-ти, то она знакома вам как системный шрифт Macintosh с 1980-х по 1990-е годы, а потом его ещё вызвали на бис для маленьких экранчиков первых iPod. За известностью гарнитуры скрывается солидная работа. Маленьким растровым буквам трудно придать уникальную и гармоничную индивидуальность, но Chicago делает это: высококонтрастный рубленый шрифт с горсткой ключевых завитков, создающих дружелюбное впечатление. Выглядит так:
Я люблю его контрольные u, v, w, m, n. Недавно я подготовил очень полезный курс по дизайну современных шрифтов, после чего захотелось разобрать Chicago и посмотреть, можно ли больше узнать о том, как работает этот дизайн. Этого шрифта нет на современном MacBook. Я поискал в онлайне, но быстро понял, что во всех коллекциях бесплатных шрифтов представлены только подделки.
Поскольку шрифт — это не только его пиксели, но и интервалы, я хотел увидеть подлинный исходный материал для Chicago. Для этого понадобилось провести некоторое археологическое цифровое расследование: оригинальный Macintosh от 1984 года стал первым массовым компьютером с пропорциональной типографикой на экране, и у него был совершенно уникальный способ хранения и управления шрифтами. (Стандарты вроде TrueType ещё не появились).
У меня есть некоторый опыт в программировании шрифтов, поэтому мне удалось извлечь подлинные данные 1984 года о шрифте с помощью своего компьютера 2018 года (технические детали слегка выходят за рамки этой статьи, но если вам интересно, они в конце текста в примечании). Получив данные о шрифте, растре и интервалах для Chicago, я применил ту же небольшую программу для извлечения всех остальных растровых шрифтов Macintosh.
Вот полная таблица Chicago в его единственном родном размере 12pt:
Заглавная М действительно делает это
Межсимвольный интервал выше отображается как задумано. Он работает хорошо, но если присмотреться, то кое-где он не идеален. Например, заглавные H и I слишком далеко друг от друга. Как и символы i и j в нижнем регистре. Если бы вы сегодня разрабатывали этот шрифт, то захотели бы настроить кернинг (интервал) этих конкретных пар, когда они появляются рядом друг с другом.
Но растровые шрифты Mac не поддерживали современный кернинг для отдельных пар. Вместо этого каждый символ растрового изображения сопровождался фиксированным количеством пространства слева и справа, а также инструкцией, где начинать отрисовку символа относительно местоположения «пера».
Вот визуальное объяснение по спецификации и отрисовке символов, взятое из документации Inside Macintosh от Apple:
Источник: Inside Macintosh, том I (1985)
В интервалах было некоторое разнообразие, но его требовалось зафиксировать в каждом символе. Это осложнялось тем, что растровые шрифты обязательно совпадают с пикселями на экране: у вас не может быть дробного интервала, поэтому по определению идеальное позиционирование невозможно.
Что мы видим — это вынужденный консерватизм с кернингом: пусть мы будем выглядеть более-менее нормально всё время, чем по-настоящему плохо в отдельных случаях. В Chicago обычно интервал между символами составляет два пикселя. Есть несколько осторожных исключений: внимательно посмотрите, например, на заглавную T и строчную r.
Вот небольшой пример, который показывает как сильные, так и слабые стороны интервалов Chicago:
Интересно было бы воссоздать Chicago с идентичными растровыми изображениями, но добавить попарный кернинг. Так можно улучшить шрифт, хотя он и потеряет часть своей уникальной идентичности. Вот мой вариант того же текста с несколькими ручными настройками интервалов:
(Битвы за полпикселя)
Есть несколько других оригинальных растровых шрифтов Macintosh, почти все разработаны Каре и названы в честь мировых городов. Geneva — низкоконтрастный рубленый шрифт (якобы хитрая ссылка на Helvetica, но это точно не подделка). New York — строгий текст с засечками, доступный в нескольких размерах.
New York служит примером креативности и грубого дизайна растрового шрифта. У него много деталей (контраста) на больших размерах, которые внезапно исчезают ниже 18 точек:
Почему строчная w теряет свое перекрытие на размерах 12 и 14, восстанавливая только на 10?
(Хм, это что-то напоминает).
San Francisco — название текущего стандартного шрифта Apple для корпоративного брендинга, а также для пользовательского интерфейса на всех платформах. Но давние пользователи Mac могут помнить оригинальный шрифт в стиле записки с требованием выкупа с таким названием:
Давние жители Сан-Франциско также могут увидеть некую метафору в одноимённом шрифте, но это совсем другая история
В любом случае, что там за спрятанная овца, спросите вы? Ну, деконструкция оригинальных ресурсов шрифтов Mac выявила нечто загадочное: в нескольких шрифтах, хотя и не во всех, есть неожиданный секретный символ, скрытый рядом с обычными.
Дело в том, что ещё в 1980-е годы было доступно не более 256 символов. Различные платформы немного по-разному присваивали коды символам. Оригинальный Macintosh использовал систему, которую в итоге назовут Mac Roman. В 1984 году у неё ещё не было названия, но выглядела она так:
Источник: Inside Macintosh, том I (1985)
Если вы читаете таблицу сверху вниз слева направо, то можете увидеть, что это похоже на полный набор символов Chicago, приведённый выше. Другими словами, Chicago имеет символ шрифта для каждого из занятых полей на графике.
Но в таблице две пустые области: левая сторона с низкими кодовыми номерами по соглашению зарезервирована для непечатаемых контрольных символов, и правая сторона, которая описана в документации так: «Коды с $D9 до $FF зарезервированы для будущего расширения».
Так что эти верхние значения (от шестнадцатеричного значения $D9 до последнего $FF) не соответствуют никаким клавишам на клавиатуре и никаким комбинациям для международных или других символов. Таким образом, нет никаких причин, почему бы не включить в шрифт для данного кода произвольную растровую информацию… верно?
Женебееее
Версия Geneva на 18 пунктах включает в себя все привычные символы, но на позиции $D9 здесь очаровательная овца, показанная вверху. На других размерах у Geneva в этом месте разные маленькие значки (кролик, иероглиф, иконка Mac). Если спустится на 9 пунктов, то овца возвращается снова, но уже крошечная!
Крошечная овечка на 9 пунктах
В Chicago нет никакого символа в позиции $D9. Однако в New York он есть, разный на каждом размере шрифта. Некоторые изображения — это повторы иконок из неалфавитных шрифтов (Cairo и Taliesin). Но других, как овечка и как милые отпечатки лап (внизу) из Athens, там нет — это причудливые пасхальные яйца.
Если вы знаете, что искать, вот инструменты разработчика, которые могут показать вам скрытые изображения. Но я не думаю, что есть какой-то способ нормальным образом увидеть или использовать эти символы $D9 в классической Mac OS.
Полные наборы символов многих оригинальных шрифтов Macintosh загружены сюда, если хотите посмотреть на все пасхальные яйца (или изучить дизайн пиксельной сетки в удобном формате).
В классической Mac OS было очень мало постоянной и оперативной памяти, как и вычислительной мощи. Сьюзан Каре, Билл Аткинсон и другие много сделали с точки зрения дизайна и технологии, имея так мало ресурсов, и даже оставили нам эти скрытые дудлы, на которые цифровые археологи наткнулись спустя столько лет.
Примечание: Методология. Я использовал эмулятор Mac на современном MacBook Pro для загрузки System 7. Там я смонтировал образы System 1 и 2 и скопировал их системные файлы и файлы шрифтов на том HFS+ на хосте, чтобы сохранить ресурсы (и данные шрифтов). Удобное приложение rezycle помогло разбить данные ресурсов на двоичные файлы. Бинарный формат ресурсов FONT задокументирован в Inside Macintosh в разделе о Font Manager. Также описан базовый алгоритм рендеринга текста QuickDraw. Этого оказалось достаточно, чтобы написать небольшую программу для парсинга данных шрифтов и рендеринга текста — с дополнительной пиксельной сеткой, чтобы лучше показать дизайн символов и интервалы. Я использовал эту программу для создания всех образцов, опубликованных выше в этой статье.
Я загрузил очищенный код программы на GitHub. Там же папка, заполненная отрендеренными символами.
Автор: m1rko