Dois-je me soucier des collisions diacritiques?

11

Lors de la conception d'une police de caractères, comment dois-je traiter les signes diacritiques qui entreraient en collision avec les glyphes adjacents, y compris les autres signes diacritiques?

Vous pouvez voir dans cet exemple qu'il y a beaucoup de collisions:

Collision des diacritiques

C'est un exemple extrême qui ne se produira jamais dans un texte normal et je suppose que les collisions d'accent sont l'exception plutôt que la norme, mais comme je ne parle pas et que je ne connais pas la plupart des langues utilisant des signes diacritiques, je ne le suis pas sûr.

Je peux voir quelques options pour faire face à ces collisions:

  1. Ajustez les métriques de glyphe pour tenir compte des marques diacritiques. Cela résoudrait le problème des collisions, mais affecterait inutilement les mesures, même dans la plupart des cas où elles ne sont pas nécessaires.

  2. Crénelage manuel des paires de caractères problématiques. Le crénage manuel de toutes les collisions possibles va être un long processus pour ce qui, dans la plupart des cas, sera au mieux des cas marginaux.

  3. Créez des ligatures pour les collisions courantes. Cela semble être une bonne idée pour les occurrences les plus courantes, mais je n'ai aucune idée des paires qui se produisent même dans le texte normal, peu importe généralement.

  4. Oubliez ça ... Si ces collisions ne sont pas courantes dans le texte normal, c'est peut-être une perte de temps à essayer de les accommoder.

Dois-je me soucier de ces collisions? Si oui, comment dois-je les gérer?

Existe-t-il une liste de paires de collisions courantes auxquelles je peux me référer? Cela m'aiderait à ne kerner que les paires qui vont réellement se produire.

Cai
la source
Eh bien au moins en finnois, vous avez des mots qui ont des doubles vovels côte à côte comme par exemple pää (tête) ou käyttöön (à utiliser / pour consommation) En fait, ce sont assez courants lorsque vous utilisez des déclinaisons (c'est ainsi que la langue fonctionne) est une langue aglutatinative)
joojaa
Bonne question. Je n'y ai jamais pensé. Honte sur moi. U_U
Rafael
Ce sont tous des caractères de hauteur x. Qu'en est- il des collisions avec les sommets de f, t, det b? Quelque chose de similaire: lors du réglage d'une police de caractères phonétiques, j'ai vu la combinaison fet de nombreux caractères accentués s'affronter (la ligature `` commune '' fiest un cas bien connu). J'ai créé une alternative favec un indicateur plus court et l' ai résolu avec des règles OpenType, donc il n'apparaissait que lorsque cela était nécessaire.
usr2564301
@RadLexus bien sûr, mon exemple était juste de montrer des accents en collision les uns avec les autres, je ne suis pas exclusivement intéressé par ces cas. "fi" est une ligature courante, oui, mais qu'en est-il de "fï", "fî", "fī", "fì"?
Cai
1
(fait intéressant, ces exemples entrent tous en collision dans mon commentaire)
Cai

Réponses:

5

Oui, vous devriez vous en soucier. Il existe certaines langues dans lesquelles deux caractères diacritiques peuvent être situés l'un à côté de l'autre ou des caractères diacritiques suivent f. Par exemple, Aspell considère měšťáčtější et nejjidášštější valide words¹ tchèque et pfählen, fühlen, et föhnen sont des mots allemands.

Il existe deux autres variantes qui sont normalement utilisées:

  1. Utilisez des classes de crénage spéciales ou même des tables - vous n'avez pas besoin de créner toutes ces paires manuellement, au lieu de cela, vous regroupez tous vos personnages intelligemment. Par exemple, pour les signes diacritiques placés au-dessus de la lettre, vous pouvez consulter les groupes suivants:

    1. glyphes sans ascendeurs, par exemple a, c, e, g;

    2. glyphes avec ascendeurs ou signes diacritiques non en surplomb, p. ex. b, d, i, ä, ñ.

    3. glyphes avec ascendeurs ou diacritiques en surplomb, par exemple, f, ľ, ï.

    Maintenant, il vous suffit de considérer les groupes de cas suivants, pour lesquels vous pouvez utiliser différentes tables de crénage:

    • 1–1, 1–2, 2–1 et 2–2 - Vous pouvez appliquer ici votre crénage standard: les métriques pour co, cö, ćo et ćö sont identiques (en supposant que les signes diacritiques ne dépassent pas pour votre police de caractères).

    • 3–1 et 1–3 sont également assez simples: ïo devrait avoir les mêmes mesures que io.

    • Seuls 3–2, 2–3 et 3–3 nécessitent une certaine attention, mais vous pouvez généralement placer différents glyphes dans la même classe de crénage. Par exemple, î peut kern comme ǐ, et ľ peut kern de façon analogue à f. De plus, comme les diacritiques ou ascendeurs dominent le crénage, vous pouvez désormais regrouper des glyphes qui nécessitaient un crénage différent autrement. Par exemple, si o et õ étaient dans une classe de crénage différente de n et ñ pour les crénages dans 1–1, 1–2 et 2–1, ils peuvent être dans la même classe maintenant, par exemple parce que fõ les crénages sont les mêmes que fñ.

    De cette façon, vous pouvez couvrir tous les cas de manière adéquate sans affecter vos mesures régulières, en tenant compte de toutes les orthographes existantes et en ayant besoin d'utiliser des classes de crénage trop fines. Pour voir cela en action, vous pouvez prendre à la table de crénage d' Unifraktur Maguntia (sur laquelle j'ai travaillé).

  2. Utilisez des formes contextuelles - Ceci est une alternative aux ligatures, si le crénage entraîne un écart indésirable. Par exemple, Linux Libertine a une alternative étroite f qui est utilisée, si une lettre avec une marque diacritique suit (notez que le crénage est encore légèrement différent):

    Alternative f dans Linux Libertine


¹ Je n'ai aucune idée de ce que ces mots signifient, alors j'espère pour la comédie que ce sont des obscénités flagrantes.

Wrzlprmft
la source
Je peux obtenir la plupart des glyphes dans les classes de crénage existantes (ou les nouvelles classes communes) sans problème, mais il y a certainement des cas qui nécessitent un traitement spécifique - Surtout dans la police de caractères sur laquelle je travaille actuellement, qui est assez étroite / condensée, donc a une juste quantité de signes diacritiques en surplomb
Cai
J'ai également jeté un coup d'œil au crénage dans UniFraktur ... Impressionnant. Vaste pour dire le moins.
Cai