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:
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:
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.
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.
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.
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.
f
,t
,d
etb
? Quelque chose de similaire: lors du réglage d'une police de caractères phonétiques, j'ai vu la combinaisonf
et de nombreux caractères accentués s'affronter (la ligature `` commune ''fi
est un cas bien connu). J'ai créé une alternativef
avec un indicateur plus court et l' ai résolu avec des règles OpenType, donc il n'apparaissait que lorsque cela était nécessaire.Réponses:
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:
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:
glyphes sans ascendeurs, par exemple a, c, e, g;
glyphes avec ascendeurs ou signes diacritiques non en surplomb, p. ex. b, d, i, ä, ñ.
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é).
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):
¹ 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.
la source