defoma
defoma(a)                                               defoma(a)



NAME
       defoma - Debian Font Manager, provides automatic font con-
       figuration 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  auto-
       matic  font configuration framework. Please refer the man-
       page 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 appli-
       cation, especially for higher level ones like word proces-
       sor 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  con-
       figure  truetype  and  type1 category fonts. Each function
       whose name is the same as a category is called  with  com-
       mand 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  regis-
       tration  and unregistration starts/finishes, respectively.

       Id cache is another feature of Defoma. The possible  prob-
       lem  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  identi-
       fier.

       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 corre-
       spondence of fonts in different categories.

       Category represents a type of fonts. Generally  configura-
       tion  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(t).  defoma-app(p).  defoma-subst(t).  defoma-
       hints(s).   defoma-psfont-installer(r).   defoma-reconfig-
       ure(e).    Defoma::Font(t).    Defoma::Id(d).    Defo-
       ma::Subst(t).                       Defoma::Common(n).
       /usr/share/doc/defoma-doc/developers.html/index.html
       /usr/share/doc/defoma-doc/defoma-script.html/index.html



                          March  4, 2001                defoma(a)