Вьетнамские диакритики в шрифте: как проверить двойные знаки

Вьетнамская латиница требует проверить не только наличие букв с акцентами, но и то, как два знака располагаются над одной гласной. В словах вроде *tiếng Việt* и *Nguyễn* качество зависит от соединения основного знака гласной с тоновым: они не должны слипаться, теряться или менять порядок. Ниже — способ проверить такой текст в готовом или создаваемом шрифте и понять, где проблема: в символах, нормализации, метриках или рендерере.
Почему двух диакритик больше, чем «два акцента»
В современном вьетнамском письме гласная может нести признак качества и тон. Например, циркумфлекс меняет форму базовой гласной, а дополнительный знак задаёт тон. Поэтому в одном слоге над одной буквой оказываются два визуальных элемента. Для типографа это не украшение, которое можно поставить «примерно сверху», а часть различения букв и чтения.
Unicode описывает вьетнамские символы как латинские буквы и тоновые знаки. В стандарте перечислены 12 гласных букв и пять тоновых знаков; часть сочетаний доступна как готовые символы, а часть может представляться основой с комбинирующими знаками. Например, «Ẩ» может быть записана одним кодом U+1EA8 или последовательностью «A» + U+0302 + U+0309. Визуально это должно читаться как одна буква с двумя знаками, хотя последовательность кодов отличается. Unicode Standard, глава 7.
Отсюда следуют два разных задания для шрифта. Во-первых, он должен иметь глифы для нужных предварительно составленных букв. Во-вторых, если текст приходит в разложенном виде, связка shaping-системы и шрифта должна корректно показать комбинируемые знаки относительно основы. Наличие буквы «ấ» в таблице символов само по себе не доказывает, что последовательность «a + циркумфлекс + тон» отобразится так же аккуратно.
Сначала определите, какой результат нужен
Проверка зависит от назначения. Для логотипа или короткой надписи дизайнер может вручную поправить единичный глиф в макете. Для интерфейса, каталога или пользовательского текста набор должен вести себя предсказуемо при копировании, поиске, смене шрифта и экспорте. В первом случае важен конкретный финальный текст; во втором — покрытие кодовых точек и комбинаций, которые реально встретятся в содержимом.
Перед выбором шрифта выпишите языки и сценарии использования. Включите имена, географические названия и обычные слова, а также прописные буквы, если они возможны в заголовке или имени пользователя. Не ограничивайтесь буквами, которые визуально знакомы по французскому или испанскому: вьетнамская гласная с двумя отметками ставит знаки ближе друг к другу и может требовать заметно большего места над основой.
Если вы создаёте собственную рукописную гарнитуру из шаблона, решите заранее, поддерживает ли ваш рабочий процесс такие символы и последовательности. Не обещайте языковую поддержку по одному удачно нарисованному слову. Если конструктор принимает отдельные клетки букв, а комбинируемые диакритики не умеет позиционировать, честно ограничьте область применения или доработайте итоговый шрифт в профильном редакторе.
Соберите короткую, но диагностичную пробу
Проба должна одновременно показывать разные формы букв, тоновые позиции, регистр и контекст строки. Начните с реальных слов, а затем добавьте искусственные сочетания как тесты: слово позволяет оценить чтение, а последовательность конкретных символов помогает локализовать технический дефект.
Подойдут такие строки:
- «tiếng Việt», «Tết», «Huế», «Nguyễn» — короткие привычные примеры с буквами и тонами;
- «â ấ ầ ẩ ẫ ậ» и «ê ế ề ể ễ ệ» — быстрый просмотр нескольких типов знаков над одной основой;
- прописные варианты тех же гласных — для заголовков и имён;
- слово в начале, середине и конце строки — чтобы увидеть влияние соседей и переносов;
- вариант с обычными пробелами и с переносом строки — чтобы проверить, не обрезает ли верхние выносные знаки контейнер.
Сравните пробу в нескольких размерах: крупном, рабочем для макета и малом. На крупном размере легче заметить неправильный порядок и столкновение знаков; в реальном размере — понять, сохраняется ли их различимость. Не делайте вывод по одной декоративной надписи: в ней можно спрятать проблему ручной правкой.
Проверьте две формы Unicode
Откройте один и тот же тест в составленном и разложенном представлении. NFC обычно сводит доступные канонические комбинации к составным символам; NFD раскрывает их в базовую букву и комбинируемые знаки. Это не два разных написания слова, а два представления канонически эквивалентного текста. Спецификация Unicode описывает нормализацию и комбинирование таких последовательностей в UAX #15: Unicode Normalization Forms.
Практический тест прост: скопируйте короткую строку из одного источника, затем получите её NFC- и NFD-варианты средствами редактора или тестовой страницы, которая явно показывает обе версии. Сравните рендеринг, а не только вид символов в поле ввода. Сохраните исходные строки отдельно, чтобы повторить тест после экспорта шрифта или смены движка.
Если составленный символ отображается, а разложенная последовательность разваливается, это сигнал проверить поддержку комбинируемых знаков и работу позиционирования. Если ломаются обе формы, проверьте наличие нужных глифов, подключённый файл и фактически выбранный шрифт. Не исправляйте проблему подменой всех разложенных последовательностей заранее: нормализация может помочь стабилизировать данные, но не заменит недостающую языковую поддержку шрифта и рендерера.
Оцените посадку знаков и строковые метрики
Смотрите не только на то, «виден ли акцент». Проверьте несколько конкретных признаков:
- Тоновой знак не касается циркумфлекса, крышки или точки под буквой.
- Знаки сохраняют читаемую форму и не превращаются в один тёмный комок при уменьшении.
- Второй знак не уходит чрезмерно в сторону: положение может быть стилистическим, но должно выглядеть намеренным и последовательным.
- Соседние слова не сталкиваются с высокой верхней зоной букв.
- Строка не обрезается в блоке, кнопке или экспорте PDF из-за недостаточной верхней метрики.
- Акценты остаются привязаны к правильной гласной после копирования, поиска, смены начертания и переноса.
Проверьте и набор начертаний. Если есть regular, bold и italic, повторите минимум ключевые слова в каждом используемом стиле. Позиционирование может быть реализовано по-разному; курсив меняет контур основы, а жирный вес делает узкие просветы между знаками менее заметными. Не предполагайте, что удачный regular автоматически гарантирует качество всех файлов семейства.
Для рукописного шрифта особенно важно не имитировать два акцента двумя независимыми рисунками, просто вставленными в клетку. Их видимая оптика должна соответствовать гласной: центр группы знаков может смещаться, если этого требует форма буквы. Но повторяющиеся правила нужны для всего набора: одинаковая дистанция, сопоставимый наклон и понятное различие тоновых марок. Нарисуйте сначала небольшой тестовый ряд, распечатайте его в предполагаемом размере и сравните рядом с обычным текстом.
Как локализовать неисправность
Сохраняйте один и тот же тестовый текст и меняйте только один фактор за раз. Сначала проверьте выбранный файл шрифта и начертание. Затем сравните составленную и разложенную формы. После этого откройте пробу в другом приложении или движке и посмотрите экспортированный файл на другом устройстве.
Вместо буквы пустой квадрат: Есть ли кодовая точка в шрифте и загружен ли именно этот файл
Составная буква есть, а разложенная теряет акцент: Обработку комбинируемых знаков и их позиционирование
Знаки отображены, но пересекаются: Метрики и правила размещения для конкретной основы
Верх букв обрезается в контейнере: Высоту строки, внутренние поля и метрики шрифта
Ошибка появляется в одном приложении: Различия shaping-движка, подстановки шрифтов или экспорта
Только одно начертание выглядит плохо: Отдельную версию начертания и её таблицы позиционирования
Таблица задаёт направление проверки, а не автоматический диагноз. Отображение текста зависит и от шрифта, и от приложения. Чтобы сравнение было полезным, зафиксируйте имя файла, версию, приложение, размер, строку теста и способ экспорта. Иначе легко принять подстановку системной гарнитуры за поддержку вашего шрифта.
Частые ошибки при проверке
- Проверять только латинский алфавит без тестовых слов. Обычные a, e и o ничего не говорят о двух знаках над одной гласной.
- Ограничиться готовыми символами из панели глифов. Пользователь может принести разложенный текст из веб-формы или документа.
- Оценивать знаки только при большом увеличении. На экране крупно они выглядят раздельно, но на реальном кегле могут слипаться.
- «Лечить» строку в одном макете вручную и считать шрифт готовым. Следующий текст будет иметь другие буквы, соседей или размер.
- Тестировать лишь regular, хотя публикация использует жирное начертание или курсив.
- Считать любое визуальное отличие от чужой гарнитуры ошибкой. Положение тоновых знаков допускает стилистическую вариативность; требование — ясность, последовательность и корректность именно для выбранного языка.
- Экспортировать картинку вместо проверки текста, если читатель должен копировать или искать слова. Картинка скрывает проблемы кодов и поведения шрифта.
Контрольный список перед публикацией
- [ ] Указаны вьетнамские языковые сценарии и нужные гласные.
- [ ] Проверены прописные и строчные буквы в реальных словах.
- [ ] Сопоставлены составленная NFC- и разложенная NFD-формы.
- [ ] Проверены минимум два размера и все используемые начертания.
- [ ] Знаки различимы и не обрезаются в строке, кнопке и экспорте.
- [ ] Зафиксированы файл шрифта, приложение и тестовые строки.
- [ ] Ограничения конструктора или гарнитуры явно описаны для команды.
FAQ
Почему одного символа вроде «ế» недостаточно для проверки?
Потому что слово или файл могут содержать ту же букву в канонически эквивалентном разложенном виде: основа плюс несколько комбинируемых знаков. Отдельный составной глиф не проверяет корректное отображение такой последовательности.
Нужно ли всегда хранить текст в NFD?
Нет. NFC часто удобно для хранения и обмена, но приложение может получить и другую канонически эквивалентную последовательность. Нормализацию выбирают на уровне данных, а визуально проверяют обе формы, если текст будет копироваться между системами.
Должны ли два знака стоять строго один над другим?
Не обязательно. Unicode отмечает, что размещение вьетнамских тоновых знаков может стилистически меняться; их могут сдвигать относительно основного акцента. Важно, чтобы решение было последовательным, читаемым и подходило принятой орфографии.
Как понять, проблема в шрифте или приложении?
Сравните один и тот же тестовый файл в нескольких приложениях, фиксируя выбранный шрифт и начертание. Если ломается только одна среда, вероятно, нужно проверить её shaping, fallback или экспорт; если дефект повторяется повсеместно, исследуйте покрытие и позиционирование самого шрифта.
Можно ли сделать рукописный шрифт, поддерживающий вьетнамский?
Можно, если рабочий процесс охватывает нужные кодовые точки и корректную работу комбинируемых диакритик. Если генератор собирает только одиночные изображения букв, итог может потребовать доработки в шрифтовом редакторе и проверки в реальных приложениях.
Какой тест оставить команде?
Сохраните короткую страницу или текстовый файл с обычными словами, пробным рядом гласных, составленной и разложенной формами, указанием шрифта и приложений. Такая проба пригодится после обновления файла и при передаче макета другому дизайнеру.
Итог
Вьетнамский набор проверяют на реальных словах и на последовательностях, где над одной латинской гласной встречаются два знака. Сравните составленное и разложенное представления, просмотрите их в нужных размерах и начертаниях, а затем проверьте экспорт. Если создаёте собственный шрифт в Fontgenerator, используйте инструмент создания рукописного шрифта для основной работы и отдельно убедитесь, что выбранный процесс поддерживает такие комбинации.