man defoma (Commandes) - Debian Font Manager, provides automatic font configuration framework.
NAME
defoma - Debian Font Manager, provides automatic font configuration framework.
SYNOPSIS
defoma-font
[options]
command args..
defoma-app
[options]
command args..
defoma-subst
[options]
command args..
DESCRIPTION
Defoma stands for Debian Font Manager. It provides automatic font configuration framework. Please refer the manpage of defoma-font, defoma-app, or defoma-subst for the detailed information of each command. This page describes the introduction of Defoma.
Generally fonts are used by various applications, but there's no way to configure them properly for each application, especially for higher level ones like word processor and illustrator. Defoma is a solution to this problem. It calls configuration scripts installed by applications whenever a font is installed/removed to update the font configuration of applications.
Defoma-configuration script is a perl library that each application should install as application-name.defoma under /usr/share/defoma/scripts and which configures about a font for the application. Following is the example of the 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 wants to configure truetype and type1 category fonts. Each function whose name is the same as a category is called with command and additional arguments from Defoma. 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 called from Id cache so they are never passed unless the script makes use of it. init and term are called before/after the registration and unregistration starts/finishes, respectively.
Id cache is another feature of Defoma. The possible problem of automatic configuration is name space confliction. Usually applications access fonts through their logical font names (like XLFDs and PostScript font names) rather than the fonts themselves (like font files). Logical font names, called identifier in Defoma, can easily confclict especially if aliases are permitted. Through Id cache mechanism, only one font is actually installed for each identifier even if several fonts provide the same identifier.
Id Substitution is additional feature to Id cache. It makes a certain font provide a certain id specified in a rulefile. Rulefile describes need-to-be-substituted (in other words, required) ids and their hints, called rule. The 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 to make correspondence of fonts in different categories.
Category represents a type of fonts. Generally configuration for fonts that belong to the same category goes the same way, so it benefits the application's configuration script.
Hints represent essential font information and typeface information of the font. They consist of some HintTypes and their values. They can be specified from 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.
Following is the example of hintfile.
defoma-hints
is a tool to help generating hints as well as 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
SEE ALSO
defoma-font(1).
defoma-app(1).
defoma-subst(1).
defoma-hints(1).
defoma-psfont-installer(1).
defoma-reconfigure(1).
Defoma::Font(3pm).
Defoma::Id(3pm).
Defoma::Subst(3pm).
Defoma::Common(3pm).
/usr/share/doc/defoma-doc/developers.html/index.html
/usr/share/doc/defoma-doc/defoma-script.html/index.html