Loading

NOM

       Defoma::Id - module Defoma pour la gestion des bases de référence.

SYNOPSIS

       use Defoma::Id;

       $Id = defoma_id_open_cache( suffixe, nom_paquet );

       defoma_id_close_cache( id_objet );

       defoma_id_register( id_objet,
       type => type,
       font => police,
       id => identifiant,
       priority => priorité,
       category => catégorie,
       origin => origine,
       depend => dépendance,
       hints => indications );

       defoma_id_unregister( id_objet,
       type => type,
       font => police,
       id => identifiant );

       @index = defoma_id_grep_cache( id_objet, type-recherché,
       id => identifiant,
       font => police,
       type => type,
       category => catégorie,
       depid => depid,
       depfont => depfont );

       @hints = defoma_id_get_hints( id_objet, index );

       defoma_id_set( id_objet, identifiant, police, flag );

       defoma_id_unset( id_objet, identifiant, police );




DESCRIPTION

       Defoma::Id  est  un  module  Defoma pour la gestion des identifiants de
       police et des bases de référence.  Il  fournit  les  fonctions  listées
       ci-dessous,  qui  sont  supposées  être  appelées  par  les  scripts de
       configuration Defoma.

       Une base de référence est une sorte de base de données dont le but  est
       d’éviter  les  conflits  de noms. Les applications accèdent souvent aux
       polices avec leurs propres identifiants, il est donc  préférable  qu’un
       identifiant   pointe  vers  une  seule  police.  C’est  une  contrainte
       importante  pour  une  configuration  automatique,  parce  qu’il   peut
       facilement arriver que plusieurs polices aient le même identifiant. Les
       scripts de configuration  automatique  peuvent  difficilement  détecter
       quelle  est la meilleure police pour porter le nom d’un identifiant, ou
       même pour savoir si cette situation se produit. Defoma::Id est une aide
       pour résoudre ce type de problème.

       Voici comment Defoma::Id fonctionne dans les grandes lignes :
       1.  Ouverture d’une base de référence avec la commande init d’un script
       de configuration Defoma.
       2. Enregistrement  de(s)  l’identifiant(s)  pour  une  police  avec  la
       commande register du script.
       3.  Recherche dans la base de référence par Defoma::Id pour vérifier si
       une autre police fournit le même identifiant, et rappel du script  afin
       de  faire  le  choix  le  plus  approprié  de  la  police  qui fournira
       l’identifiant, à l’aide des commandes do-install- et do-remove-.

TYPE D’IDENTIFIANTS
       Il  peut  gérer  trois  types  d’identifiants :  RealName,   Alias   et
       Substituted.

       RealName  est  le  nom  réel d’une police et est généralement pris dans
       l’indication FontName. Si vous voulez enregistrer une police à une base
       de  références,  au moins un nom réel doit être enregistré. Vous pouvez
       fournir  les  indications  aux  options  lorsque  vous  enregistrez  un
       RealName.

       Alias  est un autre nom pour une police, qui est généralement pris dans
       l’indication Alias. Vous devez spécifier le nom réel (RealName)  de  la
       police avec le paramètre origine lorsque vous enregistrez un Alias.

       Substituted  est  encore un autre nom d’une police, qui contrairement à
       Alias n’est ni pris dans les indications de la police,  ni  directement
       enregistré  dans une base de référence par les scripts de configuration
       Defoma. Il est plutôt pris dans une règle de substitution (subst-rule),
       qui  est  gérée  par le module Defoma::Subst, et est enregistrée par le
       module. Si vous voulez qu’une police particulière  se  substitue  à  un
       autre  identifiant,  vous devez enregistrer la police (et son nom réel)
       auprès d’un cache de substitution (subst-cache). Pour plus de  détails,
       veuillez consulter la page de manuel Defoma::Subst.

