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

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 8 промежуточных версий 2 участников)
Строка 1: Строка 1:
== Что делать, если слишком большие/маленькие шрифты ==
== Что делать, если слишком большие/маленькие шрифты (размер картинок) ==
Бывает, что после установки системы или загрузки с livecd/flash работать в графической системе невозможно, так как шрифты слишком маленькие (вплоть до "одна буква один пиксель"), или наоборот, слишком большие ("на экран влезло три буквы").
Бывает, что после установки системы или загрузки с livecd/flash работать в графической системе невозможно, так как шрифты слишком маленькие (вплоть до "одна буква один пиксель"), или наоборот, слишком большие ("на экран влезло три буквы").


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


=== Как должно быть ===  
== Как должно быть ==
Физический размер букв на экране (если измерять его линейкой, приложенной к экрану) не должен зависеть от типа и размера монитора, от разрешения и т.п. Он зависит только от "размера" шрифта, выставленного в настройках приложения (тот самый "десятый шрифт"). Для того, чтоб было именно так, система должна знать истинное разрешение монитора в точках на дюйм. Качественный монитор сообщает системе о своих физических размерах через интерфейс [[ruwp:Display_Data_Channel|DDC]]. Это легко увидеть, запустив программу {{cmd|ddcprobe}}:
Физический размер букв на экране (если измерять его линейкой, приложенной к экрану) не должен зависеть от типа и размера монитора, от разрешения и т.п. Он зависит только от "размера" шрифта, выставленного в настройках приложения (тот самый "десятый шрифт"). Для того, чтоб было именно так, система должна знать истинное разрешение монитора в точках на дюйм. Качественный монитор сообщает системе о своих физических размерах через интерфейс [[ruwp:Display_Data_Channel|DDC]]. Это легко увидеть, запустив программу {{cmd|ddcprobe}} (размер в сантиметрах):
# ddcprobe | grep screen
<syntaxhighlight lang="bash"># ddcprobe | grep screen
screensize: 51 29
screensize: 51 29
(размер в сантиметрах)
</syntaxhighlight>
На основании этих данных и текущем разрешении система (Х-сервер) вычисляет значение dpi, и обеспечивает корректное отображение шрифтов, документов, изображений и т.п. (в текстовом процессоре при отображении 100% лист начинает '''физически''' совпадать с размером листа А4, например).
На основании этих данных и текущем разрешении система (Х-сервер) вычисляет значение dpi, и обеспечивает корректное отображение шрифтов, документов, изображений и т.п. (в текстовом процессоре при отображении 100% лист начинает '''физически''' совпадать с размером листа А4, например).


Проверить текущее значение dpi и размеров экрана можно либо командой {{cmd|xdpyinfo}}
Проверить текущее значение dpi и размеров экрана можно либо командой {{cmd|xdpyinfo}}:
$ xdpyinfo | grep -B1 dots
<syntaxhighlight lang="bash">$ xdpyinfo | grep -B1 dots
  dimensions:    1920x1080 pixels (513x292 millimeters)
dimensions:    1920x1080 pixels (513x292 millimeters)
  resolution:    95x94 dots per inch
resolution:    95x94 dots per inch
либо попытаться найти нужную информацию в логах X-сервера
</syntaxhighlight>
$ cat /var/log/Xorg.0.log | grep DPI
либо попытаться найти нужную информацию в логах X-сервера:
(--) NVIDIA(0): DPI set to (95, 94); computed from "UseEdidDpi" X config
<syntaxhighlight lang="bash">$ cat /var/log/Xorg.0.log | grep DPI
(--) NVIDIA(0): DPI set to (95, 94); computed from "UseEdidDpi" X config
</syntaxhighlight>
== Как бывает ==
Если проявляются вышеперечисленные симптомы, то, возможно, система имеет неверное значение dpi. От величины в пару десятков до нескольких тысяч, в то время как нормальные значения лежат в пределах 80-90 (дешевые мониторы с большой диагональю), 90-100 (нормальные мониторы), 100-150 (очень качественные мониторы на дорогих компактных ноутбуках).


