Espacement des lignes excessif avec certaines polices

13

Depuis longtemps, j'utilise DejaVu Sans Mono comme police de programmation. Je n'ai pas encore trouvé de meilleure police.

Mais il y a quelque temps, j'ai découvert la Fira de Mozilla , qui a l' air très agréable pour le code . J'ai donc décidé de l'essayer dans Emacs.

Malheureusement, lorsque je l'utilise dans Emacs, l'espacement des lignes explose et réduit le nombre de lignes que je peux voir d'environ 10.

J'ai essayé (setq line-spacing 0)et différentes combinaisons de choses comme (set-frame-font (font-spec :name "Fira Mono" :width 'normal :height 100)), mais peu importe ce que je fais, l'espacement des lignes excessif reste. ( line-spacingMalheureusement, il n'est pas possible d'utiliser des valeurs négatives dans Emacs, ce qui semble être la solution évidente.)

Cela ne semble pas être un bug dans la police, car lorsque j'utilise Fira Mono dans Kate à la même taille, l'espacement des lignes est ce que je considérerais comme normal, et apparemment à peu près le même que l'espacement des lignes Emacs avec DejaVu Sans .

Est-ce un bug dans Emacs? Y a-t-il un moyen de réparer ceci?

Merci pour tout conseil.

Gauche: Emacs Fira Mono Droite: Emacs DejaVu Sans Mono Emacs Fira Mono contre Emacs DejaVu Sans Mono

Gauche: Emacs Fira Mono Droite: Kate Fira Mono Emacs Fira Mono contre Kate Fira Mono

blujay
la source
1
Vous pouvez essayer --line-spacing=PIXELSen ligne de commande avec emacs, mais je suppose que cela n'aidera pas. Ma boule de cristal me dit que l'espacement des lignes n'insère aucun pixel supplémentaire et que le problème vient de l'affichage de la police par Emacs. Le mode tampon fait-il une différence? (Je suppose que vous avez vérifié frame-parametersla police, etc.)
Drew
2
Pour être honnête, il me semble que DejaVu n'a pas assez d'espacement, et si vous regardez la dernière capture d'écran avec Fira, vous pouvez même voir que les personnages qui ont des éléments descendants tels que g et y sont rognés. En dehors de cela, je pense que la hauteur de ligne minimale serait calculée en fonction d'un paramètre TTF, donc si vous voulez vraiment changer cela, je chercherais à modifier le fichier TTF (ou est-ce OTF?) Pour changer la police métrique pour permettre moins d'interlignage.
wvxvw
1
Que se passe-t-il si vous ajoutez minspace=trueà la définition de police FontConfig? Par exemple quelque chose comme emacs -fn 'Fira Mono:minspace=true', ou quel que soit le nom de la police.
jch
3
Ce n'est pas ce que vous voulez entendre, mais j'ai abandonné l'espacement des lignes il y a un peu plus d'un an. Au lieu de cela, je choisis une police avec laquelle je suis à l'aise et je l'ai définie :heightet c'est tout. Emacs n'a pas vraiment un bon contrôle de la distance entre les lignes, et l'ajuster ne fait que poser plus de problèmes. Peut-être qu'une demande de fonctionnalité serait appropriée - par exemple, pour définir la distance entre les lignes en pixels et la faire fonctionner avec toutes les polices.
lawlist
1
La hauteur de ligne est une propriété de la police, le rendu d'Emacs respecte la valeur donnée. Si vous forcez une certaine hauteur quelle que soit la propriété de la police, vous risquez de vous retrouver avec des caractères rognés, comme dans la capture d'écran de Fira Mono dans Kate (comme wvxvw l'a déjà souligné). En ce qui concerne les polices proportionnelles, je trouve que Lucida Grande Mono est la plus efficace en termes d'espace tout en étant très lisible à de petites tailles (Droid Sans Mono se rapproche, mais il est moins dense).
paprika

Réponses:

2

Fira Mono v3.2 a ajusté la hauteur de ligne de la police, ce qui la rend utilisable par moi dans Emacs:

https://github.com/mozilla/Fira/issues/67

cemerick
la source
Merci pour la mise à jour. Cela semble un peu mieux, mais j'obtiens toujours 4 lignes de moins dans Emacs avec Fira Mono 3.2 qu'avec DejaVu Sans Mono. Donc, malheureusement, c'est encore inutile. Je n'ai pas besoin de plus d'espace entre les lignes; ça ne me rapporte rien. Tout ce qu'il fait, c'est réduire ce que je peux voir à l'écran et me faire défiler plus, ce qui réduit mon efficacité et fait perdre mon temps. :( Dommage que Mozilla se soucie plus de rendre une police aérée que de la rendre utile.
blujay
… Et vous pouvez obtenir 4 lignes supplémentaires à l'écran avec Consolas (par exemple) par rapport à DejaVu Sans Mono. Les polices individuelles ont différentes hauteurs intrinsèques (et largeurs, dans le cas des variantes monospaces), ce qui n'a rien à voir avec l'espacement des lignes. Imposer une sorte de méchanceté à Mozilla ou à Carrois (la fonderie de types qui semble diriger le design de Fira) est tout simplement stupide.
cemerick
Qui a parlé de méchanceté? Ou depuis quand "aéré" = malice? Le fait est qu'il existe actuellement une tendance à l'augmentation des espaces blancs dans, essentiellement, toutes les choses liées à l'interface utilisateur. Pratiquement chaque grand site Web qui fait une refonte récemment augmente considérablement l'espacement des lignes. C'est ce qui est actuellement populaire. Ces mêmes tendances se répandent dans les outils qui sont créés pour faire ces choses. "Plus d'espace sur le site Web = bon, donc plus d'espace dans l'éditeur = bien." Ce dogmatisme n'est pas malveillant, il est juste inutile. Veuillez essayer de comprendre avant de vous défendre contre les non-attaques.
blujay
1
Oh, et pour info, il y a un code Fira dans les œuvres avec moins d'espacement des lignes. Espérons que cela se déroule.
blujay
Pour le moment, cependant, il semble y avoir un grave problème dans Emacs. ("Les commentaires ne peuvent être modifiés que pendant 5 minutes." Soupir.)
blujay