Должен ли я заботиться о диакритических столкновениях?

11

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

В этом примере вы можете видеть, что существует много столкновений:

Столкнувшиеся диакритические знаки

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

Я вижу несколько вариантов борьбы с этими столкновениями:

  1. Отрегулируйте глиф метрики для размещения диакритических знаков. Это решит проблему коллизий, но излишне повлияет на метрики даже в (большинстве) случаях, когда это не нужно.

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

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

  4. Забудьте об этом ... Если эти столкновения не обычны в обычном тексте, возможно, это пустая трата времени, пытаясь приспособиться к ним.

Должен ли я заботиться об этих столкновениях? Если так, как я должен иметь с ними дело?

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

Cai
источник
По крайней мере, по-фински у вас есть слова с двойными гласными рядом друг с другом, такие как, например, pää (голова) или käyttöön (для использования / для потребления). На самом деле, они довольно распространены, когда вы используете склонения (так работает язык. это аглутатативный язык)
joojaa
Хороший вопрос. Я никогда не думал об этом. Мне стыдно. U_U
Рафаэль
Это все символы высоты х. Как насчет столкновений с вершинами f, t, dи b? Нечто подобное: при настройке шрифта фонетических символов я видел комбинацию fи множество акцентированных символов ( fiобщеизвестный случай - «лигатура» ). Я создал альтернативу fс более коротким флагом и решил ее с помощью правил OpenType, поэтому он появлялся только при необходимости.
usr2564301
@RadLexus, конечно, мой пример был просто чтобы показать акценты, сталкивающиеся друг с другом, я не исключительно заинтересован в тех случаях «fi» - это обычная лигатура, да, но как насчет «fï», «fî», «fī», «fì»?
Цай
1
(интересно, что все эти примеры сталкиваются в моем комментарии)
Cai

Ответы:

5

Да, ты должен заботиться. В некоторых языках два диакритических знака могут быть расположены рядом друг с другом, или диакритические знаки следуют за f. Например, Aspell считает měšťáčtější и nejjidášštější действительными чешскими словами¹, а pfählen, fühlen и föhnen являются немецкими словами.

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

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

    1. глифы без восходящих, например, а, с, е, g;

    2. глифы с не нависающими надстрочными буквами или диакритическими знаками, например, b, d, i, ä, ñ.

    3. глифы с нависающими надстрочными или диакритическими символами, например, f, ľ, ï.

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

    • 1–1, 1–2, 2–1 и 2–2 - здесь вы можете применить свой стандартный кернинг: метрики для co, cö, ćo и ćö идентичны (при условии, что диакритические метки не нависают для вашего конкретного гарнитура).

    • 3–1 и 1–3 также довольно просты: у io должны быть те же показатели, что и у io.

    • Только 3–2, 2–3 и 3–3 требуют некоторого внимания, но обычно вы можете поместить разные глифы в один и тот же класс кернинга. Например, î может иметь керн, как ǐ , а ľ может иметь керн, как f. Более того, поскольку диакритические знаки или восходящие элементы доминируют в кернинге, теперь вы можете группировать глифы, которые в противном случае требовали другого кернинга. Например, если o и õ были в классе кернинга, отличном от n и - для кернинга в 1–1, 1–2 и 2–1, они могут быть в том же классе, например, потому что kerns совпадает с FÒ.

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

  2. Используйте контекстные формы - это альтернатива лигатурам, если кернинг приведет к нежелательно большому разрыву. Например, в Linux Libertine есть альтернативный узкий f, который используется, если следует буква с диакритическим знаком (обратите внимание, что кернинг все же немного отличается):

    Альтернатива F в Linux Libertine


¹ Я понятия не имею, что означают эти слова, поэтому я надеюсь, что ради комедии это непристойные выражения.

Wrzlprmft
источник
Я могу получить большинство глифов к существующим классам кернинга (или новым общим классам) без проблем, но есть определенные случаи, которые требуют особой обработки - особенно в отношении гарнитуры, над которой я сейчас работаю, которая довольно узкая / сжатая, поэтому количество нависающих диакритических знаков
Цай
Также взглянул на кернинг в UniFraktur ... Впечатляет. Обширные по меньшей мере.
Цай