Quelle est la différence pratique entre un «glyphe» et un «personnage»?

26

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 glyphe de ligature deviendrait fet i)
    • 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)

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 d'Illustrator dans cette zone de saisie: colle comme fi(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 ). 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 ?

user56reinstatemonica8
la source
2
Cela devient beaucoup plus compliqué lorsque vous avez des scripts comme l'arabe où vous devez combiner des caractères.
Rétablir Monica - M. Schröder
1
@ MartinSchröder +1 Sonne comme la première phrase d'une excellente réponse ... :)
user56reinstatemonica8

Réponses:

4

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.

user322483
la source
Bonjour utilisateur 322483, bienvenue dans GDSE et merci pour votre réponse. Si vous avez des questions, veuillez consulter le centre d'aide ou envoyer un ping à l'un de nous dans Graphic Design Chat une fois que votre réputation est suffisante (20). Continuez à contribuer et profitez du site!
Vincent
1
Vous écrivez «En arabe, chaque caractère a des glyphes différents selon sa position dans un mot: initial, moyen, final ou isolé». <--- Ne seraient-ils pas des personnages différents. L'anglais a A et A, mais en informatique, A et A sont des caractères différents. chaque glyphe est mappé sur un code différent. L'hébreu a le chaf et le chaf final (la lettre chaf à la fin d'un mot, semble différente) et je suis sûr qu'il est appelé comme un caractère différent dans l'informatique.
barlop
14

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.

en civil
la source
En informatique, A et a sont des caractères différents. ASCII a 128 caractères et le terme caractère comprend A et a comme caractères distincts.
barlop
Les ingénieurs utilisent beaucoup de mots qui ne correspondent pas aux précédents dans d'autres secteurs. Le vôtre en est un bon exemple.
civil le
qui a trouvé le terme "personnage" et "glyphe" en premier? graphistes ou ingénieurs informaticiens? j'aurais pensé que les ordinateurs sont venus avant la conception graphique. Mais il peut y avoir une industrie de l'imprimerie qui a précédé la conception graphique et qui a précédé les ordinateurs à certains égards ou qui a précédé les ordinateurs modernes. Je suppose que bien que les personnes qui pourraient répondre le mieux à ce qui est maintenant la conception graphique, c'est l'industrie de l'impression, mais il n'y a pas de changement de pile dans l'industrie de l'impression. Mais il serait intéressant de savoir qui a emprunté à qui et de quelle manière est le terme Personnage.
barlop
1
La typographie est venue bien avant l'ingénierie logicielle. Veuillez poster ici si vous entreprenez la recherche et trouvez les origines. Je suppose que ce sera au 17e siècle. Peut-être dès les premiers typographes au milieu du 16e.
civil le
6

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:

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.

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+FB01est le caractère de la ligature: http://unicode.org/charts/PDF/UFB00.pdf

Avoir 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:

Les ligatures existantes existent essentiellement pour la compatibilité et l'aller-retour avec les jeux de caractères non Unicode. Leur utilisation est déconseillée.

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é fet idans 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ères f( U+0066) et i( U+0069) dans votre presse-papiers.

2) Dans le deuxième exemple, vous avez tapé le code HTML du caractère de ligature ( &#64257) 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ère U+FB01.

3) Dans le troisième exemple, vous copiez le caractère de ligature rendu U+FB01qui 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 &#64257;est une chaîne de 8 caractères distincts. Le rendu HTML de votre navigateur Web remplace ces 8 caractères U+0026 U+0023 U+0036 U+0032 U+0035 U+0037 U+0023par 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+FB01caractère unique est copié dans votre presse-papiers.

Lorsque vous collez le U+FB01caractè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.

airfrog
la source
1

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):

  • L'application a d'abord lu la chaîne de texte, c'est-à-dire la chaîne de caractères stockée sur le disque ou en mémoire.
  • Il serait ensuite envoyé à un moteur de mise en page de texte, parmi d'autres propriétés comme la police souhaitée, la langue du texte et ainsi de suite:
    • Le moteur de mise en page du texte ouvre essentiellement le fichier de police, lui demande les glyphes correspondant à chaque caractère et effectue une substitution de glyphe (comme remplacer le glyphe pour fet iavec le glyphe de ligature de fi) et un positionnement (comme le crénage).
    • À la fin, le moteur de mise en page a une séquence de glyphes, leurs positions les unes par rapport aux autres, et un mappage entre les caractères d'entrée et les glyphes de sortie. Le mappage de caractère à glyphe est tel qu'il sait que les deux premiers caractères du mot filecorrespondent deux le premier glyphe (la filigature), le 3ème caractère au 2ème glyphe et le 4ème caractère au 3ème glyphe.
  • Une bibliothèque de rendu graphique est ensuite utilisée pour «dessiner» ces glyphes à l'écran en utilisant des formes de la police.
  • Lorsque l'utilisateur sélectionne «glyphes» à l'écran, l'application consulte alors le mappage de glyphe à texte fourni par le moteur de mise en page pour trouver quelle partie du texte d'entrée correspond à ce que l'utilisateur sélectionne et envoie ce texte au presse-papiers lorsque le l'utilisateur le copie.
  • La même chose se produit lorsque l'utilisateur insère le curseur au milieu du texte et commence à taper, le mappage détermine où dans le texte d'entrée insérer les nouveaux caractères et le texte de mise à jour est envoyé au moteur de mise en page pour le traiter et le redessiner, etc.
Khaled Hosny
la source