Глаза и Linux (шрифты и dpi)

X-сервер может узнавать (и обычно узнаёт) физические размеры монитора от самого монитора.
В xorg.conf эти самые размеры можно также задать принудительно в секции “Monitor”, параметром DisplaySize xxx yyy
DPI автоматически вычисляется отдельно для каждого разрешения экрана, исходя из его физического размера, если параметр dpi не задан явно.

В приведённых выше примерах при вашем разрешении указанные размеры экрана везде отличаются от ваших “371x232”, потому и dpi другой.
DPI = количество_точек / размер_экрана
размер_экрана = количество_точек / DPI
Принудительное задание dpi приводит к тому, что программы отрисовки шрифтов вычисляют размер вашего экрана исходя из dpi и разрешения, и считают его тем больше, чем меньше вы задали dpi. В случае, если dpi вашего монитора действительно равен 115, его виртуальное снижение до 96 сделает все шрифты мельче (раз экран “стал больше”, надо уменьшить шрифты, чтобы сохранить их размеры!). К примеру, текст на веб-странице, который должен вывестись шрифтом в 12pt, у вас будет выводиться как 10pt.

Поэтому в грамотных статьях по настройке шрифтов обычно НЕ рекомендуется принудительно задавать dpi. Вместо этого советуют проследить, чтобы он НИГДЕ НЕ БЫЛ указан явно, а X-сервер знал РЕАЛЬНЫЕ физические размеры вашего экрана, тогда он сам сможет вычислить действительный dpi, а программный размер шрифтов будет соответствовать экранному.
bobart, Natrio - спасибо!
В общем решил посмотреть что будет. Поднял дпи до 115, а общесистемный шрифт понизил до 8, визуально, на первый взгляд, ничего не изменилось, посижу немного, погляжу, может и замечу разницу.
Но, остался открытым вопрос с виртуальной убунтой. Выходит что экран в ВБ расчитывается по своим каким то правилам, т.е. размер экрана берется не из настроек физических размеров, а псевдорасчета размера экрана, возможного при таком разрешении?
Поэтому в грамотных статьях по настройке шрифтов обычно НЕ рекомендуется принудительно задавать dpi. Вместо этого советуют проследить, чтобы он НИГДЕ НЕ БЫЛ указан явно, а X-сервер знал РЕАЛЬНЫЕ физические размеры вашего экрана, тогда он сам сможет вычислить действительный dpi, а программный размер шрифтов будет соответствовать экранному.
А что грамотные статьи по настройке … рекомендуют делать, если физический размер моего экрана X-сервер определяет неправильно?
DPI - да, при предоставлении системе самой решать вопрос, получаю “честные” 89x88 dots per inch и размер дисплея 1680x1050 pixels (476x303 millimeters) Но я знаю, что взаправдашний размер моего дисплея равен 473.65мм х 296.03мм. И считал,
echo 'scale=5;sqrt(1680^2+1050^2)' | bc
1981.13603
echo 'scale=5;(22/1981)*1680*25.4' | bc
473.65920
echo 'scale=5;(22/1981)*1050*25.4' | bc
296.03700
и даже рулеткой мерил. При этом, bc -lq выдаёт следующее:
~$ bc -lq
define dpi (w,h,d) {                
scale=2                                      
return sqrt((w^2+h^2)/d^2) }   
dpi(1680,1050,22)                    
90.05
В итоге, чтобы X-сервер выдал мне “нечестные” 90x90 dots per inch (хотя-бы так), приходится указывать этому серверу настоящий размер в xorg.conf:
Section "Monitor" 
    DisplaySize     473.7  296.0
...
Section "Device"
    Option         "UseEDIDDpi" "False"
Ладно, самой системе, вроде и пофиг. Увеличиваем размер шрифта с 9 (что нормально воспринимается при 96х96 dots per inch) до 10 - и на этих нативных 90x90 dots per inch получаем аналогичную картинку в приложениях. Но в браузере начинается какой-то бардак. В Опере. Увеличение размера шрифтов в опере, чтобы привести их в соответствие с системными даёт неожиданные результаты: здесь нормально, там поплыли, а где-то там вообще непонятно что. (Сравнивал с FF - он в этом отношении адекватнее)
Так вот, только при обмане X-сервера принудительным exec /usr/bin/X -dpi 96 -nolisten tcp (и Xft.dpi: 96 в /etc/X11/Xresources, на всякий случай), я получаю в системе и в обоих браузерах “совместимую” и “правильную” картинку. Сбросить настройки шрифтов в опере вообще в дефолт? Использовать правильный браузер? Как правильно? Вероятно, надо было покупать правильный монитор.
Шрифт Liberation Sans.
 
Зарегистрироваться или войдите чтобы оставить сообщение.