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

Цифровой пробел U+2007: как выровнять числа в рукописном шрифте

Цифровой пробел U+2007: как выровнять числа в рукописном шрифте

Цифровой пробел U+2007, или figure space, — это невидимый знак шириной с табличную цифру шрифта. Он помогает сохранять ровные числовые колонки и не даёт частям записи разъехаться при переносе строки. Если вы создаёте собственный шрифт, для него важно спроектировать отдельный глиф, проверить метрики и убедиться, что он работает рядом с цифрами, знаками и в разных программах.

Чем цифровой пробел отличается от обычного

Обычный пробел U+0020 подбирают для разделения слов. Его ширина зависит от дизайна гарнитуры, и она не обязана совпадать с шириной цифры. Цифровой пробел решает другую задачу: Unicode определяет U+2007 как знак шириной в табличную цифру шрифта, обычно равной ширине нуля. Поэтому между цифрами он занимает предсказуемое место, а числовой ряд сохраняет регулярный шаг.

Представьте два столбца кодов: 7, 42 и 315. Если вы выравниваете короткие значения пробелами, набранными разными способами, глаз видит случайные провалы: перед семёркой слишком много пустоты, а перед трёхзначным числом — слишком мало. Цифровой пробел позволяет вставить одну и ту же числовую ячейку. В пропорциональной гарнитуре она не обязательно равна ширине каждой цифры, но должна соответствовать выбранной табличной ширине, а не произвольному пробелу.

Не путайте U+2007 с узким неразрывным пробелом U+202F. Второй знак предназначен для узкого промежутка и управления переносом; его ширина не равна ширине цифры. U+2007 — не «тонкая версия обычного пробела» и не универсальная замена разделителю тысяч. Он нужен там, где важна цифровая ширина ячейки. Подходящий символ зависит от задачи: набор числа, формат записи и поведение на строке нужно рассматривать вместе.

Зачем включать его в собственный шрифт

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

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

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

Как задать ширину и метрики

Начните с решения, какие цифры вы проектируете. Если их ширины одинаковы, измерьте advance width одного глифа, например нуля, и используйте эту величину как базу для U+2007. Вариант с шириной «нуля» соответствует описанию символа в Unicode. Не копируйте ширину обычного пробела: она обычно рассчитывается для словесного текста, а не для числовой ячейки.

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

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

Как проверить его в строках

Откройте несколько числовых строк и убедитесь, что ширина пробела работает как ожидается. Добавьте обычный пробел рядом как контрольный пример. В тестовой полосе полезны сочетания 0 0, 1 1, 8 8 и последовательности разной длины: 7 42 315. Между этими цифрами в примерах стоит U+2007. Если редактор скрывает невидимые символы, временно включите отображение пробелов или замените их на демонстрационный маркер только в контрольной копии текста.

Проверьте, что визуальные границы колонок образуют сетку, даже когда в цифрах есть наклон или выходящие штрихи. Оценивайте не только математическую ширину advance, но и оптические края: широкая «8» может казаться ближе к следующему знаку, чем узкая «1». Не корректируйте сам пробел попарно под каждую цифру — у невидимого глифа нет видимого контура для кернинга. Вместо этого изучите боковые метрики цифр и проверьте общую табличную ширину.

Затем добавьте знаки, которые часто встречаются в числовой информации: минус, десятичную запятую, двоеточие, скобки и валютный символ. Цифровой пробел не должен случайно заменить тонкий интервал между разрядами или пробел перед обозначением единицы. Различные функции — выровнять числовой столбец, разделить группы разрядов, неразрывно связать число с единицей — могут требовать разных Unicode-знаков. Не подменяйте их одним глифом только ради удобства.

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

Если у шрифта есть несколько цифровых режимов, проверьте их отдельно. Возьмите одну и ту же строку, включите табличное и пропорциональное отображение, если программа поддерживает оба режима, и сравните ширину цифрового пробела с фактическим шагом цифр. В табличном режиме он должен поддерживать регулярную ячейку. В пропорциональном наборе он сохраняет собственную фиксированную ширину, но не исправляет разную ширину цифр автоматически. Именно поэтому важно заранее определить задачу: выровнять данные в колонке или просто набрать текст, где цифры следуют друг за другом. Для второго сценария пробел может выглядеть чрезмерно широким; проблема решается выбором уместной системы цифр, а не случайным сужением U+2007.

