Espaciado de línea excesivo con ciertas fuentes

13

Durante mucho tiempo he estado usando DejaVu Sans Mono como mi fuente de programación. Todavía tengo que encontrar una mejor fuente.

Pero hace poco descubrí la Fira de Mozilla , que se ve muy bien para el código . Así que decidí probarlo en Emacs.

Desafortunadamente, cuando lo uso en Emacs, el espacio entre líneas explota y reduce el número de líneas que puedo ver en aproximadamente 10.

He intentado (setq line-spacing 0)y diferentes combinaciones de cosas como (set-frame-font (font-spec :name "Fira Mono" :width 'normal :height 100)), pero no importa lo que haga, el espacio entre líneas excesivo permanece. ( line-spacingDesafortunadamente, no es posible usar valores negativos en Emacs, lo que parece ser la solución obvia).

Sin embargo, no parece ser un error en la fuente, porque cuando uso Fira Mono en Kate con el mismo tamaño, el espacio entre líneas es lo que yo consideraría normal, y aparentemente casi lo mismo que el espacio entre líneas Emacs con DejaVu Sans .

¿Es esto un error en Emacs? ¿Hay alguna forma de arreglar esto?

Gracias por cualquier consejo

Izquierda: Emacs Fira Mono Derecha: Emacs DejaVu Sans Mono Emacs Fira Mono vs. Emacs DejaVu Sans Mono

Izquierda: Emacs Fira Mono Derecha: Kate Fira Mono Emacs Fira Mono vs.Kate Fira Mono

Blujay
fuente
1
Podrías probar --line-spacing=PIXELSen la línea de comando con emacs, pero supongo que eso no ayudará. Mi bola de cristal me dice que el interlineado no está insertando píxeles adicionales y que el problema está en la visualización de la fuente por parte de Emacs. ¿El modo buffer hace alguna diferencia? (Supongo que ha verificado frame-parameterspara ver cuál es la fuente, etc.)
Drew
2
Para ser honesto, para mí parece que DejaVu no tiene suficiente espacio, y si miras la última captura de pantalla con Fira, incluso puedes ver que los caracteres que tienen elementos descendentes como gy e se recortan. Aparte de eso, creo que la altura mínima de la línea se calcularía en función de algún parámetro TTF, por lo que si realmente desea cambiar eso, estaría buscando modificar el archivo TTF (¿o es OTF?) Para cambiar la fuente. métrica para permitir menos adelanto.
wvxvw
1
¿Qué sucede si minspace=trueanexas la definición de fuente FontConfig? Por ejemplo, algo como emacs -fn 'Fira Mono:minspace=true', o el nombre de la fuente.
jch
3
Esto no es lo que quieres escuchar, pero me di por vencido en el espacio entre líneas hace poco más de un año. En cambio, elijo una fuente con la que me siento cómodo y configuro el :heighty eso es todo. Emacs realmente no tiene un buen control de la distancia entre líneas, y ajustarlo solo causa más problemas. Quizás una solicitud de función sería apropiada, por ejemplo, para establecer la distancia entre líneas en píxeles y hacer que funcione con todas las fuentes.
abogados el
1
La altura de la línea es una propiedad de la fuente, la representación de Emacs respeta el valor dado. Si fuerza una cierta altura, independientemente de la propiedad de la fuente, podría terminar con caracteres recortados, como en la captura de pantalla de Fira Mono en Kate (como wvxvw ya señaló). Cuando se trata de fuentes proporcionales, encuentro que Lucida Grande Mono es el más eficiente en términos de espacio, aunque sigue siendo muy legible en tamaños pequeños (Droid Sans Mono se acerca, pero es menos denso).
pimentón

Respuestas:

2

Fira Mono v3.2 ajustó la altura de la línea de la fuente, lo que me ha permitido utilizarla en Emacs:

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

cemerick
fuente
Gracias por la actualización. Parece un poco mejor, pero todavía obtengo 4 líneas menos en Emacs con Fira Mono 3.2 que con DejaVu Sans Mono. Entonces, desafortunadamente, sigue siendo inútil. No necesito más espacio entre líneas; No me gana nada. Todo lo que hace es reducir cuánto puedo ver en la pantalla y hacer que me desplace más, reduciendo mi eficiencia y perdiendo el tiempo. :( Lástima que Mozilla esté más preocupado por hacer que una fuente se vea bien que por ser útil.
blujay
… Y puedes obtener 4 líneas más en la pantalla con Consolas (por ejemplo) en comparación con DejaVu Sans Mono. Las fuentes individuales tienen diferentes alturas intrínsecas (y anchos, en el caso de las variantes monoespaciales), lo que no tiene nada que ver con el espacio entre líneas. Imponer algún tipo de malicia a Mozilla o Carrois (la fundición tipográfica que parece liderar el diseño de Fira) es una tontería.
cemerick
¿Quién dijo algo sobre la malicia? ¿O desde cuándo "airy" = malicia? El hecho es que actualmente hay una tendencia a aumentar el espacio en blanco en, básicamente, todo lo relacionado con la interfaz de usuario. Prácticamente cada sitio web grande que hace un rediseño últimamente aumenta enormemente el espacio entre líneas. Es lo que actualmente es popular. Estas mismas tendencias se desvanecen en las herramientas que se crean para hacer estas cosas. "Más espacios en blanco en el sitio web = bueno, por lo tanto, más espacios en blanco en el editor = bueno". Este dogmatismo no es malicioso, simplemente es inútil. Intenta comprender antes de defenderte de los no ataques.
Blujay
1
Ah, y para su información, hay un Código Fira en proceso con menos espacio entre líneas. Ojalá se resuelva.
Blujay
Por el momento, sin embargo, parece tener un grave problema en Emacs. ("Los comentarios solo se pueden editar durante 5 minutos". Suspiro)
Blujay