NOM
Defoma::Common - module Defoma fournissant diverses fonctions.
SYNOPSIS
use Defoma::Common;
$h = parse_hints_start( indications... );
$hsub = parse_hints_subhints( table_hachage_indications, police );
$hsub = parse_hints_subhints_inherit( table_hachage_indications, police
);
parse_hints_cut( table_hachage_indications, types_indications... );
parse_hints_cut_except( table_hachage_indications, types_indications...
);
@hints = parse_hints_build( table_hachage_indications );
$charset = get_charset( xencoding );
$xencoding = get_xencoding( charset, encoding );
@XLFDs = get_xlfd_of_font( police, level => niveau, face => police );
my $num = weight_ascii2integer( chaîne_graisse );
my $num = weight_a2i( chaîne_graisse );
DESCRIPTION
parse_hints_start est une fonction qui permet de convertir des
indications contenues dans un tableau vers une table de hachage. Une
indication consiste en un type et une ou plusieurs valeurs. Voici des
exemples d’indication sous la forme d’un tableau.
--FontName Helvetica-BoldItalic --Family Helvetica --GeneralFamily
SansSerif --Weight Bold --Shape NoSerif Italic --Charset ISO8859-1
Dans cet exemple, FontName, Family, GeneralFamily, Weight, Shape et
Charset sont les types des indications. Les éléments commençant par
deux tirets « -- » sont considérés comme des types d’indication. Les
autres sont considérés comme les valeurs. La fonction convertit ce
tableau en une table de hachage décrite de la façon suivante :
FontName => ’Helvetica-BoldItalic’,
Family => ’Helvetica’,
GeneralFamily => ’SansSerif’,
Weight => ’Bold’,
Shape => ’NoSerif Italic’,
Charset => ’ISO8859-1’
Vous voyez que les types d’indication sont utilisés comme clés de
hachage, et que la forme (Shape) a plus d’une valeur : NoSerif et
Italic. Si un type d’indication a plus d’une valeur, alors elles sont
combinées en une unique chaîne, séparées par une espace.
parse_hints_subhints est une fonction qui permet d’obtenir la clé de
hachage d’une indication secondaire pointée par police dans la table de
hachage table_hachage_indications. Voici un exemple de table de hachage
d’indications :
$h = {Inherit => ’Charset Weight’,
FontName => ’Helvetica’,
Charset => ’ISO8859-1’,
Weight => ’Medium’,
Shape => ’Upright’,
FontName1 => ’Helvetica-Bold’,
Weight1 => ’Bold’,
FontName2 => ’Helvetica-Unicode’,
Charset2 => ’ISO10646-1’};
Vous voyez dans cet exemple que certains types d’indication sont
numérotés. parse_hints_subhints extrait l’indication ayant le bon
numéro. Par exemple, vous pouvez extraire les indications FontName et
Charset non numérotées avec :
$hsub = parse_hints_subhints($h, 0);
et le contenu de $hsub sera :
FontName => ’Helvetica’,
Charset => ’ISO8859-1’,
Weight => ’Medium’,
Shape => ’Upright’
Si vous mettez à 1 le deuxième paramètre de parse_hints_subhints, alors
le contenu de $hsub sera :
FontName => ’Helvetica-Bold’,
Weight => ’Bold’
Notez que le numéro de chaque type d’indication est retiré.
parse_hints_subhints_inherit est presque identique à
parse_hints_subhints, à la différence que les indications des types
spécifiés dans l’indication de type « Inherit » sont héritées. Voici
les résultats de parse_hints_subhints_inherit avec les valeurs 1 et 2
comme second paramètre dans l’exemple donné avec parse_hints_subhints.
FontName => ’Helvetica-Bold’,
Weight => ’Bold’,
Charset => ’ISO8859-1’
FontName => ’Helvetica-Unicode’,
Weight => ’Medium’,
Charset => ’ISO10646-1’
parse_hints_cut permet de retirer d’une table de hachage d’indications
les types d’indication (et leur valeur) spécifiés par
types_indications. Cette fonction est supposée être utilisée
conjointement avec parse_hints_build.
parse_hints_cut_except permet de retirer d’une table de hachage
d’indications tous les types d’indication (et leur valeur), sauf ceux
spécifiés par types_indications. Cette fonction est supposée être
utilisée conjointement avec parse_hints_build.
parse_hints_build permet de convertir une table de hachage
d’indications en un tableau.
get_charset est une fonction qui permet de convertir un champ
X-RegistryEncoding spécifié par xencoding en un Charset.
X-RegistryEncoding correspond aux deux derniers éléments d’un XLFD
[ NdT : X Logical Font Description, une chaîne de 15 champs séparés par
des tirets qui permet de décrire une police ], comme iso8859-1 ou
jisx0208.1983-0. Les valeurs de retour pour ces exemples sont
respectivement ISO8859-1 et JISX0208.
get_xencoding permet de convertir un jeu de caractères (« Charset ») et
un codage (« Encoding ») spécifiés par charset et encoding en un
X-RegistryEncoding. encoding est en règle générale omis.
weight_ascii2integer est une fonction qui permet de convertir une
graisse de police (Weight) sous forme de chaîne - comme Bold (gras) ou
Medium (moyen) - en une valeur numérique (un entier). Medium a toujours
la valeur 0, et plus la police est grasse, plus ce nombre est élevé.
Par exemple, Bold vaut +2, et Light (léger) vaut -2. weight_a2i est un
raccourci pour weight_ascii2integer.
get_xlfd_of_font permet d’obtenir un tableau de XLFD pour une police
spécifiée par police. Vous pouvez contrôler la quantité de XLFD obtenue
avec les options niveau et face. Le niveau doit être soit « min », soit
« normal », ou encore « max ». Lorsque min est spécifié, les XLFD non
italique ou gras enregistrés dans la catégorie « xfont » sont
retournés. Lorsque normal est spécifié, les XLFD étant gras ou italique
(mais pas italique à l’envers) enregistrés dans la catégorie « xfont »
sont retournés. Lorsque max est spécifié, tous les XLFD générés sont
retournés.
EXEMPLES
$h = parse_hints_start(@_);
@shape = split(/ /, $h->{Shape});
@alias = split(/ /, $h->{Alias});
$priority = $h->{Priority};
$realname = $h->{FontName};
$realname =~ s/ .*//;
parse_hints_cut($h, ’Priority’, ’FontName’, ’Charset’);
@hints = parse_hints_build($h);
VOIR AUSSI
defoma(1)
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.