NAME
defoma - Debian Font Manager, a framework for automatic font configuration.
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 a framework for
automatic font configuration. This manpage introduces general Defoma
concepts, please refer the manpage of defoma-font, defoma-app, or
defoma-subst for the detailed information of each command.
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
R 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
R do-install-* and do-remove-*
commands are only called from
Id cache.
R 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
R 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
R 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
SEE ALSO