Все статьи
24 сентября 2026 г.7 мин чтения

После экспорта исчезают части букв: как проверить контуры шрифта

После экспорта исчезают части букв: как проверить контуры шрифта

Сначала отличите дефект рисунка от ошибки заливки

Если после экспорта TTF или OTF буква потеряла часть штриха, получила чёрное пятно либо закрытый просвет, не перерисовывайте её сразу. Сравните одну и ту же букву в исходнике, в установочном файле и в двух независимых просмотрщиках. Когда исходный контур выглядит правильно, а экспортированная версия меняется, проверьте замкнутость путей, пересечения и направление внешнего и внутреннего контуров. Эти проверки помогают найти ошибку сборки, не меняя характер почерка.

Что именно могут означать «сломанные контуры»

Глиф шрифта — не готовая растровая картинка. В контурном формате он описан точками и сегментами, которые программа вывода затем превращает в заполненную форму. У одной буквы может быть несколько замкнутых путей: внешний силуэт и внутренние просветы. Проблема возникает, если путь остался открытым, два контура пересекаются нежелательным образом, или их направление сообщает растеризатору не ту область, которую нужно закрасить.

Симптомы различаются. У «о» или «а» может исчезнуть просвет; у «е» — закрыться глазок; у буквы с петлёй появляются неожиданные пустоты или залитые участки; отдельная тонкая перемычка пропадает. Артефакт иногда виден только в одном формате или размере. Сам факт, что файл открывается и проходит проверку целостности, не подтверждает, что каждый глиф будет залит ожидаемо: контрольная сумма отвечает на другой вопрос.

Почему направление пути влияет на просветы

Для TrueType-контуров правила заливки учитывают направление и число пересечений луча с границами формы. В базовом описании Microsoft чёрная область определяется ненулевым числом обхода; порядок точек поэтому влияет на то, что растеризатор считает внутренней областью. У буквы «о» внешний контур и контур отверстия должны описывать разные стороны заливки. Если внутренний путь направлен так же, как внешний, программа может трактовать просвет как часть сплошной формы.

Точные требования зависят от типа контуров и способа сохранения. Не переносите правило направления из одного формата в другой вслепую: редакторы могут поддерживать внутреннее представление, отличающееся от порядка данных в итоговом файле, а разные алгоритмы заливки ведут себя не одинаково. Microsoft описывает поведение TrueType, а документация FontForge отдельно поясняет проверки для TrueType и PostScript. Перед исправлением уточните, какой формат открыт и какой формат собираетесь экспортировать.

Диагностика: найдите конкретный глиф и конкретный контур

Сохраните контрольные копии

Сделайте копию проекта до любых автоматических исправлений и экспортируйте отдельный тестовый файл с новым именем. Запишите версию редактора и формат. Это даст возможность вернуться к исходной геометрии и понять, изменился ли именно контур или только способ отображения. Не устанавливайте тестовую сборку поверх старой: приложение может продолжить показывать кэшированный экземпляр, и сравнение окажется недостоверным.

Составьте короткую таблицу симптомов

Для каждой проблемной буквы отметьте, какой участок изменился: залился просвет, оборвалась линия, пропала часть внешнего штриха или появились лишние пиксели. Укажите, повторяется ли дефект в исходнике, в превью редактора, после экспорта и в разных программах. Например: «строчная а — просвет закрыт в тестовом OTF при 18 pt, в исходной форме открыт». Такая запись связывает визуальный результат с конкретным глифом и не позволяет спутать его с метриками строки или масштабированием экрана.

Проверьте документированным валидатором

В FontForge откройте функцию проверки шрифта или глифа и посмотрите, сообщает ли она об открытых путях, самопересечениях, пересечениях нескольких контуров и неправильном направлении. Утилита fontlint также перечисляет пересекающиеся или самопересекающиеся контуры и контуры с неверной ориентацией среди проверяемых проблем. Названия команд зависят от версии программы; ищите именно валидатор контуров, а не общую проверку файла. Для другого редактора пользуйтесь его справкой и не считайте отсутствие предупреждения доказательством безошибочности.

Исправляйте геометрию по одному типу дефекта

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

После автоматического исправления визуально сравните букву с образцом почерка. «Исправить направление» может решить заливку, но не восстановит намеренный разрыв, не уберёт лишнюю петлю и не сохранит толщину штриха само по себе. Для рукописной буквы важен мягкий переход линии; при ручной правке смотрите на узлы и управляющие точки при увеличении, затем оценивайте тот же знак в слове и в обычном размере. Сначала меняйте один контур, повторно проверяйте глиф и только после этого переходите к следующему.

Три примера, которые помогают локализовать причину

  • У «о» залился просвет: проверьте, что отверстие задано отдельным замкнутым контуром, не касается внешнего пути и имеет ожидаемое направление для выбранного формата.
  • У «а» исчезла перемычка: увеличьте проблемный узел и посмотрите, не пересекаются ли два сегмента в одном месте и нет ли почти совпадающих точек, создающих тонкий зазор.
  • У «е» появился чёрный клин: проверьте самопересечение в месте встречи дуги и перекладины. Если дефект есть только при малом размере, отдельно сравните результат растеризации, не переписывая контур без подтверждения.

