Largeur caractères identiques

Salut,


 


Je souhaites savoir si il existe un moyen d'obtenir une largeur identique pour chaque caractère d'un texte  un peu comme le fait la police Monospace mais avec n'importe quelle police.


 


Par exemple, un W est plus large qu'un I. Je souhaites que les deux aient la même largeur.


 


Sachant que je cherche à  influer sur la largeur d'un caractère et pas sur l'espacement entre chaque caractère (ici avec NSKernAttribute).


 


 


Mots clés:

Réponses

  • Utilise une font non-proportionnelle. 


     


    https://fr.wikipedia.org/wiki/Chasse_(typographie)

  • CéroceCéroce Membre, Modérateur
    Pas possible à  mon avis, et de toute façon une très mauvaise idée. Dans l'exemple que tu donnes, on aurait deux moyens de faire en sorte qu'un I occupe autant de place qu'un W:
    - étirer le I (horreur !)
    - ajouter des blancs autour du I. Le problème est alors qu'on confond ces blancs avec des espaces.

    Bref, utilise une police à  largeur fixe comme le suggère Draken (il en existe des belles), ou trouve une autre solution.
  • PyrohPyroh Membre
    février 2016 modifié #4

    Alors comme ça sans plus de recherche je dirai qu'il faut chercher du coÌ‚té de NSLayoutManager et drawGlyphsForGlyphRange et arranger le dessin des lettres à  ta sauce. Je ne sais pas ce que ça va donner au niveau du layout qui pour le coup ne sera plus le même. 


     


    Donc ça devrait être possible mais va falloir mettre les mains dans cambouis jusqu'à  l'épaule (a priori hein, y'a peut-être une technique que je ne connais pas et qui est plus simple).


     


    Edit: Comme dit Céroce ça sera super moche...


  • Ok merci tout le monde. 


  • AliGatorAliGator Membre, Modérateur
    Sans parler du fait que la plupart des polices non-monospace sont pensées pour faire du Kerning, autrement dit plutôt justement *réduire* l'espace entre les caractères, et faire en sorte qu'un w et un i soient le plus rapproché possible.

    Du coup mine de rien notre cerveau s'y est habitué (et c'est logique car machinalement quand on écrit à  la main on fait aussi du Kerning, on ne cherche pas à  ce que chaque "i" ait exactement toujours la même largeur, il sera plus proche s'il est après un "t" qu'après un "w" car il va bien dans la continuité du "t", etc).

    Ce qui fait que si on lit un texte, écrit avec une police non-monospace, qui n'a juste pas de Kerning (= chaque lettre à  une largeur différente des autres mais tous les "w" ont la même largeur si pas de kerning) ça nous parait déjà  bizarre à  la base car moins naturel. Alors j'imagine même pas si on utilise ce genre de police pour faire de la largeur fixe et étirer les espaces entre les glyphes, ça va faire super chelou si la police n'a pas été désignée pour ça !
  • En effet. J'ai changé de stratégie et c'est mieux comme ça. Après les espaces blancs ajoutés à  un caractère sont pas inutiles dans certains cas précis je pense même si dans mon cas à  moi ça ne fait pas son effet.


Connectez-vous ou Inscrivez-vous pour répondre.