Monaspace : la police monochasse mais pas monotone de GitHub
Les premiers terminaux n’étaient guère plus que des machines à écrire informatisées, dont les capacités (typo)graphiques étaient fort limitées. Les développeurs en ont gardé l’habitude d’utiliser des polices à chasse fixe, qui possèdent l’avantage d’une régularité facilitant l’indentation des blocs de code, mais l’inconvénient d’une monotonie qui peut nuire à la lisibilité. GitHub veut joindre l’utile et l’agréable avec sa police Monaspace, dont certains caractères sont plus égaux que d’autres.

La chasse comprend la largeur d’un glyphe augmentée de ses approches, le blanc qui entoure le glyphe pour dégager des espaces entre les caractères. Dans une police à chasse fixe, un caractère aussi étroit que le « l » prend autant de place qu’un caractère aussi large que le « m ». L’un doit être ornementé pour remplir le blanc et l’autre doit être comprimé pour rester dans ses bornes. C’est l’inconvénient de l’avantage de ces polices, leur parfaite régularité qui convient parfaitement à la mise en page des blocs de code.
Les technologies de composition permettent pourtant de varier l’approche de paire (entre deux caractères) voire l’approche de groupe (entre trois caractères) pour apporter un peu de variété sans rompre la régularité. Dans le triplet « moi », le « o » peut réduire son approche droite pour glisser vers le « i » et laisser respirer le « m ». Commit Mono, une nouvelle police tout juste publiée par Eigil Nikolajsen, utilise cette méthode pour améliorer la lisibilité.
GitHub va plus loin avec son « traitement de la texture », qui utilise le mécanisme des « alternatives contextuelles » pour changer les glyphes en fonction de leurs voisins. Ainsi dans le triplet « lmi », le « l » et le « i » réduisent leurs approches en adoptant des glyphes plus étroits pour laisser le « m » s’étendre en adoptant un glyphe plus large. La chasse reste fixe, mais le blanc entourant les glyphes change pour faire varier le rythme horizontal.
La police comprend de nombreuses ligatures pour les opérateurs les plus courants, un choix esthétique plus que pratique. GitHub propose cinq déclinaisons (dont une mécane et une scripte furieusement néorétro) et trois axes de variation (graisse, largeur et inclinaison) pour un total de 640 000 combinaisons. Monaspace est distribuée gratuitement sous licence OFL, sur GitHub bien entendu.
Au premier abord le sujet de la typographie paraît aride, autant l’article le rend accessible.
C’est pour ça qu’on aime Macg, des articles très intéressants sur des sujets qui vont bien au delà de l’écosystème Apple.
Merci d’élargir régulièrement ma culture informatique 🙏🏻
@Nicol8s
👍🏻
Oh la divine surprise !
On peut être dans l'informatique et être sensibilisé à la belle typo, ce qui est mon cas. Je garde la Menlo dans mon terminal parce qu'elle tolère mieux les petits interlignes. Mais pour tout ce qui est code, la Monaspace va devenir ma typo de prédilection, je le sens. :)
À+
@Bilbo
La Fiat Typo était laide pardon 😈
Que dire du multipla alors ?
@vince29
👍😈
@vince29
"Que dire du multipla alors ?"
Oh, pelle !
@Bilbo
Pour ceux qui s’intéressent à l’histoire et à l’évolution des polices à chasse fixe, une référence visuelle indispensable :
https://www.slanted.de/product/mono-moment/
Et si vous avez la chance de pouvoir encore accéder à une IBM Selectric dotée d’un golfball Courier, tapez une page.
Retapez et imprimez le même texte, à l’identique, avec la police Courier de votre ordi. Comparez les deux.
Courier sur nos ordinateurs est symptomatique de ce qui a mal tourné lors de la première adaptation informatique des polices à chasse fixe, et indicateur de l’intérêt d’en créer de nouvelles.
@occam
Très intéressant. Dommage, rien en français.
Perso j’aime bien mono de jetbrains, avec les ligatures c’est sympa à lire
Dans le même genre, il y a également FiraCode: https://github.com/tonsky/FiraCode
@ pboudoin
FiraCode c'est autre chose.
Cette police permet de remplacer à l'affichage des "caractères doubles" comme: -> par des caractères "simples" comme: →.
@marc_os
+1 pour FiraCode.
Dans R, à condition d’utiliser l’environnement RStudio, les ligatures fournies par FiraCode améliorent la lisibilité des opérateurs à double caractère.
Edit : je voulais ajouter quelques autres exemples où les ligatures de FiraCode facilitent la lisibilité, mais l’interpréteur HTML de MacG les lit comme balises et les transforme en balais.
@ occam
"en balais" ? 🧹
😳
@marc_os
Il a pris peur
SF Mono de Xcode me convient très bien.
Monaspace évite peut-être de "compresser" les lettres du type "m", en les rendant ainsi plus lisibles, mais le fait que la largeur ne soit pas respectée fait que tout l'intérêt des polices "mono space" est perdu; vu que les colonnes de lettres ne sont plus bien "alignées" en colonnes.
@marc_os
Ce n’est pas ce que j’ai compris.
Le m va prendre un chouilla plus de place en prenant sur ses deux voisines qui du coup auront un empattement un pool plus faible . Mais au final , sur la ligne , les caractères arriveront au même endroit que sur une autre ligne sans le m.
La chasse fixe me semble donc globalement respectée.
Précision : ça n’est que les variations taguées de « var » que ceci est présent, sur les autres il n’y a pas ça.
Merci pour cet article simple et efficace, c’est très rafraîchissant !
Et on augmente notre vocabulaire au passage
Merci Anthony
Ça fait toujours plaisir d’avoir de nouvelles options ! Mais je reste avec Dank Mono
Le game a été plié avec JetBrain qui a sorti JetBrain Mono en open source et sous license libre.
La police a été étudié pour le code et les IDE, et il faut avouer qu’on trouve rarement mieux une fois essayé.
Après, les gars de GitHub ne sont pas des guignols donc à essayer et voir ce qu’on préfère.
Cette histoire de taille variable a l’air très intéressante. A voir comment les IDE gèrent ça.
Sinon l’article aurait pu mentionner que le travail a en fait été fait par Lettermatic. C’est apparemment eu qui ont fait la police de certains produits de Google.
https://lettermatic.com/custom/portamento-case-study
I had never designed a monospace typeface when this project began, and so I began daydreaming about how I would go about it.
@marc_os
lol oui choix intéressant de Google. Mais du coup c’était au moins la deuxième police pour GitHub 😅
Je pense que j’en resterai à ce bon vieux Monaco (sans antialiasing, si possible).
Le JetBrain Mono est aussi très très très sympa : https://www.jetbrains.com/lp/mono/