Это диагностические примеры, а не универсальные рецепты: схожий артефакт может возникнуть по разным причинам. Главный критерий — найденная ошибка должна совпадать с местом дефекта и исчезнуть в повторной сборке.

Отдельно отличайте ошибку заливки от дефекта сглаживания. Серое пятно у края на экране может появляться из-за пиксельной сетки, тогда как закрытый просвет сохраняется и при увеличении формы. Попросите программу показать контур без сглаживания или увеличьте его в редакторе узлов: если граница сама по себе замкнулась неправильно, вы увидите ошибку геометрии. Если форма верная, сравните целый файл в другом растеризаторе до правки источника.

Контрольный экспорт после правки

  1. Сохраните проект как новую контрольную копию, чтобы исходные контуры оставались доступными.
  2. Проверьте только затронутые глифы валидатором; изучите каждое предупреждение, не применяя исправления пакетом.
  3. Экспортируйте в целевой формат и установите тестовый файл отдельно от старой версии.
  4. Наберите проблемные буквы поодиночке, затем в коротких словах и в обычном рабочем размере.
  5. Откройте тот же файл во втором приложении и сравните характер заполнения формы.
  6. Проверьте, что правка не изменила соседние контуры, ширину знака, просветы и узнаваемость рукописного рисунка.

Если редактор валидирует исходник, но проблема появляется только в одном приложении, сохраните сведения о версии приложения, формате файла и размере текста. Это помогает отделить содержимое глифа от особенностей конкретного рендерера. Если же один и тот же дефект повторяется в нескольких программах, возвращайтесь к геометрии и проверке итогового файла.

Ошибки, которые делают диагностику дольше

Автоматически исправлять все найденные глифы

Командная коррекция может изменить множество форм и затронуть намеренные особенности рисунка. Начните с одного подтверждённого глифа, проверьте результат и сравните его с образцом. Если валидатор выдаёт длинный список, разделите ошибки по типам и исправляйте пакетами только после того, как на копии поняли действие каждого правила.

Считать любую линию пересечения поломкой

Некоторые редакторы предупреждают о пересечениях, хотя визуальная форма кажется приемлемой. Документация FontForge говорит, что пересекающиеся контуры нежелательны и объясняет, почему их заливка может стать непредсказуемой; однако сообщение валидатора требует оценки контекста и целевого формата. Не удаляйте узел или петлю без проверки итоговой отрисовки: иногда важно исправить топологию, а не просто убрать пересечение геометрически.

Оценивать только экранное превью

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

Чек-лист перед финальной сборкой

  • Исходная копия сохранена до исправлений.
  • Каждый подозрительный глиф назван и привязан к повторяемому симптому.
  • Проверены открытые пути, самопересечения и направление внешних и внутренних контуров.
  • Исправления внесены только в подтверждённые контуры.
  • После экспорта тестовый файл проверен в двух приложениях и в коротком тексте.
  • Просветы и соединения выглядят ожидаемо, а характер почерка не изменился.

Частые вопросы

Почему буква выглядит правильно в редакторе, но неправильно после экспорта?

Редактор может показывать собственное представление контура, а итоговый файл интерпретируется растеризатором целевого формата. Проверьте открытые пути, пересечения и направление контуров в экспортированной версии, затем сравните её в другом приложении.

Нужно ли вручную менять направление каждого контура?

Нет. Сначала выясните, есть ли подтверждённый дефект и какой тип контуров использован. Исправляйте только проблемные пути, а автоматическую команду проверяйте на копии и повторным экспортом.

Открытый контур всегда запрещает экспорт?

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

Если валидатор не показывает ошибок, шрифт готов?

Не обязательно. Валидатор ищет известные ему классы проблем, но не оценивает, похожа ли буква на задуманную и удобна ли она в слове. После проверки нужен контрольный экспорт и визуальная проба проблемных глифов в целевых приложениях.

Можно ли исправить залитый просвет изменением метрик?

Нет. Метрики влияют на положение и шаг знака, а не на внутреннюю заливку его контура. Если изменилась форма штриха или отверстия, исследуйте контур и правила его интерпретации.

Что делать, если дефект виден только в одном просмотрщике?

Сравните тот же файл в другом приложении и в нескольких размерах, сохраняя одинаковый текст. Если контуры стабильно выглядят правильно в других местах, зафиксируйте просмотрщик и версию: вероятна особенность его растеризации, а не потеря данных при экспорте.

Источники по технической части

Для объяснения заливки использованы первичные технические материалы: описание контуров TrueType в спецификации OpenType от Microsoft и документация FontForge по проверке и направлению контуров. См. спецификация OpenType Microsoft, документация FontForge по валидации и справка FontForge fontlint.

Итог

Если в рукописном шрифте после экспорта залились просветы или пропали части штрихов, сначала найдите конкретный глиф, а затем проверьте замкнутость, пересечения и направление его контуров. Исправляйте малым шагом и подтверждайте результат отдельной сборкой. Создать и проверить собственный рукописный набор можно в Fontgenerator, затем используйте контрольные пробы перед передачей файла.