Пошаговый рабочий процесс

  1. Определите сценарий: фиксированные цифровые колонки, табличные номера или пропорциональный текст. Запишите, какие программы и форматы должны поддерживаться.
  2. Измерьте ширины цифр и выберите целевую табличную ячейку. Для равномерного набора можно начать с ширины нуля; затем сравните её с остальной цифровой группой.
  3. Добавьте отдельный глиф для U+2007 в шрифтовый проект. Оставьте контур пустым, задайте advance width, проверьте кодовую точку и экспортируйте тестовую сборку.
  4. Наберите тестовые строки с обычным пробелом, U+2007 и узким неразрывным пробелом. Убедитесь, что в исходном тексте находятся именно нужные символы.
  5. Сравните строки в редакторе макета, браузере или приложении, где будет использоваться шрифт. Проверьте подстановку отсутствующих глифов, сетку и переносы.
  6. После правок соберите шрифт заново и повторите тест на реальных примерах. Сохраните тестовый текст рядом с проектом, чтобы будущие изменения не нарушили ширину.

Контрольный список перед выпуском

  • В наборе присутствует отдельный глиф U+2007, а не только стандартный пробел.
  • Его ширина согласована с табличной шириной цифр, обычно с шириной нуля.
  • Глиф пустой: в нём нет точки, линии, следа кисти или случайного контура.
  • Установленный шрифт отображает символ без подстановки из системной гарнитуры.
  • Колонки остаются ровными для узких и широких цифр, например 1, 8 и 0.
  • U+2007 не подменяет узкий пробел для групп разрядов или неразрывный интервал перед единицей.
  • Число не распадается при переносе в проверяемой программе.
  • После экспорта тест повторён на файле шрифта, который получит пользователь.

Частые ошибки

**Копировать обычный пробел.** Стандартный U+0020 может быть заметно уже табличной цифры. Коды 12 34 и 12 34 внешне похожи в исходнике, но их метрики различны; проверяйте именно U+2007 и не полагайтесь на визуальное сходство символов в редакторе.

**Сделать глиф пустым и нулевой ширины.** Пустой контур не означает нулевой advance. Если следующий знак придвинут к предыдущему, колонка сломана, хотя символ формально присутствует.

**Использовать цифровой пробел как разделитель групп.** U+2007 рассчитан на ширину цифровой ячейки. Если нужен более узкий разделитель, выбирайте символ под задачу и правила оформления, а не назначайте цифровому пробелу произвольную ширину.

**Проверить только редактор шрифта.** Внутренняя карта глифов подтверждает наличие кодовой точки, но не работу с текстовым движком, подстановками и переносами. Финальный тест делайте в среде, где шрифт будут применять.

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

U+2007 и обычный пробел — это одно и то же?

Нет. U+0020 предназначен для разделения слов, а U+2007 — для числового интервала шириной с табличную цифру шрифта, обычно с ноль. Unicode отдельно описывает оба знака. Если заменить один другим, ширина колонки может измениться.

Цифровой пробел должен быть равен ширине нуля?

Обычно это отправная точка, поскольку Unicode описывает его ширину через табличную ширину цифры, как правило нуля. Если в гарнитуре есть особая система табличных цифр, проверьте их реальные advance widths и сохраните согласованный числовой шаг.

Можно ли использовать U+2007 между тысячами?

Технически символ можно ввести в текст, но сначала решите, нужна ли там ширина цифры или узкий разделитель разрядов. Для группировки большого числа часто нужен интервал другого размера и конкретное поведение при переносе. Не выбирайте U+2007 только потому, что он называется «цифровым».

Помогает ли U+2007 выравнивать пропорциональные цифры?

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

Нужно ли рисовать у цифрового пробела видимую форму?

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

Почему символ не работает в одной программе?

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

Итог

U+2007 закрывает небольшую, но важную задачу: пустое место между числами занимает ту же табличную ширину, что и цифра, и поддерживает целостность числового набора. Для собственного шрифта спроектируйте отдельный глиф, согласуйте его advance с цифрами и проверьте в реальных программах. Официальные сведения о свойствах символа приведены в списке знаков Unicode и правилах Unicode по переносу строк. Чтобы проверить свои цифры и знаки в готовом наборе, можно собрать рукописный шрифт в Fontgenerator.