defoma - Debian Font Manager, a framework for automatic font configuration.
Fonts are used by numerous applications, but generally need to be configured separately for each application. Defoma solves this problem by calling configuration scripts to update the font configuration of applications whenever a font is installed or removed.
A Defoma-configuration script is a perl library that each application should install as application-name.defoma under /usr/share/defoma/scripts and which configures a font for that application. The following is an example of a script named foo.defoma.
@ACCEPT_CATEGORIES = qw(type1 truetype); package foo; sub type1 { my $com = shift; ... } sub truetype { my $com = shift; ... } 1;This example represents an application foo that wants to configure truetype and type1 category fonts. A function by the same name as the relevant category is called by Defoma with a command as the first argument, and then additional arguments depending on the command. The following is a list of commands.
* register * unregister * do-install-real do-install-alias do-install-subst * do-remove-real do-remove-alias do-remove-subst * init * term * purge
do-install-* and do-remove-* commands are only called from Id cache. init and term are called at the start and end (respectively) of the entire process.
Id cache is another feature of Defoma. A common problem during automatic configuration is name space conflicts. Usually applications access fonts through logical font names (like XLFDs and PostScript font names) rather than the fonts themselves (as font filenames). Logical font names, called identifiers in Defoma, can easily conflict especially when font aliases are permitted. Through the Id cache mechanism, only one font is actually installed for each identifier even if it is provided by several fonts.
Id Substitution is an additional feature of Id cache. It selects a font to provide an id specified by a rulefile. The rulefile describes rules giving required ids and their hints. A rule is used to have more similar-looking fonts with the same characters substitute for a required id. This feature can also be used for the purpose of grouping fonts into different categories.
A category represents a type of font. Generally fonts that belong to the same category are configured the same way.
Hints represent essential font information and typeface information about the font. They consist of some HintTypes and their values. They can be specified from the command line options of defoma-font, or through a hintfile.
Hintfile
describes one or more fonts and their hints in a single file. It is
supposed to be put under
/etc/defoma/hints
as a conffile, so that users can modify the hints.
Below is an example hintfile.
defoma-hints
is a tool to help generating hints as well as the hintfile, so you do
not have to create one from scratch.
category type1 begin /usr/share/fonts/type1/foo.pfa FontName = Helvetica Charset = ISO8859-1 Family = Helvetica Weight = Medium Shape = Upright NoSerif GeneralFamily = SansSerif X-FontName = -urw-helvetica-medium-r-noraml--0-0-0-0-p-iso8859-1 end begin /usr/share/fonts/type1/foob.pfa FontName = Helvetica-Bold Charset = ISO8859-1 Family = Helvetica Weight = Bold Shape = Upright NoSerif GeneralFamily = SansSerif X-FontName = -urw-helvetica-bold-r-noraml--0-0-0-0-p-iso8859-1 end
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |