LINUX.ORG.RU

Emacs - внезапно пожирнело начертание шрифта

 ,


0

2

Открыл Emacs и обнаружил, что начертание шрифта внезапно стало более жирным, чем должно быть.

(set-face-attribute 'default nil
                    :family "IBM Plex Mono"
                    :height 130
                    :weight 'normal
                    :width 'normal)

При :weight 'light начертание меняется на тонкое, но при 'normal снова возвращается на жирное.

С чем может быть связано: недавно переместил шрифты из ~/.fonts/ в /usr/local/share/fonts/ и запустил sudo fc-cache -fv.

В чем можнет быть причина неправильного начертания?

★★★★★

Поменялся dpi/стиль хинтинга. Не для емакса, а вообще для всего.
Мелкие изменения как правило вылазят только в отдельных программах.

aidaho ★★★★★
()
Ответ на: комментарий от aidaho

Поменялся dpi/стиль хинтинга.

Ничего не менялось (по крайней мере по моей инициативе).

aquadon ★★★★★
() автор топика

После какого-то обновления что-то поменялось в отрисовке системой.
У меня такое случилось месяц назад в Konsole, пришлось сменить шрифт.

athost ★★★★★
()

По моему опыту нецелые значения хинтинга (hinting-slight, hinting-medium) каждое приложение и тулкит понимает по разному, включая fontconfig. Усугубляется это тем, что от версии к версии тоже может поменяться. Так что для предсказуемости или полный хинтинг, или отключи и радуйся мыльной радуге, или купи уже hidpi монитор и страдай с неподерживающими hidpi приложениями.

anonymous
()
Ответ на: комментарий от anonymous

По моему опыту нецелые значения хинтинга (hinting-slight, hinting-medium) каждое приложение и тулкит понимает по разному, включая fontconfig.

Пробовал разные настройки хинтинга, в том числе полное выключение. Разница в Emacs видна, но начертание остается полу-жирным.

или купи уже hidpi монитор

DPI 166. Во всех остальных приложениях все отлично со шрифтами. Да и в Emacs до недавнего времени все хорошо было.

aquadon ★★★★★
() автор топика
Ответ на: комментарий от e1nste1n

Полужирное. При переключении между `:weight 'medium` и `:weight 'normal` нет разницы, хотя должна быть и была раньше.

aquadon ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Если подскажешь как ее запустить в Debian. Установлены пакеты emacs (версия 26) и emacs25. Но как запустить emacs25 я что-то не соображу.

aquadon ★★★★★
() автор топика
Ответ на: комментарий от athost

Сдругими гарнитурами аналогино - medium вместо normal. Думаю, что связано это с перестроением fc-cache.

aquadon ★★★★★
() автор топика
Ответ на: комментарий от aquadon

Разница в Emacs видна, но начертание остается полу-жирным.

Не emacs'ер. Еще одна догадка. Светлый цвет автоматически устанавливает жирный шрифт.
Разные реализации терминалов, по разному понимают цвета с 8 по 15 (светлые цвета) для первых 16-и цветов палитры. Некоторые позволяют управлять этим поведением. Еще можно принудительно указать жирность для стиля текста.

anonymous
()
M-x describe-font IBM Plex Mono


name (opened by): -IBM -IBM Plex Mono-normal-normal-normal-*-27-*-*-*-m-0-iso10646-1
       full name: IBM Plex Mono:pixelsize=27:foundry=IBM :weight=normal:slant=normal:width=normal:spacing=100:scalable=true
       file name: /usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_Medium.otf
            size: 27
          height: 36
 baseline-offset:  0
relative-compose:  0
  default-ascent:  0
          ascent: 28
         descent:  8
   average-width: 16
     space-width: 16
       max-width: 16

Прошу обратить внимание на IBMPlexMono_Medium.otf. Собственно, почему так?

aquadon ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Я запускаю в графическом режиме. Проблема локализирована (см. выше), но еще не понятно как исправить.

aquadon ★★★★★
() автор топика
Ответ на: комментарий от anonymous
fc-match "IBM Plex Mono"
IBMPlexMono_Regular.otf: "IBM Plex Mono" "Regular"

нейм, фулнейм или только важные части.

Это как?

aquadon ★★★★★
() автор топика
Ответ на: комментарий от aquadon
$ fc-match 'IBM Plex Mono:pixelsize=27:foundry=IBM :weight=normal:slant=normal:width=normal:spacing=100:scalable=true'

Я не эксперт в fontconfig

:slant=normal

Это разве не курсив/italic?

anonymous
()
Ответ на: комментарий от anonymous
fc-list 'IBM Plex Mono'
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_LightItalic.otf: IBM Plex Mono,IBM Plex Mono Light:style=Light Italic,Italic
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_Bold.otf: IBM Plex Mono:style=Bold
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_ExtraLightItalic.otf: IBM Plex Mono,IBM Plex Mono ExtraLight:style=ExtraLight Italic,Italic
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_SemiBold.otf: IBM Plex Mono,IBM Plex Mono SemiBold:style=SemiBold,Regular
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_Light.otf: IBM Plex Mono,IBM Plex Mono Light:style=Light,Regular
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_BoldItalic.otf: IBM Plex Mono:style=Bold Italic
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_SemiBoldItalic.otf: IBM Plex Mono,IBM Plex Mono SemiBold:style=SemiBold Italic,Italic
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_ThinItalic.otf: IBM Plex Mono,IBM Plex Mono Thin:style=Thin Italic,Italic
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_ExtraLight.otf: IBM Plex Mono,IBM Plex Mono ExtraLight:style=ExtraLight,Regular
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_Medium.otf: IBM Plex Mono,IBM Plex Mono Medium:style=Medium,Regular
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_Regular.otf: IBM Plex Mono:style=Regular
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_MediumItalic.otf: IBM Plex Mono,IBM Plex Mono Medium:style=Medium Italic,Italic
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_Italic.otf: IBM Plex Mono:style=Italic
/usr/share/fonts/opentype/IBM-Plex/IBMPlexMono_Thin.otf: IBM Plex Mono,IBM Plex Mono Thin:style=Thin,Regular
aquadon ★★★★★
() автор топика
Ответ на: комментарий от e1nste1n

Да, я это видел. Как решить проблему - непонятно. Еще более непонятно, почему это внезапно случилось.

aquadon ★★★★★
() автор топика
Ответ на: комментарий от aquadon

Шрифты все видит. Но мне не нравится :slant=normal. Вроде, это курсив. Думаю это сбивает фонтконфиг при выборе шрифта.

fc-match 'IBM Plex Mono:slant=normal'

anonymous
()
Ответ на: комментарий от aquadon

В общем, для фонтконфига ':slant=<...>' не должно быть вообще, или ':slant=0'. Насколько я знаю.

name (opened by): -IBM -IBM Plex Mono-normal-normal-normal-*-27-*-*-*-m-0-iso10646-1

Тут один из 'normal' должен быть '0', который отвечает за наклон. (Не эксперт, ищи сам в манах фонтконфига) Где-то в конфиге имакса указан неправильный шрифт по дефолту.

anonymous
()
Ответ на: комментарий от anonymous

Магия…

Перенос файлов шрифта из /usr/share/fonts/ в /usr/local/share/fonts/ исправил ситуацию.

Тему пока не помечаю как решенную, поскольку поведение весьма неоднозначное и похоже на баг. Может у кого-то есть мысли по этому поводу.

aquadon ★★★★★
() автор топика
Ответ на: комментарий от Yorween

Это Buster. Обновление на всех машинах прошло гладко за исключением того, что пришлось редактировать /etc/default/tlp на машинах с процессорами Skylake и новее.

Заметные лаги на ядре 4.19 по сравнению с 4.9

Проблема, описанная в данном топике, не связана с обновлением до Buster.

aquadon ★★★★★
() автор топика
Последнее исправление: aquadon (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.