Как расширить готовый шрифт новыми знаками и сохранить старые тексты

После первой сборки шрифт часто хочется дополнить: добавить цифры, кавычки, букву с диакритикой или нужный знак валюты. Безопасное расширение начинается с фиксации уже работающего файла и проверки кодовых точек: символ в тексте должен по-прежнему находить свою букву в шрифте. Затем добавляют только нужные знаки, собирают новую копию и сравнивают старые и новые контрольные строки в целевых приложениях. Так новая версия решает задачу, не превращая старые документы в лотерею.
Чем дополнение отличается от исправления буквы
При исправлении меняется рисунок уже существующего знака: например, строчная «а» становится яснее. При расширении добавляется новая возможность набора: в шрифте появляются цифры, скобки или буква другого языка. Эти задачи могут пересекаться, но проверять их нужно отдельно. Иначе трудно понять, сломался старый знак или неправильно подключился новый.
Установленный шрифт связывает символы текста с рисунками букв. В OpenType эту связь описывает таблица cmap: она сопоставляет кодовые точки символов с индексами глифов. Поэтому добавленная форма сама по себе ещё не означает, что нужный знак появится при наборе. Надо проверить и рисунок, и связь с ожидаемым символом. Подробно устройство этой таблицы описано в спецификации OpenType от Microsoft; Unicode отдельно поясняет, что кодовая точка символа и его графическое начертание — разные понятия (Unicode, глава 2).
Сначала решите, какие именно знаки нужны
Фраза «добавить пунктуацию» слишком широка для одного цикла. Составьте короткий список реальных слов и фраз, где сейчас возникает пустой прямоугольник, подмена или неудобная вставка картинки. Для небольшого личного набора это могут быть цифры для дат и цен, кавычки для русских названий, знак процента для заметок или отдельные латинские буквы для имён.
Записывайте символ так, как он должен встречаться в тексте, а рядом — пример применения и приоритет. Это помогает не перепутать похожие, но разные символы: дефис, короткое тире и длинное тире; обычный пробел и неразрывный; латинскую A и кириллическую А. Визуально похожие знаки имеют разные коды и могут встречаться в одном документе одновременно.
Цифры и разделители — Даты, цены, номера. Риск: Цифры набираются, но выглядят слишком разнородно
Кавычки и тире — Русский абзац с прямой речью. Риск: Подставляется не тот вид кавычек или тире
Буквы с диакритикой — Имена и заимствованные слова. Риск: Акцент отсутствует или тесно сталкивается с соседней буквой
Знаки валют и процентов — Ценник, сумма, таблица. Риск: Знак есть, но его размер и интервалы не подходят строке
Не обязательно сразу превращать рукописный проект в универсальный шрифт. Сначала закройте задачи, которые действительно встречаются в ваших текстах. Остальные символы можно добавить отдельным выпуском, когда появится понятный пример их использования.
Заморозьте контрольную точку
Перед изменениями скопируйте исходники проекта, шаблон или фотографии заполненных ячеек, текущий файл шрифта и несколько текстов для проверки. Сохраните копию отдельно и назовите её так, чтобы не принять за новую. Если процесс ведётся в Fontgenerator, сохраните полученный файл и исходные материалы локально; не полагайтесь на один установленный экземпляр на компьютере.
В контрольной папке держите короткую исходную строку, в которой есть знаки, уже поддерживаемые шрифтом. Например: «Мама купила 3 яблока — цена 120 ₽». Включите в неё важные для проекта буквы, слова и сочетания. Это не универсальный тест, а эталон именно вашего набора. Его назначение — показать, что новые действия не изменили то, что прежде работало.
Зафиксируйте и сведения о сборке: дату, имя файла, внутреннее имя семейства, версию, список знаков и приложения, где проверяли результат. Такой снимок состояния не требует специальной системы версий. Достаточно папки с понятными именами и краткой заметки, которую можно прочитать через месяц.
Проверьте кодовую точку, а не только название глифа
В редакторе шрифтов часто видны имена вроде quotedbl, Euro или внутренние названия, но для текста важнее соответствие нужной кодовой точке. Для каждого нового символа проверьте три вещи: в ожидаемой ячейке есть рисунок; символ вставляется из обычного текста; его код не занят другим знаком. Ориентируйтесь на таблицу символов или панель кодирования используемого редактора, а код сверяйте с надёжным справочником, например с официальным поиском Unicode (Where is my Character?).
Не назначайте произвольный код только потому, что пустая ячейка удобна. Если текст содержит обычный знак евро, он должен обращаться к соответствующему символу Unicode, а не к случайной ячейке. Иначе знак может отображаться у вас, но не сработать при копировании текста на другое устройство или при смене шрифта.
Одинаковая форма тоже не всегда означает один символ. Кириллическая «А» и латинская «A» выглядят похоже в некоторых гарнитурах, но используются в разных словах и имеют разные кодовые точки. Если проекту нужен смешанный текст, добавьте обе формы в список и проверьте каждую отдельно. Не подменяйте один алфавит другим ради экономии одной ячейки.
Добавляйте по небольшим группам
Сгруппируйте новые знаки по задаче: сначала цифры и основные разделители, затем кавычки и тире, потом редкие буквы. Для каждой группы подготовьте один пример строки. Если добавить сразу десятки разнородных символов, при ошибке будет трудно найти источник: рисунок, кодировка, ширина ячейки или настройки экспорта.
Работайте от общей конструкции к частностям. Цифры сравните между собой по высоте, наклону и толщине штриха; знаки пунктуации — по размеру и отступам; диакритические буквы — по месту надстрочного элемента и свободному пространству. У нового знака должен быть тот же визуальный голос, что и у готового набора, но не обязательно точно такая же ширина или форма соединения.
После одной группы сохраните отдельную рабочую копию проекта. В короткой заметке перечислите, что изменили и какой текст используете для проверки. Не перезаписывайте контрольную сборку и не редактируйте единственный экземпляр исходников. Если очередная группа испортила форму или поведение, вы сможете вернуться к последнему осмысленному состоянию, не теряя работу над остальными знаками.
Соберите выпуск и проверьте старый набор
Экспортируйте новый файл с различимым именем, чтобы его можно было установить рядом с контрольной копией или заменить осознанно. Не ориентируйтесь лишь на суффикс в названии файла: проверьте, что внутри указаны ожидаемые семейство и версия. Отдельные приложения могут кэшировать список шрифтов или продолжать показывать ранее установленный экземпляр, поэтому после установки перезапустите приложение и убедитесь, какой файл оно использует.
Сначала наберите старую контрольную строку. Сверьте все знаки, интервалы, переносы и общую высоту. Затем добавьте строки с новыми символами: отдельно по одному знаку, затем в словах, числах и пунктуации. Единичный тест помогает обнаружить неверную привязку, а контекстный — увидеть плохой интервал или неудачную форму в соседстве с другими буквами.
Откройте документ в тех программах и на тех устройствах, где шрифт действительно нужен. В одной среде символ может отображаться за счёт подстановки другого шрифта, а в другой обнаружится отсутствующий глиф. Для проверки полезно временно сравнить результат со стандартным шрифтом: если новый символ визуально отличается по размеру, слишком низко сидит или внезапно меняет стиль, это повод проверить его рисунок и метрики.
Для веб-шрифта проверяйте именно опубликованный файл и набор символов, который загрузит страница. Для настольного сценария проверьте установленную копию и, если документ передаётся другому человеку, откройте его на втором устройстве или подготовьте PDF с встраиванием шрифта, когда это подходит задаче. Одной успешной строки в редакторе недостаточно, если конечный документ открывается в другом месте.
Запишите, что изменилось
К новой сборке приложите заметку из трёх частей: какие знаки добавлены, какую задачу они закрывают, какие старые строки перепроверены. Например: «Добавлены цифры 0–9, скобки и знак процента для карточек товара; повторно проверена строка с датой и суммой в текстовом редакторе и PDF». Если обнаружился известный пробел — например, ещё нет верхних кавычек — запишите это прямо, чтобы следующий выпуск не начинался с повторного расследования.
Не называйте выпуск «финальный», если это лишь промежуточная сборка для проверки. Дайте файлу имя, связанное с проектом и номером итерации, а подтверждённый выпуск пометьте как стабильный в своей папке или заметке. Само обозначение версии может быть простым; важнее, чтобы оно однозначно связывало файл, список изменений и результаты проверки.
Частые ошибки
- Сразу добавить всё подряд. Большой разнородный список усложняет проверку. Выберите одну практическую группу и один сценарий набора.
- Проверить только вид рисунка. Красивый знак в таблице не гарантирует, что его можно набрать нужным символом. Проверьте кодовую точку и реальную вставку из текста.
- Изменить старые ячейки ради новых. Не очищайте и не переназначайте уже используемые знаки без причины. Дополнение должно сохранять прежние соответствия.
- Сравнивать только новую строку. Без неизменённого старого примера регрессия останется незамеченной. Каждый выпуск прогоняйте через одну и ту же контрольную фразу.
- Считать установку проверкой. Установленный файл может не быть тем экземпляром, который показывает приложение. Проверьте внутреннее имя и перезапустите программу.
- Хранить только экспорт. В готовом TTF нет удобной истории рисунков и промежуточных решений. Сохраняйте исходные материалы проекта и контрольную копию.
Чек-лист перед передачей новой версии
- Исходники и предыдущий шрифт скопированы отдельно.
- Новые символы перечислены с примерами употребления.
- Для каждого знака проверены рисунок и кодовая точка.
- Старые контрольные строки набраны новой сборкой без неожиданных замен.
- Новые знаки проверены и по одному, и в контексте слов или чисел.
- Файл открыт в целевых приложениях после установки или обновления.
- Имя выпуска и заметка об изменениях позволяют найти нужный файл.
- Известные ограничения записаны, а не скрыты за словом «готово».
Часто задаваемые вопросы
Можно ли добавить новые символы, не меняя старые?
Да. Сохраните контрольную копию, добавьте новые глифы в свободные ячейки и назначьте им правильные кодовые точки. После экспорта сравните старые контрольные строки с прежней сборкой. Если таблица соответствий старых символов не менялась, обычный текст продолжит обращаться к тем же знакам.
Нужно ли каждый раз собирать весь шрифт заново?
Если инструмент формирует итоговый файл из проекта, новая сборка обычно включает все знаки проекта, а не только добавленные. Это ожидаемо: проверяйте получившийся файл целиком и не заменяйте им исходную версию до сравнения. Точный процесс зависит от редактора или сервиса, которым вы пользуетесь.
Почему новый символ виден в таблице, но не набирается?
Вероятно, у рисунка нет нужного Unicode-сопоставления или в тексте используется другой похожий символ. Сверьте кодовую точку, настройку кодирования и фактически установленный файл. Затем скопируйте сам символ из контрольного текста и проверьте его в простой строке без форматирования.
Можно ли переназначить уже используемый знак на другую ячейку?
Это рискованно. Старые тексты хранят символы, а шрифт связывает их с глифами; изменение соответствия может заставить существующий символ показывать другой рисунок. Меняйте такую привязку только при осознанной миграции и обязательно сравнивайте старые документы. Для обычного дополнения оставляйте проверенные соответствия на месте.
Как проверить, что приложение использует именно новую версию?
Экспортируйте файл с ясным именем, установите его по инструкции своей операционной системы и перезапустите приложение. Сверьте внутреннее имя семейства и версию в панели выбора шрифта. Если версии слились или отображается старый рисунок, проверьте дубликаты и кэш приложения.
Стоит ли добавлять все знаки Unicode сразу?
Нет, если они не нужны вашим сценариям. Начните с конкретных текстов: имён, дат, цен, сообщений или документов, которые вы действительно набираете. Такой список помогает определить полезный минимальный набор и постепенно расширять его без лишней работы.
Итог
Расширяйте собранный шрифт как отдельный выпуск: сохраняйте исходную точку, добавляйте знаки небольшими осмысленными группами, проверяйте кодовые точки и повторяйте старые контрольные строки. Новая версия считается готовой, когда в ней не только появился нужный символ, но и сохранились привычные тексты и поведение в целевых приложениях. Создать или пересобрать рукописный шрифт можно в Fontgenerator.