DÉTAIL SUR LE FONCTIONNEMENT DE DEFOMA::ID

       L’enregistrement  et le désenregistrement des identifiants d’une police
       sont généralement effectués par les  scripts  de  configuration  Defoma
       avec   les   commandes  register  et  unregister  respectivement,  mais
       l’installation et le retrait de certains identifiants  ne  doivent  pas
       être  effectués  lors  de l’appel aux commandes register et unregister,
       mais lors de l’appel  aux  commandes  do-install-(real,alias,subst)  et
       do-remove-(real,alias,subst)   respectivement.  Les  exemples  suivants
       montrent comment les identifiants des polices sont enregistrés dans une
       base de référence et comment il en sont retirés.

       1.Enregistrement
              Le  module  Defoma::Id  enregistre  l’identifiant, la police, le
              type, la priorité et encore d’autres informations dans une  base
              de référence.

       1.2    Le module recherche les polices qui fournissent l’identifiant de
              la base de référence, et prend la première  d’entre  elles.  Les
              noms réels (RealName) sont toujours prioritaires par rapport aux
              Alias,  et  les  Alias   par   rapport   aux   noms   substitués
              (Substituted).

       1.3    Si aucune police n’est installée pour cet identifiant, le module
              rappelle le script avec la  commande  do-install-<type>.  Si  le
              script  réussit  l’installation de la police pour l’identifiant,
              le module marque l’identifiant  et  la  police  comme  INSTALLED
              (installé).

       1.4    Si  une autre police est déjà marquée INSTALLED (installée) pour
              l’identifiant, le module rappelle le  script  avec  la  commande
              do-remove-<type> pour retirer l’ancienne police prioritaire pour
              cette identifiant, et retire la marque  INSTALLED.  Ensuite,  le
              module  rappelle  le  script  avec la commande do-install-<type>
              pour installer la police comme prioritaire pour cet identifiant.
              En   cas   de   succès  de  l’installation  de  la  police  pour
              l’identifiant, le module marque l’identifiant et la police comme
              étant INSTALLED.

       2.Désenregistrement
              Si  la  police  est  installée  pour  l’identifiant,  le  module
              Defoma::Id rappelle le script avec la commande  do-remove-<type>
              afin  de  retirer  la  police pour cet identifiant, et retire la
              marque INSTALLED. Ensuite, le module recherche les  polices  qui
              fournissent   l’identifiant   dans  la  base  de  référence.  Si
              l’identifiant  est  fourni  par  d’autres  polices,  le   module
              recherche la plus prioritaire d’entre elles, et l’installe comme
              mentionné dans la section 1.3 précédente.

       2.2    Le module retire l’entrée correspondant à  l’identifiant  et  la
              police.

       Ces  processus  permettent  de  n’avoir  qu’une  seule  police, la plus
       appropriée, qui fournit un identifiant donné, de telle sorte qu’il  n’y
       ait pas de conflit de nom.

