129 votes

Pourquoi ne devrais-je pas utiliser des caractères Unicode pour simuler des styles typographiques (comme les petites capitales ou script) ?

Unicode contient divers caractères qui ressemblent à des variantes typographiquement stylisées de caractères de l'alphabet latin de base et qui permettent d'écrire des textes dans les styles typographiques correspondants sans avoir recours au balisage ou autre. Par exemple, on peut simuler :

  • Les petites capitalisations :

    y x.

  • script :

    .

  • Blackletter :

    .

Ceci a rencontré un intérêt sur Stack Exchange (par exemple, aquí , aquí y aquí ) et des critiques ont été formulées à l'encontre de ces techniques. Mais qu'est-ce qui peut mal tourner lorsque je les utilise ?

228voto

Wrzlprmft Points 2742

Général

Ces caractères ne sont pas destinés au texte normal de l'alphabet latin, mais à la phonétique, au texte de l'alphabet cyrillique, à l'utilisation comme symboles mathématiques (représentant des variables), etc. La seule façon conforme à Unicode d'encoder du texte dans l'alphabet latin de base est d'utiliser les caractères principalement utilisés à cette fin (c.-à-d., de la série Latin de base Bloc Unicode).

Comme pour de nombreuses autres normes, vous devriez réfléchir à deux fois avant de violer Unicode. De plus, Unicode comprend tellement de systèmes d'écriture, de cas d'utilisation et de choses qui n'existent que pour la rétrocompatibilité avec d'autres normes 1 que comprendre pleinement toutes ses motivations est une science à part entière. En bref, à moins que vous ne sachiez vraiment vraiment ce que vous faites, il est extrêmement probable que quelque chose se brise auquel vous n'avez même pas pensé.

Exemples concrets

Accessibilité

Le texte codé n'existe pas seulement pour être rendu dans une certaine police. Il peut également être interprété, par exemple, par des lecteurs d'écran. Et un lecteur d'écran ne devrait pas avoir besoin de deviner si

est censé être l'article défini ou le produit mathématique 2 des variables , , et - ce pour quoi ces caractères sont faits. Le meilleur comportement sera donc d'épeler ces caractères, par exemple en disant littéralement ce qui suit :

gras script petit t, gras script petit h, gras script petit e

Il ne devrait pas simplement dire "le" à la place, car il ne pourrait alors pas lire correctement les textes mathématiques dont les symboles se trouvent former un mot prononçable. 3

Portabilité

Si votre texte est bien rendu sur votre machine, cela ne signifie pas qu'il le sera aussi sur celle du lecteur. L'exemple le plus évident est que le lecteur ne dispose d'aucune police supportant ces caractères ou que le texte est rendu par un logiciel ne supportant pas les polices de repli. Il est vrai que cette situation est de moins en moins fréquente. N'oubliez pas cependant que certaines personnes, comme les dyslexiques, ont besoin de polices spéciales qui sont moins susceptibles de supporter ces caractères.

Mais même si la machine du lecteur n'utilise qu'une police différente, cela peut rendre le texte beaucoup moins lisible. Pour un premier exemple ce qui est rendu avec deux polices différentes :

rendered with FreeSerif and STIX

Free Serif rend le texte comme vous voudriez probablement qu'il soit rendu lorsque vous utilisez des caractères spéciaux pour simuler du texte, à savoir simuler une écriture manuscrite avec un trait continu. Cependant, ces caractères sont conçus pour être utilisés comme des symboles mathématiques, une connexion qui n'a aucun sens. C'est pourquoi le rendu par STIX qui est spécifiquement conçu à des fins mathématiques, est plus conforme à la façon dont ces caractères sont censés être utilisés.

Dans un deuxième exemple Supposons que vous ou le lecteur mettez le "y" en italique pour une raison quelconque. Avec une bonne police, vous obtiendrez 4 :

y  rendered in upright and italics. italics reads as "cum my bar"

