Как проверить столкновение выносных элементов рукописного шрифта в разных кеглях

Рукописный шрифт может выглядеть аккуратно в одной строке и превращать соседние строки в спутанный узор, когда надстрочные и подстрочные штрихи оказываются слишком близко. Проверяйте не только контур отдельных букв, но и расстояние между базовыми линиями при нескольких кеглях: размер текста меняет масштаб выносных элементов и взаимодействует с межстрочным интервалом. Ниже — короткий способ найти опасные сочетания и понять, где править шрифт, а где настройки набора.
Что именно сталкивается между строками
У строчных букв есть части, выходящие за условную высоту основного корпуса: верхние элементы поднимаются выше зоны «х», нижние уходят ниже базовой линии. В русском наборе особенно наглядны б, д, р, у, ф, ц, щ, а также сочетания с й и ё. У рукописного рисунка вынос может быть длинным, закруглённым или наклонённым; поэтому важно смотреть не только на формальную высоту, но и на направление штриха. Нижняя петля «у» способна визуально войти в верхнюю часть строки ниже, даже если линии математически не пересеклись.
Под столкновением здесь понимается не только физическое наложение чёрных контуров. Между строками может остаться белый зазор, но он окажется настолько узким, что два штриха сольются при быстром чтении или при печати. Обратная крайность тоже заметна: если ради одного длинного хвоста приходится сильно разводить строки, короткие буквы кажутся редкими, а абзац теряет связность. Проверка должна найти рабочий компромисс для конкретного текста и набора размеров.
Почему одной проверки букв недостаточно
Кегль задаёт масштаб шрифта, а межстрочный интервал — расстояние между строками. Эти величины меняются совместно, но не всегда пропорционально. Например, если в макете задана фиксированная высота строки в пикселях, увеличение шрифта постепенно съедает свободное пространство. При уменьшении кегля то же значение, наоборот, может дать чрезмерно рыхлый набор. Поэтому образец буквы на пустом поле не покажет, как ведёт себя «у» под «й» в реальной строке.
В браузере свойство CSS line-height управляет высотой строки. Единичное число, например 1.4, умножается на размер шрифта самого элемента; заданная длина вроде 24px сохраняется как абсолютное расстояние. MDN объясняет эту разницу и отмечает, что единичное значение пропорционально масштабируется при увеличении текста. Это полезная отправная точка для веб-пробы, но не универсальная рекомендация по дизайну: требуемый интервал зависит от рисунка шрифта, кегля, ширины колонки и назначения текста. См. [описание line-height на MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/line-height).
Подготовьте строки, которые провоцируют проблему
Не тратьте первый проход на случайный абзац. Соберите контрольный набор, где выносные элементы встречаются над и под базовой линией и попадают рядом друг с другом в соседних строках. Включите кириллические слова «будущий», «подъезд», «щуплый», «прыжок», «дедушка», затем короткие фразы вроде «У реки росла ива» и «Щука у дуба». Это не литературный тест, а зонд: он быстро показывает потенциальные тесные места.
Добавьте одну нормальную фразу с заглавными и строчными буквами, пробелами и знаками препинания. Если вы проверяете текст для конкретного продукта — меню, подписи, заметки, учебную страницу — включите реальные слова с его словарём. Контрольный набор полезен для сравнения, а окончательное решение всё равно принимайте на живом фрагменте: длинный хвост может вести себя по-разному в зависимости от соседних букв и места переноса.
- Составьте 4–6 строк, а не отдельную строку из повторяющейся буквы.
- Расположите пары строк так, чтобы нижний штрих верхней строки соседствовал с верхним выносом следующей.
- Проверьте сочетания с й, ё и заглавными буквами, если они важны для проекта.
- Сохраните исходный текст без изменений, чтобы сравнивать все кегли на одинаковом материале.
Сравните размер и интервал как две отдельные переменные
Сначала зафиксируйте межстрочный интервал и измените только размер. Так вы увидите, что происходит в существующем макете: когда впервые исчезает просвет, где строки начинают слипаться и какие пары букв дают самый заметный дискомфорт. Затем выберите один критичный кегль и сравните несколько значений интервала, не трогая размер. Если менять обе настройки одновременно, вы не поймёте, что именно исправило или ухудшило пробу.
Для веб-страницы проверьте крайние размеры и хотя бы одну промежуточную точку адаптивной шкалы. Если размер меняется плавно, инспектор браузера покажет вычисленные значения font-size и line-height. В печатном макете печатайте фрагменты с одинаковой шириной колонки на реальном масштабе либо сравнивайте PDF в режиме фактического размера. Не сравнивайте один образец при 100% и другой при произвольном масштабе просмотра: так в тест незаметно попадёт ещё одна переменная.
Рабочая последовательность пробы
- Наберите контрольные 4–6 строк выбранным рукописным шрифтом и скопируйте блок для каждого тестового размера.
- Поставьте рядом малый, обычный и крупный для вашего макета кегль; подпишите значения вне текста.
- На первом проходе оставьте текущий интервал строк неизменным и отметьте места тесного сближения.
- На втором проходе поменяйте только интервал у самого проблемного размера.
- Посмотрите на пробы в масштабе, в котором их действительно будут читать; не оценивайте только увеличенный фрагмент.
- Запишите размер, интервал, среду и наблюдение, чтобы решение можно было повторить.
На что смотреть в строковой паре
Удобно проверять не каждую букву по отдельности, а четыре зоны. Первая — верхние точки и петли: например, надстрочная часть «й» не должна теряться среди соседних хвостов строки сверху. Вторая — нижние штрихи «р», «у», «ф», «ц» и «щ»: проследите, не подходят ли они вплотную к верхним элементам следующей строки. Третья — наклонные соединения и открытые петли: у почерковых форм они создают диагональные просветы, которые визуально уже, чем горизонтальный зазор. Четвёртая — общий рисунок белого пространства: строки могут не касаться, но сливаться в темную ленту.
Оценивайте пробу при чтении, а не только под лупой. Прочитайте фрагмент обычным темпом, затем вернитесь к местам, где взгляд задержался. Если при каждом проходе цепляется одна и та же пара, это полезный сигнал. Запишите её и кегль. Одиночная случайная встреча в бессмысленном наборе менее важна, чем повторяющаяся помеха в реальных словах, особенно если такие слова часто появляются в проекте.
Как различить проблему шрифта и проблему вёрстки
Если строки сталкиваются только в одном макете, временно увеличьте line-height и проверьте тот же шрифт в другом текстовом блоке с теми же кеглем и шириной. Если теснота исчезла без изменения контуров, причина, скорее всего, в настройке интервала или в размерах контейнера. Если же длинный хвост регулярно вторгается в соседнюю строку при нескольких разумных интервалах, стоит пересмотреть сам знак: укоротить вынос, изменить его наклон или форму петли, сохранив характер почерка.
Есть и третий вариант: текстовый редактор или платформа берёт собственные метрики шрифта для расчёта базовых линий. В OpenType предусмотрены рекомендованные метрики восходящих и нисходящих элементов и межстрочного зазора. Спецификация Microsoft описывает для таблицы OS/2 поля sTypoAscender, sTypoDescender и sTypoLineGap как основу рекомендованного расстояния между строками, а значение USE_TYPO_METRICS указывает приложениям использовать их по умолчанию. Реальное поведение всё же зависит от приложения и способа верстки; метрики полезно проверить, но нельзя считать гарантией одинаковой строки в каждой программе. См. [спецификацию таблицы OS/2](https://learn.microsoft.com/en-us/typography/opentype/spec/os2).
Для диагностики зафиксируйте одну платформу и сравнивайте сначала на ней. Затем откройте тот же тест в целевой среде — браузере, приложении или программе подготовки печати. Если линия базовых строк отличается между приложениями, это не обязательно означает ошибку рисунка глифов; отдельно проверьте line-height, режим масштабирования и метрики шрифта.
Частые ошибки при проверке
- Проверять только короткие слова без соседних строк: нижние штрихи остаются незамеченными.
- Одновременно менять кегль, межстрочный интервал, ширину колонки и масштаб просмотра.
- Судить о читаемости по увеличенному скриншоту вместо фактического размера.
- Править контур буквы, хотя достаточно исправить фиксированную высоту строки.
- Увеличивать интервал для всего текста из-за одного искусственного сочетания, не проверив обычный абзац.
- Ориентироваться на значение «по умолчанию» в редакторе: оно может зависеть от выбранной гарнитуры и приложения.
Короткий чек-лист перед сдачей
- Выбран одинаковый текст для всех проб и указаны значения размера и интервала.
- Проверены верхние и нижние выносные элементы в соседних строках.
- Сравнены фиксированное и масштабируемое значение интервала там, где это уместно.
- Проба просмотрена в реальном масштабе целевого носителя.
- Тесные пары повторно проверены в обычном тексте, а не только в специально собранном тесте.
- Решение записано как правка макета, метрик или конкретного глифа.
FAQ
Нужно ли менять интервал для каждого кегля?
Не обязательно. Сначала проверьте, как текущая система ведёт себя во всём рабочем диапазоне. Если единичное значение CSS сохраняет удобный ритм и не сближает хвосты, отдельные значения не нужны. В печатном или статичном макете решения могут различаться для заголовка и основного текста.
Какой line-height выбрать для рукописного шрифта?
Универсального коэффициента нет. Сравните несколько близких вариантов на реальном тексте и выбирайте по читаемости, рисунку букв и назначению макета. Рекомендации доступности можно использовать как проверочный ориентир, а не как гарантию, что длинные выносы не столкнутся.
Что делать, если сталкивается только одна буква?
Убедитесь, что проблема повторяется в обычном тексте. Затем проверьте, можно ли решить её настройкой интервала без чрезмерного разрежения остальных строк. Если нет, аккуратно скорректируйте высоту или наклон выносного штриха и снова проверьте его с другими соседями.
Почему на экране и в печати результат отличается?
Экран и печатный процесс по-разному воспроизводят тонкие просветы, а программы могут использовать разные метрики и масштабирование. Сравнивайте эквивалентный фактический размер и отдельно фиксируйте среду проверки. Финальное решение принимайте на том носителе, для которого создаётся текст.
Нужно ли проверять буквы в каждой возможной паре?
Нет. Составьте короткую пробу из нескольких частых верхних и нижних выносов, затем проверьте реальные слова из проекта. Такая выборка быстро выявит риск, не превращая работу в перебор всех сочетаний.
Можно ли исправить тесноту только увеличением межстрочного интервала?
Иногда да, если макет допускает более свободный набор. Если из-за одного длинного элемента приходится слишком сильно разводить весь абзац, проблема может быть в форме глифа или его вертикальных метриках. Сначала выясните, какое из этих звеньев ограничивает результат.
Итог
Проверяйте выносные элементы на строковых парах в нескольких кеглях, меняя по одной настройке за проход. Так вы отличите локальную особенность буквы от слишком тесной высоты строки и выберете решение, которое сохраняет и характер рукописного шрифта, и связность текста. Для нового проекта можно подготовить собственный набор знаков в Fontgenerator, затем повторить эту пробу на словах, которые действительно появятся в макете.