Расстояние между буквами чертежного шрифта: ГОСТ 2.304-81 ЕСКД. Шрифты чертежные armtorg.ru

Выравнивание, кернинг и интервалы — приложения Win32

  • Статья
  • 5 минут на чтение

Начиная с Windows 8, DirectWrite предоставляет ряд функций, позволяющих управлять основными функциями типографики, макета и интервалов, такими как интервал между символами, парный кернинг и выравнивание.

Интервал между символами

Интервал между символами, также известный как «отслеживание», представляет собой интервал между символами в тексте.

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

Начиная с Windows 8, DirectWrite добавляет эти методы для управления интервалами между символами в тексте.

Если вы используете макет DirectWrite, вы можете использовать IDWriteTextLayout1::GetCharacterSpacing и IDWriteTextLayout1::SetCharacterSpacing для этой цели.

Используйте метод GetCharacterSpacing для определения текущего интервала между символами, и он возвращает текущий символ, интервал до и после символа, минимальную ширину продвижения и структуру DWRITE_TEXT_RANGE , которая содержит информацию о начальной позиции и длине оставшийся текст.

Используйте SetCharacterSpacing на интерфейсе DWriteTextLayout1 , чтобы применить собственный интервал между символами к тексту в макете. Метод SetCharacterSpacing принимает необходимое количество пробелов до и после символа, минимально допустимый шаг вперед и DWRITE_TEXT_RANGE , определяющий диапазон для применения интервала.

Если вы используете пользовательский макет, DirectWrite поддерживает настройку межсимвольного интервала с помощью IDWriteTextAnalyzer1::ApplyCharacterSpacing . Используйте этот метод, если вам требуется настраиваемый текстовый макет, чтобы иметь расширенный контроль над макетом. Этот метод позволяет предоставить ApplyCharacterSpacing с начальным и конечным интервалами, минимальной шириной продвижения, длиной карты кластера, количеством глифов, сопоставлением диапазонов символов с глифами и шириной продвижения каждого глифа, если вы используете настраиваемый макет. Метод возвращает измененные смещения глифа и перечисление DWRITE_GLYPH_OFFSET с новыми смещениями относительно начала каждого глифа.

Кернинг

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

Изображение her является примером кернинга. Слово АВАТАР в верхней строке кернено, чтобы слово выглядело более естественно. Как вы можете видеть из красных рамок вокруг символов, между первыми четырьмя буквами применяется больший интервал, а перед буквой R в конце больше места. Исходный текст без кернинга находится на второй строке. Кернинг в этом примере делает слово более читабельным и естественным.

Символ перемещается между парами символов, которые ядра шрифта хранятся в таблице керна, а DirectWrite анализирует эту таблицу и возвращает вам информацию через API кернинга.

Если вы хотите узнать, поддерживает ли шрифт парный кернинг, вы можете использовать метод IDWriteFontFace1::HasKerningPairs . Этот метод возвращает логическое значение 1, если шрифт поддерживает пары кернинга.

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

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

Выравнивание по ширине

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

Начиная с Windows 8, DirectWrite предлагает ряд методов, позволяющих выравнивать текст в приложениях.

В перечислении DWRITE_TEXT_ALIGNMENT есть дополнительное значение. Вы можете использовать метод SetTextAlignment и передать константу DWRITE_TEXT_ALIGNMENT_JUSTIFIED , а DirectWrite выровняет текст и вставит соответствующий символ выравнивания для сценария.

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

Первый метод — GetJustificationOpportunities , который принимает текст, который вы хотите выровнять, и возвращает структуру DWRITE_JUSTIFICATION_OPPORTUNITY , которая показывает, где можно добавить символы выравнивания для выравнивания текста.

Вторая функция — JustifyGlyphAdvances , которая выравнивает массив смещений глифов так, чтобы они соответствовали ширине строки. Этот метод занимает DWRITE_JUSTIFICATION_OPPORTUNITY структура, которую генерирует GetJustificationOpportunities , глиф продвигается вперед и глиф смещается. Затем он генерирует выровненные смещения глифов и перечисление DWRITE_GLYPH_OFFSET , содержащее выровненные смещения глифов.

Третья функция — GetJustifiedGlyphs , которая заполняет новые глифы для сложных скриптов, где выравнивание увеличило продвижение глифов. GetJustifiedGlyphs необходимо вызывать только в том случае, если сценарий имеет определенный символ выравнивания, возвращенный GetScriptProperties . Этот метод принимает информацию о шрифте, длине текста, размере глифов в em, сценарии текста, количестве глифов, карте кластеров, смещении/смещении исходного глифа, смещении/смещении выравниваемого глифа и свойствах глифа. Метод возвращает фактическое количество глифов, обновленную карту кластеров, обновленные индексы глифов со вставленными глифами выравнивания, обновленные смещения глифов и обновленные продвижения глифов.

 

 