La raison en est que les petites capitales ont été (partiellement) simulées avec des lettres cyrilliques, et que Les caractères italiques cyrilliques ont parfois un aspect très différent de leurs homologues droits. . Donc, encore une fois, c'est le comportement approprié.

Capacité de recherche

En tant que premier exemple, considérez ce que vous voudriez qu'une recherche raisonnable fasse avec le caractère (script mathématique. W ). Supposons que la recherche comporte deux modes, le mode mode par défaut y el mode précis (généralement appelé sensible à la casse ). Ce caractère devrait être :

  • trouvé lors de la recherche de w o W en mode par défaut - pour ceux qui ne veulent pas prendre la peine de saisir ou de copier-coller le caractère spécial dans le champ de recherche ;

  • trouvé lors d'une recherche en mode exact - pour ceux qui veulent rechercher où la variable correspondante est mentionnée dans un document mathématique³ ;

  • non trouvé lors de la recherche de , w o W en mode exact en raison de la rupture d'une recherche similaire à la précédente.

Cependant, si vous utilisez ce caractère pour simuler du texte normal, il devrait être trouvé lors de la recherche de W ou en mode exact, ce qui est en contradiction avec ce qui précède.

En tant que deuxième exemple Considérez que les caractères cyrilliques ne doivent jamais être trouvés lors d'une recherche de caractères latins et vice versa, car ce sont des choses complètement différentes. Cependant, si vous utilisez des caractères cyrilliques pour simuler les petites capitales latines, il faut que cela se produise, si vous ne voulez pas que la recherche soit interrompue. Cela conduirait les gens à trouver beaucoup de choses inutiles s'ils recherchent un mot rare en alphabet latin qui se trouve correspondre aux fausses petites capitales d'un mot populaire en alphabet cyrillique (et vice versa).

Une option de recherche exacte ne peut pas résoudre ce problème, car elle est réservée à d'autres fins dans ces alphabets.

En général Il est impossible de construire une recherche (sans une quantité démesurée d'options) qui ne soit pas interrompue par l'utilisation de caractères spéciaux pour simuler un texte latin stylé.


1 Vous savez ce XKCD sur l'échec inévitable des normes unifiées ? Eh bien, Unicode a réussi.
2 ou quel que soit l'opérateur vide dans la convention pertinente
3 Je suis conscient que très peu de textes mathématiques supportent aujourd'hui cet encodage ou quelque chose de compatible avec lui, mais le fait est qu'un jour on espère qu'ils le feront. Votre texte qui abuse d'Unicode sera peut-être encore disponible et lu à ce moment-là.
4 À moins que vous ne localisiez pour le macédonien ou le serbe, auquel cas vous obtiendrez un résultat différent mais toujours indésirable.

69voto

Konstantin Burov Points 34011

Qu'est-ce qui peut mal tourner ? Eh bien, je vois ça :

enter image description here

dans Firefox 50.1.0 sur Windows 7.

Le problème de glyphes manquants dans ce cas sur un appareil mobile, est illustré par une image donnée par l'utilisateur Chris Kent sur un commentaire que j'ai recadré et redimensionné à partir de l'original :

enter image description here

Et l'utilisateur oals aimablement a contribué un autre exemple :

enter image description here

29voto

Michael Hampton Points 13142

J'ai un problème de XY avec ça.

Y and X appear smaller than the rest of the text

Ici, on voit que Y et X apparaissent plus petits que le reste du texte. À certains niveaux de zoom, ils semblent avoir la même taille, mais cela semble avoir mis en évidence un problème avec ces glyphes particuliers dans cette police particulière.

14voto

CCTO Points 287

L'utilisation de caractères non latins qui ressemblent un peu à des caractères latins vous place en compagnie de spammeurs, de marchands de pornographie et de je ne sais quoi d'autre qui veulent que leur texte soit impossible à rechercher, à indexer et à répudier. (" Je n'ai jamais dit que c'était sûr ! J'ai dit que c'était sigma-alpha-intégral-sign-epislon ! !! Vous ne pouvez pas me poursuivre ! !!")

Si vous êtes à l'aise dans ce club, alors allez-y.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X