Мини-HOWTO: Настройка шрифтов TrueType Fonts в Debian |
---|
Пред. | | След. |
Дисплей (то, что вам никто не рассказывал)
Перед тем, как мы углубимся в настройку шрифтов TrueType в X, мы должны еще раз объяснить разницу между пунктами (point) и пикселями (pixel)... и почему это важно для нас.
Все выводимые на экран шрифты измеряются в пунктах. Один дюйм равен ровно
72 пунктам. Почему именно 72? Частично из-за ограничений механических
печатных машин, частично потому, что это число делится на 2, 3, 4, 6, 8, 9,
12, 18 и 24. Ну и конечно надо упомянуть, что пункт является основной
единицей измерения в PostScript.
(Историческая справка: Тут я немного приврал. До введения PostScript дюйм
равнялся 72,27 пункта, но этот размер пункта был установлен в эру
механических печатающих машин. При помощи дисплеев и лазерных принтеров,
любому шрифту легко можно придать любой размер, и число 72 значительно более
удобно по причинам, упомянутым выше).
В основном любой текст имеет размер от 7 до 12 пунктов. Все, что меньше 6, называется буквально - "точная печать". Построчные принтеры печатали шрифтами размером 9 или 12 (для того, чтобы было 8 или 6 строк на дюйм соответственно).
В противоположность этому, все видеодрайверы повсеместно измеряют шрифты в
пикселях. Для вашего видеодрайвера экран имеет размер 1024x768 пикселей, а
не 10 на 8 дюймов (или 720 на 576 пунктов).
Чтобы произвести преобразование из пунктов (в которых мы измеряем размер
шрифта) в пиксели (в которых мы измеряем видеопамять) нужно знать
разрешение экрана. Обычно оно измеряется в точках на дюйм (dots per inch
(dpi)), что на самом деле есть пиксели на дюйм. Эти единицы используются в
двух наборах растровых шрифтов, поставляемых вместе с XFree86: fonts-75
используются на недорогих дисплеях с разрешением около 75 dpi, fonts-100
используются на мониторах среднего качества с разрешением примерно 100 dpi.
К сожалению, в поставку не входят шрифты для высококачественных дисплеев с
разрешением 120 dpi и выше.
В качестве конкретного примера можно привести экран с диагональю 13 дюймов (видимая область изображения 11.1 дюйма), выводит изображение размером 640x480 пикселей с разрешением 72.0 dpi. Это Не Совпадение. На самом деле многие web-страницы (и приложения фирмы Microsoft) рассчитаны на стандартные дисплеи с разрешением именно 72 dpi. Стандартная конфигурация XFree86 предполагает наличие дисплея с разрешением 75 dpi.
Однако в настоящее время никто уже практически не пользуется разрешением 640x480. Никто больше не использует 13-дюймовые мониторы. Так как видеокарты обогнали в своем развитии мониторы, то можно нередко встретить следующую конфигурацию: 19-дюймовый монитор (диагональ изображения больше 17 дюймов), 1600x1200 пикселей, разрешение - 117 точек на дюйм.
Если я запущу стандартную конфигурацию X, то все мои шрифты будут равны примерно 2/3 нормального размера. Не будет преувеличением сказать, что все шрифты будут уменьшены на порядок - большие шрифты (12 пунктов) станут средними (9). Средние шрифты (9) станут маленькими (6).
Существует три вещи, которые надо сделать, чтобы исправить это несоответствие. Во-первых, мы должны указать X-серверу настоящее разрешение экрана:
/etc/X11/xdm/Xservers
#:0 local /usr/X11R6/bin/X -bpp 16
:0 local /usr/X11R6/bin/X -bpp 16 -dpi 120 |
Во-вторых, мы должны использовать по умолчанию сначала растровые шрифты с разрешением 100 dpi, и только после них шрифты 75 dpi.
/etc/X11/XF86Config
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
EndSection |
И еще одно. Если ни один из наших растровых шрифтов не совпадает по
разрешению с требуемым, то X-сервер попытается "растянуть" похожий шрифт
через простое копирование пикселей. Результаты такого "растягивания" всегда
оставляют желать лучшего. Предположив, что у нас достаточно
быстродействующий компьютер, мы можем указать серверу использовать по
умолчанию векторные шрифты, затем подходящие "один-к-одному" растровые
шрифты и только затем "растянутые" растровые шрифты.
/etc/X11/XF86Config
Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "/usr/X11R6/lib/X11/fonts/Type1/"
FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/X11R6/lib/X11/fonts/misc/"
FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"
FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"
EndSection |
Будущее XFree86 4.0
Мне совсем недавно сказали, что XFree86 версии 4.0 будет поддерживать DDC, если его поддерживают и видеокарта, и монитор. Это позволит X-серверу узнавать его физические размеры, и сервер сможет автоматически рассчитывать разрешение экрана.
Но вам, в любом случае, придется исправлять установки fontpath в файле XF86Config, так как сервер не может угадать требования вашей конкретной конфигурации.
Общий обзор: приготовления перед правкой файлов конфигурации X.
Каждый раз, когда мы вносим изменения в файлы конфигурации X11, неплохо
запрещать запуск XDM, указанием команды exit 0 где-нибудь в начале этого
файла. Если вы этого не сделаете, и X не запустится по каким-либо причинам,
то XDM зациклится таким образом, что перегрузит систему, и это достаточно
сложно исправить. Я вас предупредил.
Пред. | Начало | След. |
Мини-HOWTO: Настройка шрифтов TrueType Fonts в Debian | | Дисплей (X-серверы и серверы шрифтов) |