По каким путям Display Postscript отыскивает шрифты и другие ресурсы

Базовый путь встроен в библиотеку расширения X-сервера /usr/openwin/server/lib/libserverdps.so:

$ strings libserverdps.so | grep "/usr" | sort -u
/usr/openwin/lib/X11

При загрузке X-сервера проверяются файлы .upr, расположенные в этом каталоге, которые в свою очередь могут содержать ссылки на каталоги, содержащие ресурсы или другие файлы .upr.

Так, для каталога /usr/openwin/lib/X11 файлы ресурсов просматриваются в порядке их размещения на диске:

$ ls -i1 *.upr | sort -n
    228504 DPS.upr
    228505 DPS13Fonts.upr
    228506 DPSF3Bitmaps.upr
    228507 DPSF3Fonts.upr
    228514 initF3.upr
    228620 DPSType3Fonts.upr

Отметим, что не обязательно располагать ресурсы в том-же каталоге, что и описывающие их файлы .upr. Так, например, файл ресурсов, определяющий шрифты дисплейного постскрипта /usr/openwin/lib/X11/DPS13Fonts.upr содержит предложение

//usr/openwin/lib/X11/fonts/Type1

которое и задаёт базовый путь, применяемый системой для поиска файлов шрифтов Adobe Type 1, описанных в DPS13Fonts.upr. В этом случае, внутри .upr файла, можно использовать относительные пути к ресурсам.

Выявленные при загрузке ресурсы, помещаются в виртуальную память VM интерпретатора Display PostScript. И уже в завершении процедуры первоначального поиска, файлы .upr разыскиваются в директориях, добавленных командой xset +fp.

Таким образом, для локализации iso8859-5, и установленных путях поиска шрифтов (xset -q):

/usr/openwin/lib/locale/iso_8859_5/X11/fonts/75dpi/
/usr/openwin/lib/locale/iso_8859_5/X11/fonts/Type1/
/usr/openwin/lib/locale/iso_8859_5/X11/fonts/TrueType/
/usr/openwin/lib/X11/fonts/F3/
/usr/openwin/lib/X11/fonts/F3bitmaps/
/usr/openwin/lib/X11/fonts/Type1/
/usr/openwin/lib/X11/fonts/Speedo/
/usr/openwin/lib/X11/fonts/misc/
/usr/openwin/lib/X11/fonts/75dpi/
/usr/openwin/lib/X11/fonts/100dpi/

первоначальный порядок поиска шрифтов будет следующим:

/usr/openwin/lib/X11/fonts/Type1
/usr/openwin/lib/X11/fonts/F3bitmaps
/usr/openwin/lib/X11/fonts/F3
/usr/openwin/lib/X11/fonts/Type3
/usr/openwin/lib/locale/iso_8859_5/X11/fonts/Type1
/usr/openwin/lib/locale/iso_8859_5/X11/fonts/TrueType

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


Copyright © 2002, Vitaly Filatov, Moscow, Russia
Webmaster