Расстояние между шрифтами, зависящее от размера, автор Peter Biľak

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

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

Верно и обратное: даже самый красиво нарисованный шрифт может выглядеть неубедительно, если интервал не совсем правильный. Но что такое интервал, также называемый подгонкой букв? Шрифтовой дизайнер обычно рисует черную массу букв — а пространство — это то, что окружает эти буквы — белое пространство слева и справа от них. В программном обеспечении для редактирования шрифтов это также называется боковыми опорами глифов — термином, заимствованным со времен металлического шрифта. Интервал — это, по сути, клей, который превращает буквы в слова. Работа шрифтового дизайнера заключается не в рисовании отдельных символов, а в разработке текста. Когда кто-то отмечает, что определенный шрифт хорошо работает в тексте, это комментарий о интервал шрифта, а не форма букв. Итак, что на самом деле говорит этот комментарий студентам Type & Media, так это то, что они должны перестать сосредотачиваться исключительно на формах букв и вместо этого посмотреть, как они работают в тексте.

Равномерное пустое пространство вокруг букв — залог комфортного чтения.

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

Garamont, также известный как «Caractères de l’Université» 1530-х годов в масштабе 6 и 36 пунктов, приведенный к одному размеру. Из

Les caractères de l’Imprimerie Nationale .

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

Сегодня цифровые шрифты масштабируются до любого размера, но боковые опоры символов по-прежнему разнесены только на один конкретный размер. Шрифт, предназначенный для небольших размеров, должен располагаться иначе, чем шрифт для больших размеров. Покойный голландский шрифтовик Герард Унгер написал в своей книге Теория шрифтового дизайна : «В общем случае действует правило: чем меньше размер шрифта, тем шире должны быть как знаки, так и промежутки между ними, и наоборот для больших размеров». Пользователь, однако, может выбрать отображаемый шрифт небольшого размера, что приведет к менее чем идеальной настройке слов, или он может масштабировать текстовый шрифт до самых больших размеров, где интервал слишком мал. В таком случае можно ожидать, что пользователь настроит отслеживание шрифта. Отслеживание — это управляемый пользователем процесс ослабления или сжатия блока текста, не путать с интервалом/подгонкой, который управляет метрикой букв и определяется дизайнером шрифта. И затем у нас есть кернинг, который относится к настройке отдельных пробелов между определенными комбинациями букв; вы можете думать о кернинге как об исправлении неправильных парных комбинаций в шрифте. Есть некоторые шрифты, которые требуют очень минимального кернинга или вообще не требуют его, но все шрифты должны быть правильно размещены, чтобы работать хорошо.

Когда текст правильно расположен и отслеживается, со сбалансированным внутренним и внешним пробелами между символами, текст легче читать. Британский шрифтовой дизайнер Уолтер Трейси определил настройку расстояния между буквами как «процесс, лежащий в основе успеха шрифтового дизайна». Чешский типограф Олдржих Менхарт в своей учебной книге Tvorba typografického písma

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

Мы в Typotheque помещаем текстовые шрифты в 10 пунктов, что, как сообщается, является оптимальным размером для чтения, согласно старому, но уважаемому исследованию Paterson & Tinker 1929 года. Это означает, что в небольшом диапазоне размеров от 9 до 11 пунктов шрифты отлично работают с отслеживанием по умолчанию, но при использовании в гораздо меньших или больших точках они требуют ввода от пользователя. В то время как опытные типографы всегда настраивают отслеживание текста в соответствии с размером шрифта, другие редко задумываются о внесении таких изменений и, таким образом, не всегда достигают наилучшей настройки текста. Может ли быть способ автоматически изменить отслеживание шрифтов и, следовательно, облегчить жизнь пользователя шрифта?

Патент США на оптическое выравнивание текста, изобретенный Питером Кароу, передан Adobe Systems в 1998 году.

