Межстрочный кернинг

sergey nikolaev
4 min readSep 28, 2023

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

Но в оптической компенсации нуждаются не только расстояния между буквами, но и расстояния между строками.

Не будем тянуть с примерами, вот какой-то обычный заголовок в три строки:

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

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

Если вы вообще не понимаете, о чем речь и почему я решил, что последняя строка на картинке без компенсации отвалилась, можно попробовать посмотреть на блок в мелком размере и может даже чуть зажмурить глаза:

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

Добро пожаловать в клуб межстрочного кернинга!

Еще один читерский пример — с аббревиатурами (работает также и для цифр):

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

Из-за такой нестыковки может получиться, что межстрочные расстояния вроде одинаковые, но на деле очевидно различаются, и из-за этой инерции терминологии дыры между строками принято игнорировать (по цифрам же бьется!).

Пока меня не сожгли за такие еретические рассуждения на костре, посмотрим еще на пример:

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

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

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

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

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

--

--