Espaçamento excessivo de linhas com certas fontes

13

Há muito tempo que uso o DejaVu Sans Mono como minha fonte de programação. Ainda estou para encontrar uma fonte melhor.

Mas, há pouco tempo, descobri o Fira da Mozilla , que parece muito bom para código . Então eu decidi tentar no Emacs.

Infelizmente, quando o uso no Emacs, o espaçamento entre linhas aumenta e reduz o número de linhas que posso ver em cerca de 10.

Eu tentei (setq line-spacing 0)e diferentes combinações de coisas como (set-frame-font (font-spec :name "Fira Mono" :width 'normal :height 100)), mas não importa o que eu faça, o espaçamento excessivo entre linhas permanece. (Não é possível usar line-spacingvalores negativos no Emacs, infelizmente, o que parece ser a solução óbvia.)

No entanto, não parece ser um erro na fonte, porque quando eu uso o Fira Mono no Kate do mesmo tamanho, o espaçamento entre linhas é o que eu consideraria normal e aparentemente semelhante ao espaçamento entre Emacs e DejaVu Sans .

Isso é um bug no Emacs? Existe alguma maneira de corrigir isso?

Obrigado por qualquer conselho.

Esquerda: Emacs Fira Mono Direita: Emacs DejaVu Sans Mono Emacs Fira Mono vs. Emacs DejaVu Sans Mono

Esquerda: Emacs Fira Mono Direita: Kate Fira Mono Emacs Fira Mono vs. Kate Fira Mono

Blujay
fonte
1
Você pode tentar --line-spacing=PIXELSna linha de comando emacs, mas acho que isso não vai ajudar. Minha bola de cristal me diz que o espaçamento entre linhas não está inserindo nenhum pixel extra e que o problema está na exibição da fonte pelo Emacs. O modo buffer faz alguma diferença? (Presumo que você verificou frame-parameterspara ver o que a fonte é etc.)
de Drew
2
Para ser honesto, para mim, parece que o DejaVu não possui espaço suficiente e, se você olhar a última captura de tela com o Fira, poderá até ver os caracteres que possuem elementos descendentes, como g e y, são cortados. Fora isso, acho que a altura mínima da linha seria calculada com base em algum parâmetro TTF; portanto, se você realmente quiser alterar isso, estarei procurando modificar o arquivo TTF (ou é OTF?) Para alterar a fonte métrica para permitir menos liderança.
Wvxvw 5/04
1
O que acontece se você anexar minspace=trueà definição de fonte FontConfig? Por exemplo, algo como emacs -fn 'Fira Mono:minspace=true', ou qualquer que seja o nome da fonte.
JCH
3
Não é isso que você quer ouvir, mas desisti do espaçamento entre linhas há pouco mais de um ano. Em vez disso, escolho uma fonte com a qual me sinto confortável e defino o :heighte pronto . O Emacs realmente não tem um bom controle da distância entre linhas, e ajustá-lo apenas causa mais problemas. Talvez uma solicitação de recurso seja apropriada - por exemplo, para definir a distância entre linhas em pixels e fazer com que funcione com todas as fontes.
lawlist
1
A altura da linha é uma propriedade da fonte, a renderização do Emacs respeita o valor fornecido. Se você forçar uma certa altura, independentemente da propriedade da fonte, poderá acabar com caracteres cortados, como na captura de tela do Fira Mono no Kate (como wvxvw já apontou). Quando se trata de fontes proporcionais, acho que o Lucida Grande Mono é o mais eficiente em termos de espaço, embora ainda seja muito legível em tamanhos pequenos (o Droid Sans Mono chega perto, mas é menos denso).
Paprika

Respostas:

2

O Fira Mono v3.2 ajustou a altura da linha da fonte, o que a tornou utilizável por mim no Emacs:

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

cemerick
fonte
Obrigado pela atualização. Parece um pouco melhor, mas ainda tenho 4 linhas a menos no Emacs com o Fira Mono 3.2 do que com o DejaVu Sans Mono. Infelizmente, ainda é inútil. Não preciso de mais espaço entre as linhas; isso não me ganha nada. Tudo o que faz é reduzir o quanto posso ver na tela e me fazer rolar mais, reduzindo minha eficiência e desperdiçando meu tempo. :( Pena que o Mozilla está mais preocupado em fazer com que uma fonte pareça arejada do que em útil.
blujay
… E você pode obter mais 4 linhas na tela com o Consolas (por exemplo) em comparação com o DejaVu Sans Mono. Fontes individuais têm diferentes alturas intrínsecas (e larguras, no caso de variantes monoespaçadas), o que não tem nada a ver com espaçamento entre linhas. Imputar algum tipo de malícia à Mozilla ou Carrois (o tipo de fundição que parece estar liderando o design de Fira) é simplesmente bobo.
cemerick
Quem disse alguma coisa sobre malícia? Ou desde quando "arejado" = malícia? O fato é que atualmente existe uma tendência para aumentar o espaço em branco em, basicamente, tudo relacionado à interface do usuário. Praticamente todos os sites grandes que realizam uma reformulação aumentam bastante o espaçamento entre linhas. É o que é atualmente popular. Essas mesmas tendências se espalham pelas ferramentas criadas para fazer essas coisas. "Mais espaço em branco no site = bom, portanto, mais espaço em branco no editor = bom." Esse dogmatismo não é malicioso, é apenas inútil. Por favor, tente entender antes de se defender contra não ataques.
blujay
1
Ah, e para sua informação, existe um código Fira em andamento com menos espaçamento entre linhas. Espero que isso aconteça.
blujay
No momento, porém, parece ter um problema sério no Emacs. ("Os comentários só podem ser editados por 5 minutos." Suspiro.))
blujay