Еще в начале 1990-х немецкий литейный завод URW поставлял все свои цифровые шрифты в трех оптических размерах: текстовый (6–24 pt), дисплейный (16–64 pt) и плакатный (36–1000 pt) с откорректированными деталями и размерами. отслеживание шрифтов. Эти тонкие оптимизации шрифтов были основаны на исследованиях Питера Кароу и его команды в URW Type Studio с использованием работ Германа Цапфа и Дональда Э. Кнута из 19-го века.70-е годы. Помимо оперативного решения URW для оптического масштабирования шрифта, продаваемого в виде программного пакета под названием URW Kernus, был инициирован более крупный проект по разработке алгоритмической оптимизации композиции абзаца (также называемый hz-engine в честь Германа Цапфа). В 1995 году, после того как Adobe приобрела патент у URW, hz-движок был реализован в InDesign 1.0 и фактически используется до сих пор под названием «оптический кернинг». Эта конкретная функция получила свою долю критики, и я признаю, что публично критиковал ее за замену кернинга, созданного дизайнером шрифтов, на алгоритмические метрики. Без сомнения, алгоритм оптического кернинга очень мощный, и в большинстве случаев кернинг и отслеживание действительно дают приемлемые результаты, но у него есть свои ограничения — потому что он не знает об окружающем контексте или выборе шрифта.

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

В 1991 году Apple начала работать над проектом алгоритма компоновки GX, а позже представила свои шрифты TrueType GX. Они поддерживали расширенные типографские функции и интернационализацию, аналогичную формату шрифта OpenType, разработанному Adobe и Microsoft. Шрифты GX предоставили явную таблицу отслеживания, которая позволяла контекстуальное и единообразное отслеживание текста на основе выбранного размера точек. В настоящее время шрифты Apple в Сан-Франциско используют эту таблицу отслеживания с точки зрения автоматической настройки межбуквенного интервала, но, поскольку она не использует существующие стандартные спецификации OpenType, эта функция не работает вне собственных приложений Apple, и такая опция не существует в Спецификации OpenType.

Мы решили ввести оптический интервал в стандартные шрифты OpenType, чтобы пользователи могли воспользоваться преимуществами автоматического оптического интервала определенных шрифтов в любом приложении. Это не просто техническое решение, а расширение дизайна шрифта, включенное только в те шрифты, которые могут потребовать такого решения. Первым шрифтом Typotheque с оптическим интервалом является Lava. По сути, мы расставили интервалы и кернили каждый шрифт в семействе три раза, для маленького размера около 6 пунктов, размера по умолчанию 10 пунктов и большого размера 48 пунктов на предполагаемом расстоянии просмотра 40 см. Важно, чтобы оба интервала 9Кернинг 0139 и зависят от размера. Пары кернинга могут свести к минимуму коллизии глифов; в настройках плотного текста глифы могут стать слишком близкими и потребовать дополнительной настройки, в то время как в рыхлом тексте, естественно, меньше коллизий глифов. Таблица кернинга для наибольшего размера содержит почти на 40 % больше пар кернинга, чем таблица для наименьшего размера, а кернинг для черного текста содержит на 18 % больше исключений, так как настройки текста еще более жесткие.

Текущие значения отслеживания в семействе шрифтов Lava были протестированы девятью опытными типографами, которые привыкли устанавливать и оценивать удобочитаемость текста. (Спасибо Мэтту Эйвери, Каю Бернау, Франсуазе Берсерик, Фридриху Форссману, Бернду Кухенбайзеру, Кэролайн де Линт, Сандеру Пинксе, Тане Рапозо и Хьюу Шипперу!) . Каждому было предложено рассмотреть блок текста определенного размера и выбрать значение отслеживания, чтобы сделать текст наиболее удобным для чтения. Сообщаемые значения были организованы в виде электронной таблицы и визуализированы в двумерной диаграмме. Несмотря на явные различия в предпочтениях типографов по отслеживанию, во всех образцах была получена очень похожая кривая, которая появлялась в несколько ином положении на графике, но следовала по одному и тому же пути. Один человек поставил бы 9текст pt как не нуждающийся в отслеживании и будет отслеживать образец 18pt на -10; другой выбрал бы отслеживание 5 пунктов при 9 пунктах и ​​-5% при 18 пунктах, в основном та же самая кривая, но с измененным положением.

Типограф и книжный дизайнер Франсуаза Берсерик просматривает различные образцы отслеживания, установленные в Lava.

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

Таблица отслеживания для систем набора текста Бертольда, разработанных в начале 19 века.80-х, где интервалы между шрифтами устанавливались автоматически во время вывода текста. Справа таблица оптического кернинга Adobe, примененная к Lava.

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

Тот факт, что увеличенный интервал по горизонтали благотворно влияет на остроту чтения, был недавно подтвержден датским исследованием (Beier et al.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *