web-dev-qa-db-fra.com

Comment utiliser Fixedsys dans le terminal Gnome, ou partout où des polices à un espace sont nécessaires

Je pense que la police Fixedsys est l’une des polices monospaces les plus lisibles pour la programmation. Il n'a aucun antialiasing, avec des lignes verticales de 2 pixels de large pour la plupart. Proche de l'idéal pour les hauteurs de points de moniteur actuelles, à mes yeux (littéralement). Voici un échantillon:

Fixedsys sample

Après des années de Windows à la maison (pour des raisons familiales) et de serveurs Linux au travail accessibles via Cygwin sous Windows (pour des raisons de stratégie d'entreprise), avec Fixedsys comme Shell et la police IDE, j'ai finalement décidé de basculer vers Ubuntu à la maison.

Eclipse et gedit ne posent aucun problème, ils acceptent une version corrigée de la police Fixedsys Excelsior TTF que vous pouvez trouver ici au commentaire n ° 16 (nom du fichier: FSEX301-L2.ttf) . Mais le terminal Gnome accepte uniquement les polices à espacement fixe.

Bien que Fixedsys Excelsior soit essentiellement monospace, il contient des glyphes plus grands (principalement pour les langues orientales), ainsi que des ligatures. Apparemment TOUS les caractères doivent avoir la même largeur pour qu'une police soit reconnue comme étant monospace, Fixedsys Excelsior ne peut pas être sélectionné dans tous les contextes dans lesquels des polices monospaces sont requises, y compris gnome-terminal.

Quel est donc le moyen le plus simple et le plus propre d’utiliser un clone Fixedsys dans des contextes n’acceptant que les polices à espacement fixe?

10
Walter Tross

C'est la solution que j'ai trouvée. Je l'ai testé minutieusement à plusieurs reprises, et j'utilise la police résultante dans plusieurs endroits depuis plus de 2 ans maintenant, mais soyez averti: certaines parties de la procédure peuvent aller de la sous-optimale à la mauvaise.

Avant de vous demander "pourquoi ne rendez-vous pas la police obtenue", la réponse est: "parce que je ne suis pas sûr de pouvoir le faire". Le copyright de la police est une matière complexe.


Téléchargez le police Fixedsys Excelsior corrigée (fichier FSEX301-L2.ttf, commentaire 16)

Installer FontForge (par exemple, à partir du Centre de logiciel Ubuntu)

Cliquez avec le bouton droit sur le fichier FSEX301-L2.ttf et ouvrez-le avec FontForge. Dans la fenêtre Charger les polices bitmap qui apparaît, cliquez sur Non .

Cliquez sur Fichier → Exécuter le script ... , puis copiez-collez le texte suivant dans la fenêtre qui apparaît:

SelectAll()
foreach
   if (GlyphInfo("Width") != 80)
      DetachAndRemoveGlyphs()
   else
      b = GlyphInfo("BBox")
      if (b[0] < 0 || b[1] < -30 || b[2] > 80 || b[3] > 130)
         DetachAndRemoveGlyphs()
      endif
   endif
endloop
SelectNone()

Puis sélectionnez FF et cliquez sur OK (il faudra un moment, vous devrez attendre que la fenêtre Execute Script disparaisse)

Cliquez sur élément → Informations sur la police ... Dans Noms PS modifiez le Nom de la police , Nom de la famille et Nom pour les humains , par exemple, en ajoutant Mono (les espaces ne sont autorisés que dans les deuxième et troisième chaînes).

Dans la même fenêtre Informations sur la police , sélectionnez OS/2 .
Dans l'onglet Divers , changez la famille de la famille PFM . to Monospace .
Dans l'onglet Métriques, définissez les décalages Win Descent Offset et HHead Descent Offset sur 0.(*).
Dans l'onglet Panose , remplacez Proportion par Monospaced .

Dans la même fenêtre Informations sur la police , sélectionnez Lookups .
Dans l'onglet GSUB, et dans GPOS, sélectionnez chaque ligne et cliquez sur Supprimer .

Dans la même fenêtre Informations sur la police , cliquez sur OK, puis dans Changer UniqueID? fenêtre qui apparaît cliquez sur Changer .

Si vous le souhaitez, vous pouvez modifier une ou plusieurs fonctionnalités douteuses de Fixedsys. Par exemple, le caractère zéro est décalé d'un pixel vers la droite. Pour revenir au centre, double-cliquez dessus, puis cliquez sur Métriques → Définir le support ... , définissez la valeur LBearing sur 10 et cliquez sur OK. Vous pouvez également modifier la forme des caractères, mais conservez toujours les points de contrôle par multiples de 10 et la largeur par 80.

Cliquez sur Elément → Frappes de bitmap disponibles ... , puis, dans la fenêtre qui apparaît Taille des pixels à 16 et cliquez sur OK.

Cliquez sur Fichier → Générer des polices ... , choisissez un autre répertoire et/ou un nom de fichier différent si nécessaire, assurez-vous que le format de sortie est TrueType , puis cliquez sur Enregistrer . Dans la fenêtre non standard Em-Size qui apparaît, cliquez sur , puis sur Oui . Dans la fenêtre Erreurs détectées qui apparaît ensuite, cliquez sur Enregistrer (ne vous inquiétez pas).

Quittez FontForge ( Fichier → Quitter ). Dans la fenêtre Police modifiée qui apparaît, cliquez sur Ne pas enregistrer .


Déplacez le fichier généré dans le sous-répertoire .fonts de votre répertoire personnel (créez-le s'il n'existe pas).

Ouvrez le terminal Gnome. Cliquez sur Édition → Profils ... Dans un profil (je vous suggère d'en créer un nouveau), changez la police de caractères en Fixedsys Excelsior 3.01-L2 Mono (ou ont appelé la version mono de Fixedsys Excelsior), de taille 12 (qui est la seule "vraie" taille de Fixedsys). Si vous le souhaitez, vous pouvez également désactiver le texte en gras. Je suggère du texte noir sur fond blanc, mais c'est une question de goût.

La variante en gras de cette police revient à répéter le caractère décalé d’un pixel vers la droite (ceci est différent de FSEX301-L2.ttf où elle apparaît lissée). Ce n'est pas très lisible - mais avez-vous vraiment besoin de gras? Je ne. Le problème ne concerne que les contextes dans lesquels le gras ne peut pas être désactivé (pas même, par exemple, en modifiant la coloration syntaxique), en particulier dans les cas où l’espacement des caractères est également incrémenté d’un pixel, rompant ainsi les alignements (ce qui n’est pas le cas dans gnome). -Terminal). Je n'ai pas encore trouvé de solution à cette dernière nuisance. Les suggestions sont les bienvenues.


(*): inutile depuis la sortie de FontForge du 2012-07-31 (in 14.04 LTS - Trusty Tahr)

7
Walter Tross

Excellente solution de Walter Tross, mais si vous ne voulez pas tout faire, voici le lien de téléchargement:

FixedsysExcelsiorIIIb-L2_Mono.ttf

3
Borjovsky