J'ai vu cette question sur la proposition de site Typography et cela m'a dérangé que je ne connaissais pas la réponse. J'avais toujours traité «glyphe» et «personnage» comme interchangeables.
Après avoir lu une explication sur la page Modèle de codage de caractères Unicode , ma compréhension est à peu près la suivante:
- Les caractères sont définis par leur signification dans la langue, les glyphes, par leur apparence . Ainsi, la ligature pour combiner esthétiquement
fi
est un glyphe, mais deux caractères.
Donc, ma conviction est (veuillez me corriger si je me trompe) que la différence pratique serait:
- Les analyseurs de texte qui ne sont pas intéressés par l'esthétique du texte liront les glyphes comme leurs caractères respectifs. Alors:
- Si vous deviez copier et coller du texte contenant des glyphes dans un éditeur de texte brut, les glyphes seraient convertis en leurs caractères respectifs (un
fi
glyphe de ligature deviendraitf
eti
) - Tout système automatisé bien conçu basé sur l'analyse de texte (par exemple, les robots des moteurs de recherche, les lecteurs d'écran, les correcteurs orthographiques) interpréterait les glyphes comme leurs caractères respectifs.
- Un personnage peut avoir plusieurs glyphes ou jeux de glyphes. Je veux dire qu'un glyphe ne peut avoir qu'un seul caractère, mais ce n'est clairement pas correct car il y a un exemple sur l'article lié de 3 glyphes et ensembles de glyphes qui semblent correspondre chacun à un caractère et à un ensemble de caractères. Je ne vois pas vraiment comment cela pourrait fonctionner: cela signifie sûrement qu'il y aura une incohérence ou une ambiguïté dans la façon dont ces glyphes sont interprétés, variant selon l'interprète? (ou varie-t-il selon la langue ou la police?)
- Alors que les navigateurs de glyphes (par exemple celui d'Illustrator) contiennent l'ensemble complet de glyphes d'une police, les cartes de caractères (par exemple la carte de caractères Windows) ne contiennent que des caractères, pas des glyphes qui sont plusieurs caractères comme des ligatures (quelque chose que je n'avais pas remarqué auparavant)
- Si vous deviez copier et coller du texte contenant des glyphes dans un éditeur de texte brut, les glyphes seraient convertis en leurs caractères respectifs (un
Je sens que j'y suis presque, mais j'ai clairement mal compris quelque chose le long de la ligne: pas seulement la chose "Un glyphe à plusieurs caractères", mais aussi, copier et coller un comportement avec des ligatures n'est pas tout à fait ce que j'attendais:
- Copiez la ligature
fi
d'Illustrator dans cette zone de saisie: colle commefi
(deux caractères) comme prévu. - Collez le code HTML pour cela (
fi
) - s'affiche comme la ligature lorsqu'il n'est pas dans un bloc de code (fi - qui dans cette police ne ressemble pas beaucoup à une ligature, mais vous en verrez une si vous essayez de sélectionner seulement la moitié de celui-ci), et le code dans un bloc de code (fi
), comme prévu. - Copiez et collez la ligature non bloquée rendue dans la zone de saisie: colle comme caractère de ligature et restitue comme ligature, qu'elle soit ou non dans un bloc de code (fi et
fi
). De même, les mots qui le contiennent: fit fit mists (fit misfits
) colle comme fit fit mists (fit misfits
). Peut-être que cela dépend si l'endroit où il est collé comprend le codage utilisé?
Dans quelle mesure ma compréhension de cela est-elle erronée? Quelqu'un peut-il me corriger: énoncer une définition claire de la différence entre les glyphes et les caractères (si le mien est faux ou peut être amélioré), et donner des exemples plus clairs / plus précis que le mien de ce que cela signifie dans la pratique ?
la source
Réponses:
Les glyphes se rapportent à la façon dont le texte est rendu, les caractères à la façon dont il est interprété. Lorsque vous copiez et collez, l'application source donne généralement le choix entre plusieurs formats. Le texte brut décomposera la ligature en f et i, le format HTML peut la traduire dans l'entité char que vous avez citée ou la décomposer également en f et i.
En général, la relation entre les caractères et les glyphes est n: m. Dans les langues indiennes, certains caractères se divisent en deux glyphes placés à différents endroits du mot. En latin, le plus proche de cette situation serait de rendre é comme deux glyphes (e et ´). En arabe, chaque caractère a des glyphes différents selon sa position dans un mot: initial, moyen, final ou isolé.
La traduction des caractères en glyphes est spécifique à chaque application et aux fonctionnalités typographiques qu'elle prend en charge. Pour le texte latin, cette traduction était simple, mais les polices OpenType ont introduit des fonctionnalités supplémentaires comme les ligatures, les swashes, les formes alternatives, les petites majuscules, etc.
Pour des raisons pratiques, vous ne vous préoccupez des glyphes que lorsque vous implémentez la façon dont une application rend le texte, ou lorsque vous concevez une police, ou lorsque vous souhaitez appliquer une fonctionnalité OpenType qui remplace certains glyphes par d'autres (par exemple, des ligatures). Sinon, les points de code Unicode sont vos amis.
la source
Je ne pense pas que votre compréhension soit incorrecte, vous voyez simplement des systèmes qui tentent d'aider l'utilisateur en collant ce qu'il pense qu'ils veulent. Étant donné que certaines ligatures ('fi', 'fl') sont assez courantes en dehors des systèmes de composition, le logiciel reconnaît que l'utilisateur n'a probablement pas entré ce glyphe, plutôt une autre application a transformé leurs caractères tapés.
En bref: le caractère fait référence à une unité linguistique. Glyphe fait référence à une instance conçue de cette unité, que ce soit une variante majuscule, minuscule, petite majuscule, historique ou stylistique.
la source
Il y a quelques réponses ici qui donnent de bonnes informations sur les glyphes par rapport aux personnages, mais elles n'abordent pas vraiment la source de votre confusion en ce qui concerne le copier-coller.
Tout d'abord, votre compréhension est fondamentalement correcte:
Il convient de souligner que la liste des caractères est définie par la norme Unicode, publiée par le consortium Unicode, car ils sont l'autorité sur le codage du texte dans un format lisible par machine. La définition ci-dessus est essentiellement la ligne directrice principale que les membres du Consortium Unicode utilisent pour déterminer si certains ajouts proposés à Unicode sont un caractère et donc dignes d'être inclus, ou un glyphe et doivent être gérés par des moteurs de rendu de polices.
Je mentionne cela parce que la confusion que vous avez rencontrée ci-dessus était due au fait qu'il existe plusieurs caractères de ligature (pas des glyphes ) dans Unicode. Par exemple,
U+FB01
est le caractère de la ligature: http://unicode.org/charts/PDF/UFB00.pdfAvoir des caractères de ligature dans Unicode n'est pas vraiment dans l'esprit de la définition ci-dessus pour quels types de choses devraient être inclus dans la norme Unicode en tant que caractères, car les ligatures n'ont pas vraiment de signification indépendante de la composition de deux autres caractères. Les gens Unicode en sont naturellement conscients, et la FAQ Unicode sur les ligatures l' admet:
L'existence de ce personnage est finalement la source de votre confusion.
Dans un logiciel correctement implémenté, la copie de texte doit toujours copier les caractères spécifiés, pas les glyphes , et c'est exactement ce qui se passe dans vos trois exemples.
1) Dans le premier exemple, vous avez tapé
f
eti
dans Illustrator, qui a rendu un seul glyphe de ligature . Lorsque vous avez sélectionné et copié ce glyphe rendu, Illustrator a correctement copié les caractèresf
(U+0066
) eti
(U+0069
) dans votre presse-papiers.2) Dans le deuxième exemple, vous avez tapé le code HTML du caractère de ligature (
fi
) dans la zone de saisie et obtenu correctement le glyphe de ligature représentant le caractère de ligature (. Puisque le caractère sous-jacent est en fait le caractère de ligature obscur et relativement inutile que j'ai mentionné ci-dessus, sélectionner ce glyphe copiera un seul caractèreU+FB01
.3) Dans le troisième exemple, vous copiez le caractère de ligature rendu
U+FB01
qui a été rendu dans la partie 2, qui sera toujours collé comme ce caractère. Votre principale confusion semble concerner la différence entre les codes d'entité HTML et les caractères, en particulier en ce qui concerne la façon dont ils sont rendus à l'intérieur et à l'extérieur des blocs de code.Le code d'entité HTML
fi
est une chaîne de 8 caractères distincts. Le rendu HTML de votre navigateur Web remplace ces 8 caractèresU+0026 U+0023 U+0036 U+0032 U+0035 U+0037 U+0023
par le caractère Unicode uniqueU+FB01
, qu'il rend ensuite de manière appropriée. Cependant, la<code>
balise en HTML désactive ce comportement, laissant ces 8 caractères tels quels.Lorsque vous copiez du HTML rendu, vous copiez les caractères rendus (qui sont différents des glyphes rendus ). Ainsi, lorsque vous copiez votre entité HTML rendue, le
U+FB01
caractère unique est copié dans votre presse-papiers.Lorsque vous collez le
fi
U+FB01
caractère dans le code HTML, aucune substitution ne doit avoir lieu, ce qui signifie que le caractère est rendu sous forme de ligature, qu'il se trouve ou non dans un<code>
bloc.la source
Les caractères sont ce qui est stocké dans des fichiers texte, traité par les applications et déplacé, tandis que les glyphes sont leur représentation visuelle.
Pour avoir une image claire, voyons ce qui se passe lorsqu'une application essaie de rendre une chaîne de texte à l'écran (de manière un peu simplifiée):
f
eti
avec le glyphe de ligature defi
) et un positionnement (comme le crénage).file
correspondent deux le premier glyphe (lafi
ligature), le 3ème caractère au 2ème glyphe et le 4ème caractère au 3ème glyphe.la source