Надмірний інтервал між рядками з певними шрифтами


13

Тривалий час я використовував DejaVu Sans Mono як свій шрифт програмування. Я ще не знайшов кращого шрифту.

Але трохи пізніше я виявив Фіру Мозілла , яка за кодом виглядає дуже приємно . Тому я вирішив спробувати його в Emacs.

На жаль, коли я використовую його в Emacs, міжрядковий інтервал підірветься і зменшує кількість рядків, які я бачу, приблизно на 10.

Я спробував (setq line-spacing 0)і різні комбінації таких речей (set-frame-font (font-spec :name "Fira Mono" :width 'normal :height 100)), але що б я не робив, надмірний інтервал між рядками залишається. (На line-spacingжаль, неможливо використовувати негативні значення в Emacs, на жаль, що може здатися очевидним рішенням.)

Це, здається, не є помилкою у шрифті, тому що, коли я використовую Fira Mono в Kate однакового розміру, міжрядковий інтервал - це те, що я вважаю нормальним, і, мабуть, приблизно таким же, як інтервал між Emacs і DejaVu Sans .

Це помилка в Emacs? Чи можна це виправити?

Дякую за будь-яку пораду.

Зліва: Emacs Fira Mono Праворуч: Emacs DejaVu Sans Mono Emacs Fira Mono проти Emacs DejaVu Sans Mono

Зліва: Emacs Fira Mono Праворуч: Кейт Фіра Моно Емач Фіра Моно проти Кейт Фіра Моно


1
Ви можете спробувати --line-spacing=PIXELSв командному рядку emacs, але я гадаю, що це не допоможе. Мій кришталевий куля говорить мені, що міжрядковий інтервал не вставляє зайвих пікселів і проблема полягає у відображенні шрифту Emacs. Чи має значення буферний режим? (Я припускаю, що ви перевірили, frame-parametersщо таке шрифт і т. Д.)
Дрю

2
Якщо чесно, мені здається, що DejaVu не має достатнього інтервалу, і якщо ви подивитесь на останній знімок екрана з Фірою, то ви навіть можете побачити, що символи, у яких є елементи, що спадають, такі як g і y, обрізаються. Крім цього, я думаю, що мінімальна висота рядка буде обчислена на основі якогось параметра TTF, тож якщо ви дійсно хочете це змінити, я б розглядав можливість змінити файл TTF (чи це OTF?) Для зміни шрифту показник, щоб дозволити менш ведучим
wvxvw

1
Що станеться, якщо ви додасте minspace=trueдо визначення шрифту FontConfig? Наприклад, щось на кшталт emacs -fn 'Fira Mono:minspace=true'або як би не було назви шрифту.
jch

3
Це не те, що ти хочеш почути, але я відмовився від міжряддя приблизно трохи більше року тому. Натомість я вибираю шрифт, який мені подобається, і встановлюю :heightі все. Emacs насправді не має хорошого контролю відстані між лініями, і його регулювання просто спричиняє більше проблем. Можливо, запит на функцію буде доречним - наприклад, встановити відстань між рядками в пікселях і працювати з усіма шрифтами.
законник

1
Висота рядка є властивістю шрифту, відображення Emacs поважає задане значення. Якщо ви примусите певну висоту незалежно від властивості шрифту, у вас можуть виникнути обрізані символи, як на екрані екрана Фіри Моно у Kate (як уже вказано wvxvw). Що стосується пропорційних шрифтів, я вважаю, що Lucida Grande Mono є найбільш ефективною в плані простору, хоча вона ще дуже читається при невеликих розмірах (Droid Sans Mono наближається, але він менш щільний).
паприка

Відповіді:


2

Fira Mono v3.2 відрегулював висоту шрифту, що зробило його корисним для мене в Emacs:

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


Дякуємо за оновлення. Це здається трохи кращим, але я все одно отримую на 4 менше рядків у Emacs з Fira Mono 3.2, ніж з DejaVu Sans Mono. Тож, на жаль, все ще марно. Мені не потрібно більше місця між рядками; це нічого не отримує від мене. Все, що ми робимо, це зменшити кількість мого бачення на екрані і змусити мене прокручувати більше, знижуючи ефективність і витрачаючи час. :( Шкода, що Mozilla більше переймається тим, що шрифт виглядає повітряним, ніж зробити його корисним.
blujay

… І ви можете отримати ще 4 рядки на екрані за допомогою консолей (наприклад) порівняно з DejaVu Sans Mono. Окремі шрифти мають різну внутрішню висоту (і ширину, у випадку варіантів монопростіру), що не має нічого спільного з міжрядковим інтервалом. Натякнути якусь злобу на Мозілу чи Карруа (тип ливарного виробництва, який, здається, є провідним дизайном Фіри), просто безглуздо.
cemerick

Хто щось сказав про злобу? Або з тих пір, коли "повітряно" = злоба? Справа в тому, що в даний час існує тенденція до збільшення пробілів в основному в усіх інтерфейсах, пов'язаних з інтерфейсом користувача. Практично кожен великий веб-сайт, який переробляє останнім часом, значно збільшує міжряддя. Це те, що в даний час популярне. Ці ж тренди переливаються в інструменти, створені для виготовлення цих речей. "Більше пробілів на веб-сайті = добре, тому більше пробілів у редакторі = добре". Цей догматизм не є шкідливим, він просто марний. Будь ласка, спробуйте зрозуміти, перш ніж захищатись від не нападів.
blujay

1
О, і FYI, у творах є Fira Code з меншим інтервалом між рядками. Сподіваюсь, він пролягає.
blujay

Наразі, однак, це здається, що в Emacs є серйозна проблема . ("Коментарі можна редагувати лише протягом 5 хвилин."
Зітхнення
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.