index.html
Prev
x31.html
Next
2. FUNCTIONAL OVERVIEW
Fontconfig contains two essential modules, the configuration module which
builds an internal configuration from XML files and the matching module
which accepts font patterns and returns the nearest matching font.
2.1. FONT CONFIGURATION
The configuration module consists of the FcConfig datatype, libexpat and
FcConfigParse which walks over an XML tree and ammends a configuration with
data found within.  From an external perspective, configuration of the
library consists of generating a valid XML tree and feeding that to
FcConfigParse.  The only other mechanism provided to applications for
changing the running configuration is to add fonts and directories to the
list of application-provided font files.
The intent is to make font configurations relatively static, and shared by
as many applications as possible.  It is hoped that this will lead to more
stable font selection when passing names from one application to another.
XML was chosen as a configuration file format because it provides a format
which is easy for external agents to edit while retaining the correct
structure and syntax.
Font configuration is separate from font matching; applications needing to
do their own matching can access the available fonts from the library and
perform private matching.  The intent is to permit applications to pick and
choose appropriate functionality from the library instead of forcing them to
choose between this library and a private configuration mechanism.  The hope
is that this will ensure that configuration of fonts for all applications
can be centralized in one place.  Centralizing font configuration will
simplify and regularize font installation and customization.
2.2. FONT PROPERTIES
While font patterns may contain essentially any properties, there are some
well known properties with associated types.  Fontconfig uses some of these
properties for font matching and font completion.  Others are provided as a
convenience for the applications rendering mechanism.
Property Definitions
Property       CPP Symbol           Type    Description
----------------------------------------------------
family         FC_FAMILY            String  Font family names
familylang     FC_FAMILYLANG        String  Language cooresponding to
each family name
style          FC_STYLE             String  Font style. Overrides weight
and slant
stylelang      FC_STYLELANG         String  Language cooresponding to
each style name
fullname       FC_FULLNAME          String  Font face full name where
different from family and
family + style
fullnamelang   FC_FULLNAMELANG      String  Language cooresponding to
each fullname
slant          FC_SLANT             Int     Italic, oblique or roman
weight         FC_WEIGHT            Int     Light, medium, demibold,
bold or black
size           FC_SIZE              Double  Point size
width          FC_WIDTH             Int     Condensed, normal or expanded
aspect         FC_ASPECT            Double  Stretches glyphs horizontally
before hinting
pixelsize      FC_PIXEL_SIZE        Double  Pixel size
spacing        FC_SPACING           Int     Proportional, dual-width,
monospace or charcell
foundry        FC_FOUNDRY           String  Font foundry name
antialias      FC_ANTIALIAS         Bool    Whether glyphs can be
antialiased
hinting        FC_HINTING           Bool    Whether the rasterizer should
use hinting
hintstyle      FC_HINT_STYLE        Int     Automatic hinting style
verticallayout FC_VERTICAL_LAYOUT   Bool    Use vertical layout
autohint       FC_AUTOHINT          Bool    Use autohinter instead of
normal hinter
globaladvance  FC_GLOBAL_ADVANCE    Bool    Use font global advance data
file           FC_FILE              String  The filename holding the font
index          FC_INDEX             Int     The index of the font within
the file
ftface         FC_FT_FACE           FT_Face Use the specified FreeType
face object
rasterizer     FC_RASTERIZER        String  Which rasterizer is in use
outline        FC_OUTLINE           Bool    Whether the glyphs are outlines
scalable       FC_SCALABLE          Bool    Whether glyphs can be scaled
scale          FC_SCALE             Double  Scale factor for point->pixel
conversions
dpi            FC_DPI               Double  Target dots per inch
rgba           FC_RGBA              Int     unknown, rgb, bgr, vrgb,
vbgr, none - subpixel geometry
minspace       FC_MINSPACE          Bool    Eliminate leading from line
spacing
charset        FC_CHARSET           CharSet Unicode chars encoded by
the font
lang           FC_LANG              String  List of RFC-3066-style
languages this font supports
fontversion    FC_FONTVERSION       Int     Version number of the font
capability     FC_CAPABILITY        String  List of layout capabilities in
the font
embolden       FC_EMBOLDEN          Bool    Rasterizer should
synthetically embolden the font
index.html
Prev
index.html
Home
x31.html
Next
Datatypes
