Penspasian baris berlebihan dengan font tertentu

13

Untuk waktu yang lama saya telah menggunakan DejaVu Sans Mono sebagai font pemrograman saya. Saya belum menemukan font yang lebih baik.

Tetapi beberapa saat yang lalu saya menemukan Mozilla Fira , yang terlihat sangat bagus untuk kode . Jadi saya memutuskan untuk mencobanya di Emacs.

Sayangnya, ketika saya menggunakannya di Emacs, penspasian baris meledak dan mengurangi jumlah baris yang bisa saya lihat sekitar 10.

Saya sudah mencoba (setq line-spacing 0)dan berbagai kombinasi hal-hal seperti (set-frame-font (font-spec :name "Fira Mono" :width 'normal :height 100)), tetapi tidak peduli apa yang saya lakukan, jarak garis yang berlebih tetap ada. (Sayangnya, tidak mungkin menggunakan line-spacingnilai negatif di Emacs, yang akan tampak seperti solusi yang jelas.)

Tampaknya tidak ada bug di font, karena ketika saya menggunakan Fira Mono di Kate pada ukuran yang sama, jarak garis adalah apa yang saya anggap normal, dan tampaknya hampir sama dengan jarak baris Emacs dengan DejaVu Sans .

Apakah ini bug di Emacs? Apakah ada cara untuk memperbaikinya?

Terima kasih atas sarannya.

Kiri: Emacs Fira Mono Kanan: Emacs DejaVu Sans Mono Emacs Fira Mono vs. Emacs DejaVu Sans Mono

Kiri: Emacs Fira Mono Kanan: Kate Fira Mono Emacs Fira Mono vs. Kate Fira Mono

blujay
sumber
1
Anda dapat mencoba --line-spacing=PIXELSpada baris perintah dengan emacs, tetapi tebakan saya adalah bahwa itu tidak akan membantu. Bola kristal saya memberi tahu saya bahwa spasi baris tidak memasukkan piksel ekstra dan masalahnya adalah pada tampilan font Emacs. Apakah mode buffer membuat perbedaan? (Saya berasumsi bahwa Anda telah memeriksa frame-parametersuntuk melihat apa fontnya dll.)
Drew
2
Sejujurnya, bagi saya sepertinya DejaVu tidak memiliki jarak yang cukup, dan jika Anda melihat tangkapan layar terakhir dengan Fira, maka Anda bahkan dapat melihat bahwa karakter yang memiliki elemen menurun seperti g dan y dipotong. Selain itu, saya berpikir bahwa ketinggian garis minimum akan dihitung berdasarkan beberapa parameter TTF, jadi jika Anda benar-benar ingin mengubahnya, saya akan mencari untuk memodifikasi file TTF (atau itu OTF?) Untuk mengubah font metrik agar lebih sedikit yang mengarah.
wvxvw
1
Apa yang terjadi jika Anda menambahkan minspace=truedefinisi font FontConfig? Misalnya sesuatu seperti emacs -fn 'Fira Mono:minspace=true', atau apa pun nama fontnya.
jch
3
Ini bukan apa yang ingin Anda dengar, tapi saya menyerah pada spasi jarak sekitar lebih dari setahun yang lalu. Sebaliknya, saya memilih font yang saya sukai dan saya mengatur :heightdan hanya itu. Emacs tidak benar-benar memiliki kontrol jarak yang baik antar baris, dan menyesuaikannya hanya menyebabkan lebih banyak masalah. Mungkin permintaan fitur akan sesuai - misalnya, untuk mengatur jarak antar baris dalam piksel dan membuatnya bekerja dengan semua font.
lawlist
1
Ketinggian garis adalah properti font, rendering Emacs menghormati nilai yang diberikan. Jika Anda memaksakan ketinggian tertentu terlepas dari properti font, Anda mungkin berakhir dengan karakter yang dipotong, seperti pada tangkapan layar Fira Mono di Kate (seperti yang ditunjukkan oleh wvxvw). Ketika datang ke font proporsional saya menemukan bahwa Lucida Grande Mono adalah yang paling efisien dalam hal ruang sementara masih sangat mudah dibaca pada ukuran kecil (Droid Sans Mono mendekati, tetapi kurang padat).
paprika

Jawaban:

2

Fira Mono v3.2 menyesuaikan ketinggian garis font, yang membuatnya dapat digunakan oleh saya di Emacs:

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

cemerick
sumber
Terima kasih atas pembaruannya. Tampaknya sedikit lebih baik, tapi saya masih mendapatkan 4 baris lebih sedikit di Emacs dengan Fira Mono 3.2 daripada dengan DejaVu Sans Mono. Jadi, sayangnya, itu masih sia-sia. Saya tidak perlu lebih banyak ruang di antara garis; itu tidak memberi saya apa-apa. Semua yang dilakukannya adalah mengurangi seberapa banyak yang dapat saya lihat di layar dan membuat saya menggulir lebih banyak, mengurangi efisiensi dan membuang waktu saya. :( Sayang sekali Mozilla lebih mementingkan membuat font terlihat lebih lapang daripada membuatnya berguna.
blujay
... dan Anda bisa mendapatkan 4 baris lebih di layar dengan Consolas (misalnya) dibandingkan dengan DejaVu Sans Mono. Masing-masing font memiliki ketinggian intrinsik yang berbeda (dan lebar, dalam kasus varian monospace), yang tidak ada hubungannya dengan spasi baris. Mempertanyakan semacam kedengkian pada Mozilla atau Carrois (jenis pengecoran yang tampaknya menjadi desain terdepan Fira) adalah hal yang konyol.
cemerick
Siapa yang mengatakan sesuatu tentang kejahatan? Atau sejak kapan "lapang" = kejahatan? Faktanya adalah bahwa saat ini ada kecenderungan peningkatan ruang putih, pada dasarnya, semua hal yang terkait UI. Praktis setiap situs web besar yang melakukan desain ulang akhir-akhir ini sangat meningkatkan penspasian garis. Ini yang populer saat ini. Tren yang sama mengalir ke alat yang dibuat untuk membuat hal-hal ini. "Lebih banyak ruang kosong di situs web = bagus, oleh karena itu lebih banyak ruang kosong di editor = bagus." Dogmatisme ini tidak berbahaya, hanya tidak berguna. Silakan mencoba untuk memahami sebelum Anda bertahan melawan non-serangan.
blujay
1
Oh, dan FYI, ada Kode Fira dalam karya dengan jarak garis kurang. Semoga itu berhasil.
blujay
Namun, pada saat ini, tampaknya ada masalah serius di Emacs. ("Komentar hanya dapat diedit selama 5 menit." Sigh.)
blujay