FORMAT D’UNE BASE DE RÉFÉRENCE
       Une  base  de  référence  contient  huit champs pour chaque entrée : id
       (identifiant),  font  (police),  type,  priority  (priorité),  category
       (catégorie), depid, depfont et hints (indications).

       Le  type  représente le type d’une entrée à l’aide d’une combinaison de
       lettres. Une base de référence  gère  des  entrées  de  polices  et  de
       marques.  Ce dernier type d’entrée permet d’installer des polices moins
       prioritaires  pour  certains  identifiants  (qui  sont  marqués  USE  -
       utilisé),  ou  pour  conserver  une  police  installée  pour un certain
       identifiant (marqué comme EXCLUDE - exclu). Elles sont  supposées  être
       placées par les utilisateurs, et ne doivent pas être utilisées dans les
       scripts de configuration Defoma, juste pour  une  utilisation  interne.
       Les  entrées  de  polices  contiennent  des  informations  sur certains
       identifiants d’une police et peuvent être utilisées dans les scripts.

       Le  type  consiste  en  deux  ou  trois  lettres.  La  première  lettre
       représente  le type d’entrée, qui est soit S (pour les polices), soit M
       (pour les marques). Si la première lettre est un  S,  ce  qui  signifie
       qu’il  s’agit de l’entrée d’une police, la deuxième lettre peut être un
       r  (nom  réel),  un  a  (un  alias)  ou  un  S  (pour  une  police   de
       substitution).  Si  la  première lettre est un M, ce qui signifie qu’il
       s’agit de l’entrée d’une marque, la seconde lettre est soit un u  (USE)
       soit  un  x  (EXCLUDE).  Pour  les entrées de polices (dont la première
       lettre est un S), si  la  police  et  l’identifiant  de  l’entrée  sont
       marqués INSTALLED, il y a une troisième lettre, qui est I.

       depid  et depfont représentent les dépendances envers un identifiant ou
       une police. Une police n’est jamais installée, à moins  que  la  police
       depfont soit installée pour l’identifiant depid. Les paramètres origine
       et depend de defoma_id_register affectent ces champs. Si  l’identifiant
       d’une  police  ne dépend d’aucun autre identifiant ou police, alors ces
       champs valent « . ».

       Le  champ  hints  (indications)   représente   les   indications   d’un
       identifiant.   Il   est   spécifié   par   l’argument   indications  de
       defoma_id_register.  Vous  devez  utiliser   defoma_id_get_hints   pour
       accéder à la valeur de ce champ.

       Les  champs  de  chaque entrée d’une base de référence sont accessibles
       par les champs de l’id-object dont les clefs sont e_id, e_font, e_type,
       e_priority,   e_category,   e_depid,   et   e_depfont.   Par  exemple :
       $Id->{e_font}->[3] permet d’accéder à la police de la troisième  entrée
       de l’id-object $ID.

       Voici un exemple de base de référence :

       # e_id        e_font e_type e_priority e_category ...
       0 Helvetica   a.pfa  SrI    20         type1 ...
       1 Courier     a.pfa  Sa     20         type1 ...
       2 Times-Roman b.ttf  SrI    30         truetype ...
       3 Courier     b.ttf  SaI    30         truetype ...

       Cette  base  montre  que  a.pfa  a  deux identifiants : Helvetica comme
       RealName et Courier comme Alias. b.ttf a également deux  identifiants :
       Times-Roman comme RealName et Courier comme Alias.
       Deux  polices  ont  le  même  identifiant  Courier,  mais cette base de
       référence fait pointer Courier vers b.ttf (autrement dit,  c’est  b.ttf
       qui fournit Courier).

