Неверный размер шрифтов: различия между версиями

Материал из ALT Linux Wiki
Строка 36: Строка 36:


Вместо 500 и 300 следует вписать ширину и высоту вашего экрана, '''измеренную в миллиметрах линейкой''' (!). Возможно, потребуется туда же добавить параметр(ы)
Вместо 500 и 300 следует вписать ширину и высоту вашего экрана, '''измеренную в миллиметрах линейкой''' (!). Возможно, потребуется туда же добавить параметр(ы)
  Option "UseEdidDpi" "FALSE"
  Option "UseEdidDpi" "FALSE"
  Option "UseEdid" "FALSE"
  Option "UseEdid" "FALSE"
чтоб указать графической системе не использовать данные, предоставляемые монитором.
чтоб указать графической системе не использовать данные, предоставляемые монитором.
Для  видеодрайвера nvidia есть другой параметр - задать параметр с раззмером dpi вручную, например так
<source lang=txt>
Section "Monitor"
    Identifier            "Monitor0"
    Option                "DPI" "96 x 96"
EndSection
</source>


=== Ещё один метод ===
=== Ещё один метод ===

Версия от 05:36, 26 августа 2022

Что делать, если слишком большие/маленькие шрифты

Бывает, что после установки системы или загрузки с livecd/flash работать в графической системе невозможно, так как шрифты слишком маленькие (вплоть до "одна буква один пиксель"), или наоборот, слишком большие ("на экран влезло три буквы").

Одна из возможных причин: монитор и/или видеокарта не соответствуют стандартам и неверно сообщают системе о своих параметрах.

Как должно быть

Физический размер букв на экране (если измерять его линейкой, приложенной к экрану) не должен зависеть от типа и размера монитора, от разрешения и т.п. Он зависит только от "размера" шрифта, выставленного в настройках приложения (тот самый "десятый шрифт"). Для того, чтоб было именно так, система должна знать истинное разрешение монитора в точках на дюйм. Качественный монитор сообщает системе о своих физических размерах через интерфейс DDC. Это легко увидеть, запустив программу ddcprobe:

# ddcprobe | grep screen
screensize: 51 29

(размер в сантиметрах) На основании этих данных и текущем разрешении система (Х-сервер) вычисляет значение dpi, и обеспечивает корректное отображение шрифтов, документов, изображений и т.п. (в текстовом процессоре при отображении 100% лист начинает физически совпадать с размером листа А4, например).

Проверить текущее значение dpi и размеров экрана можно либо командой xdpyinfo

$ xdpyinfo | grep -B1 dots
  dimensions:    1920x1080 pixels (513x292 millimeters)
  resolution:    95x94 dots per inch

либо попытаться найти нужную информацию в логах X-сервера

$ cat /var/log/Xorg.0.log | grep DPI
(--) NVIDIA(0): DPI set to (95, 94); computed from "UseEdidDpi" X config

Как бывает

Если проявляются выше перечисленные симптомы, то, возможно, система имеет неверное значение dpi. От величины в пару десятков до нескольких тысяч, в то время как нормальные значения лежат в пределах 80-90 (дешевые мониторы с большой диагональю), 90-100 (нормальные мониторы), 100-150 (очень качественные мониторы на дорогих компактных ноутбуках).

Если есть возможность запустить консоль в графическом режиме, воспользуйтесь xdpyinfo чтоб точно узнать в чем проблема. Если графический сервер запущен, но открыть консоль в нем не удается, то можно перейти в текстовую консоль (Ctrl-Alt-F1) а запустить xdpyinfo там, указав, с каким дисплеем ей работать

$ DISPLAY=:0 xdpyinfo | grep -B1 dots

Что делать

Конечно, самый верный способ это поменять монитор на другой, более качественный и соответствующий всем стандартам. Если такой возможности нет, то придется вручную указать системе физические размеры экрана. Для этого создать файл в каталоге /etc/X11/conf.d файл, например /etc/X11/xorg.conf.d/razmer.conf с секцией "Monitor" и параметром DisplaySize, например так:

Section "Monitor"
    Identifier "Monitor0"
    DisplaySize 500 300
EndSection

Вместо 500 и 300 следует вписать ширину и высоту вашего экрана, измеренную в миллиметрах линейкой (!). Возможно, потребуется туда же добавить параметр(ы)


Option "UseEdidDpi" "FALSE"
Option "UseEdid" "FALSE"


чтоб указать графической системе не использовать данные, предоставляемые монитором. Для видеодрайвера nvidia есть другой параметр - задать параметр с раззмером dpi вручную, например так

Section "Monitor"
    Identifier             "Monitor0"
    Option                 "DPI" "96 x 96"
EndSection

Ещё один метод

Установите пакет xorg-96dpi


Что делать (путь Windows)

В Windows до сих пор такая проблема не встречается, потому что там по умолчанию разрешение экрана всегда равно 96 dpi. Что приводит к слишком мелким шрифтам на хороших мониторах и слишком крупным на плохих, порождает абсолютно абсурдные системные настройки типа "крупный шрифт", делает бессмысленными размеры отображения в процентах в программах типа Word, графических редакторах и т.п.

Однако, данный идиотский метод можно с успехом применить и в Линуксе, передав X-серверу параметр -dpi 96 (или любое другое число). Например, записать в /home/ваш_пользователь/.bash_profile следующую строку:

xrandr --dpi 96

Данное решение будет работать только для пользователя ваш_пользователь.