=== Как бывает ===
Если есть возможность запустить консоль в графическом режиме, воспользуйтесь {{cmd|xdpyinfo}} чтоб точно узнать в чем проблема. Если графический сервер запущен, но открыть консоль в нем не удается, то можно перейти в текстовую консоль (Ctrl-Alt-F1) и запустить {{cmd|xdpyinfo}} там, указав, с каким дисплеем ей работать:
Если проявляются выше перечисленные симптомы, то, возможно, система имеет неверное значение dpi. От величины в пару десятков до нескольких тысяч, в то время как нормальные значения лежат в пределах 80-90 (дешевые мониторы с большой диагональю), 90-100 (нормальные мониторы), 100-150 (очень качественные мониторы на дорогих компактных ноутбуках).
<syntaxhighlight lang="bash">$ DISPLAY=:0 xdpyinfo | grep -B1 dots</syntaxhighlight>


Если есть возможность запустить консоль в графическом режиме, воспользуйтесь {{cmd|xdpyinfo}} чтоб точно узнать в чем проблема. Если графический сервер запущен, но открыть консоль в нем не удается, то можно перейти в текстовую консоль (Ctrl-Alt-F1) а запустить {{cmd|xdpyinfo}} там, указав, с каким дисплеем ей работать
== Что делать ==
$ DISPLAY=:0 xdpyinfo | grep -B1 dots
Конечно, самый верный способ это поменять монитор на другой, более качественный и соответствующий всем стандартам. Если такой возможности нет, то придется вручную указать системе физические размеры экрана. Для этого создать файл в каталоге {{path|/etc/X11/conf.d}} файл, например {{path|/etc/X11/xorg.conf.d/razmer.conf}} с секцией "Monitor" и параметром {{term|DisplaySize}}, например так:


=== Что делать ===
<syntaxhighlight lang="ini">
Конечно, самый верный способ это поменять монитор на другой, более качественный и соответствующий всем стандартам. Если такой возможности нет, то придется вручную указать системе физические размеры экрана. Для этого создать файл в каталоге /etc/X11/conf.d файл, например {{path|/etc/X11/xorg.conf.d/razmer.conf}} с секцией "Monitor" и  параметром {{term|DisplaySize}}, например так:
 
<source lang=txt>
Section "Monitor"
Section "Monitor"
     Identifier "Monitor0"
     Identifier "Monitor0"
     DisplaySize 500 300
     DisplaySize 500 300
EndSection
EndSection
</source>
</syntaxhighlight>
 
Вместо 500 и 300 следует вписать ширину и высоту вашего экрана, '''измеренную в миллиметрах линейкой''' (!). Возможно, потребуется туда же добавить параметр(ы)
 


Option "UseEdidDpi" "FALSE"
Вместо 500 и 300 следует вписать ширину и высоту вашего экрана, '''измеренную в миллиметрах линейкой''' (!). Возможно, потребуется туда же добавить параметр(ы):
Option "UseEdid" "FALSE"
<syntaxhighlight lang="ini">
Option "UseEdidDpi" "FALSE"
Option "UseEdid" "FALSE"
</syntaxhighlight>


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


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


<source lang=txt>
<syntaxhighlight lang="ini">
Section "Monitor"
Section "Monitor"
     Identifier            "Monitor0"
     Identifier            "Monitor0"
     Option                "DPI" "96 x 96"
     Option                "DPI" "96 x 96"
EndSection
EndSection
</source>
</syntaxhighlight>
 
== Задание EDID монитора ==


=== Ещё один метод ===
[[EDID | Подмена EDID монитора]]


Установите пакет {{pkg|xorg-96dpi}}
== Ещё один метод ==


Установите пакет {{pkg|xorg-96dpi}}.


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


Строка 63: Строка 67:
Например, записать в {{path|/home/ваш_пользователь/.bash_profile}} следующую строку:
Например, записать в {{path|/home/ваш_пользователь/.bash_profile}} следующую строку:


<code>xrandr --dpi 96 </code>
xrandr --dpi 96


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


== Ссылки ==
[[EDID | Подмена EDID монитора]]
[[Категория:HOWTO]][[Категория:Hardware]]
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}
[[Категория:Видеокарты]]

Текущая версия от 17:38, 5 апреля 2024

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

Бывает, что после установки системы или загрузки с 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

Задание EDID монитора

Подмена EDID монитора

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

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

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

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

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

xrandr --dpi 96

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

Ссылки

Подмена EDID монитора