FONCTIONS

       defoma_id_open_cache  permet  d’ouvrir une base de référence. Les bases
       de référence dépendent des applications. Les scripts  de  configuration
       Defoma  d’une  application ne peuvent pas ouvrir les bases de référence
       d’une autre application. Chaque application peut avoir plusieurs  bases
       de  référence,  qui  sont  identifiées  par  un suffixe unique pour une
       application. Vous  pouvez  omettre  le  suffixe  pour  une  application
       n’utilisant  qu’une  seule base de référence. nom_paquet doit être omis
       dans la plupart des  cas.  La  fonction  retourne  un  objet  id_object
       utilisé comme descripteur pour les opérations suivantes.

       defoma_id_close_cache  permet  de  fermer  une  base  de  référence. En
       interne, cela permet d’écrire le contenu d’une base de  référence  dans
       un fichier identifié par id_object.

       defoma_id_register  permet  d’enregistrer  une  police  et  un  de  ses
       identifiants dans la base de référence id_object. Vous devez  au  moins
       fournir  les  paramètres  type, font, id et priority. type peut prendre
       les valeurs « real », « alias » ou « subst » qui  correspondent  à  des
       noms  réels  (RealName),  des  Alias,  ou  des  polices de substitution
       (Substituted), comme mentionné précédemment. « subst » ne devrait  être
       utilisé  que  par le module Defoma::Subst, ce qui ne laisse donc que le
       choix « real » et « alias ». Si « alias » est  utilisé  comme  type  de
       police,  alors  vous  devez  spécifier le nom réel de la police dans le
       paramètre origine. Il est obligatoire de spécifier l’origine  pour  les
       identifiants  ne  correspondant  pas  à  un  nom  réel,  parce  que ces
       identifiants ne doivent pas être installés, à moins que le nom réel  de
       la police le soit. Si « real » est utilisé comme type, alors vous devez
       spécifier les indications de la police.

       defoma_id_unregister permet de retirer un identifiant (ou  tous)  d’une
       police   d’une  base  de  référence.  Si  id  est  spécifié,  seul  cet
       identifiant de la police spécifiée est retiré de la base  de  référence
       id_object. Sinon, tous les identifiants de la police sont retirés.

       defoma_id_grep_cache  permet  de  rechercher  dans la base de référence
       id_object un certain identifiant, police, catégorie, depid  ou  depfont
       et  de retourner la liste des index. Le paramètre search-type peut être
       « real », « alias », « subst »,  « font »,  « installed »  ou  « mark »
       pour limiter les sujets de la recherche. Les paramètres id, font, type,
       category, depid et  depfont  permettent  de  préciser  des  valeurs  de
       recherche  pour  ces  différents  champs.  Il  n’est  pas nécessaire de
       préciser aucun de ces paramètres.

       defoma_id_get_hints  permet  d’obtenir  les  indications   de   l’index
       spécifié  dans la base de référence id_object. Si l’index d’un Alias ou
       d’une police de substitution (Substituted) est spécifié, cette fonction
       retourne  les  indications de la police dont le nom réel (RealName) est
       spécifié par le paramètre origine  de  defoma_id_register  lorsque  cet
       alias ou cette police de substitution a été enregistré.

       defoma_id_set permet de faire fournir un id à une police, ou d’empêcher
       une police de fournir un identifiant. Le  paramètre  flag  peut  valoir
       install  ou  exclude. defoma_id_unset permet de supprimer le drapeau de
       l’identifiant et de la police spécifiés.

EXEMPLES

       # Ouvre une base de référence avec « test » comme suffixe.
       $Id = defoma_id_open_cache(’test’);

       # enregistrement des identifiants avec la commande register.
       my $police = shift;
       my $h = parse_hints_start(’Alias’, @_);
       my $nom_police = $h->{FontName};
       my @alias = split(/ /, $h->{Alias});
       my $pri = $h->{Priority};

       defoma_id_register($Id,
                          type => ’real’,
                          font => $police,
                          id => $nom_police,
                          priority => $pri,
                          hints => join(’ ’, @_));

       foreach my $i (@alias) {
         defoma_id_register($Id,
                            type => ’alias’,
                            font => $police,
                            id => $i,
                            priority => $pri,
                            origin => $nom_police);
       }

       # retire des identifiants.
       defoma_id_unregister($Id, type => ’alias’, font => $police);
       defoma_id_unregister($Id, type => ’real’, font => $police);

       # fermeture d’une base de référence
       defoma_id_close_cache($Id);

       # liste des index de polices ayant « Helvetica » comme identifiant.
       my @liste = defoma_id_grep_cache($Id, ’installed’, id => ’Helvetica’);

VOIR AUSSI

       defoma(1),    defoma-font(1),    Defoma::Font(3pm),    defoma-subst(1),
       Defoma::Subst(3pm)

TRADUCTION

       Ce document est une traduction, réalisée par  Nicolas  François  le  29
       juillet 2005 et mise à jour par Cyril Brulebois en janvier 2007.

       L’équipe  de  traduction a fait le maximum pour réaliser une adaptation
       française de qualité.

       La version anglaise  la  plus  à  jour  de  ce  document  est  toujours
       consultable en ajoutant l’option « -L C » à la commande man.

       N’hésitez  pas  à  signaler  à  l’auteur  ou  à  la liste de traduction
       <debian-l10n-french@lists.debian.org>, selon le cas, toute erreur  dans
       cette page de manuel.