Welcome to Linux Knowledge Base and Tutorial
"The place where you learn linux"
International Medical Corps

 Create an AccountHome | Submit News | Your Account  

Tutorial Menu
Linux Tutorial Home
Table of Contents

· Introduction to Operating Systems
· Linux Basics
· Working with the System
· Shells and Utilities
· Editing Files
· Basic Administration
· The Operating System
· The X Windowing System
· The Computer Itself
· Networking
· System Monitoring
· Solving Problems
· Security
· Installing and Upgrading
· Linux and Windows

Man Pages
Linux Topics
Test Your Knowledge

Site Menu
Site Map
Copyright Info
Terms of Use
Privacy Info
Masthead / Impressum
Your Account

Private Messages

News Archive
Submit News
User Articles
Web Links


The Web

Who's Online
There are currently, 81 guest(s) and 0 member(s) that are online.

You are an Anonymous user. You can register for free by clicking here






       Fontconfig  is  a  library designed to provide system-wide
       font configuration, customization and application  access.


       Fontconfig  contains two essential modules, the configura­
       tion module which builds an  internal  configuration  from
       XML  files and the matching module which accepts font pat­
       terns and returns the nearest matching font.

       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 configu­
       ration  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 selec­
       tion  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;  appli­
       cations  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 applica­
       tions can be centralized in one place.  Centralizing  font
       configuration  will simplify and regularize font installa­
       tion and customization.

       While font patterns may contain  essentially  any  proper­
       ties, 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.
         verticallayout  Bool    Use vertical layout
         autohint        Bool    Use autohinter instead of normal hinter
         globaladvance   Bool    Use font global advance data
         file            String  The filename holding the font
         index           Int     The index of the font within the file
         ftface          FT_Face Use the specified FreeType face object
         rasterizer      String  Which rasterizer is in use
         outline         Bool    Whether the glyphs are outlines
         scalable        Bool    Whether glyphs can be scaled
         scale           Double  Scale factor for point->pixel conversions
         dpi             Double  Target dots per inch
         rgba            Int     unknown, rgb, bgr, vrgb, vbgr,
                                 none - subpixel geometry
         minspace        Bool    Eliminate leading from line spacing
         charset         CharSet Unicode chars encoded by the font
         lang            String  List of RFC-3066-style languages this
                                 font supports

       Fontconfig performs matching  by  measuring  the  distance
       from  a  provided pattern to all of the available fonts in
       the system.  The closest matching font is selected.   This
       ensures  that  a font will always be returned, but doesn't
       ensure that it is anything like the requested pattern.

       Font matching starts with an application constructed  pat­
       tern.   The  desired  attributes of the resulting font are
       collected together in a pattern.   Each  property  of  the
       pattern  can  contain one or more values; these are listed
       in priority order; matches earlier in the list are consid­
       ered "closer" than matches later in the list.

       The  initial  pattern  is modified by applying the list of
       editing instructions specific to  patterns  found  in  the
       configuration;  each  consists  of a match predicate and a
       set of editing operations.  They are executed in the order
       they appeared in the configuration.  Each match causes the
       associated sequence of editing operations to be applied.

       After the pattern has been edited, a sequence  of  default
       substitutions  are  performed  to  canonicalize the set of
       available properties; this avoids the need for  the  lower
       layers  to  constantly  provide default values for various
       font properties during rendering.

       The canonical font pattern is finally matched against  all
       available  fonts.   The  distance  from the pattern to the
       font is measured for each of several properties:  foundry,
       charset,  family,  lang, spacing, pixelsize, style, slant,
       weight, antialias, rasterizer and outline.  This  list  is
       in priority order -- results of comparing earlier elements
       system.  Finally, the list of  editing  instructions  spe­
       cific  to  fonts found in the configuration are applied to
       the pattern.  This modified pattern  is  returned  to  the

       The return value contains sufficient information to locate
       and rasterize the font, including  the  file  name,  pixel
       size and other rendering data.  As none of the information
       involved pertains to the  FreeType  library,  applications
       are  free  to use any rasterization engine or even to take
       the identified font file and access it directly.

       The match/edit sequences in  the  configuration  are  per­
       formed  in  two  passes  because there are essentially two
       different operations necessary -- the first is  to  modify
       how fonts are selected; aliasing families and adding suit­
       able defaults.  The second is to modify how  the  selected
       fonts  are  rasterized.   Those must apply to the selected
       font, not the original pattern as false matches will often

       Fontconfig  provides a textual representation for patterns
       that the library can both accept and generate.  The repre­
       sentation is in three parts, first a list of family names,
       second a list of point sizes and finally a list  of  addi­
       tional properties:

            <families>-<point sizes>:<name1>=<values1>:<name2>=<values2>...

       Values  in  a  list  are  separated with commas.  The name
       needn't include either families or point sizes;  they  can
       be elided.  In addition, there are symbolic constants that
       simultaneously indicate both a name and a value.  Here are
       some examples:

         Name                            Meaning
         Times-12                        12 point Times Roman
         Times-12:bold                   12 point Times Bold
         Courier:italic                  Courier Italic in the default size
         Monospace:matrix=1 .1 0 1       The users preferred monospace font
                                         with artificial obliquing


       Each  font in the database contains a list of languages it
       supports.  This is computed by comparing the Unicode  cov­
       erage  of  the font with the orthography of each language.
       Languages are tagged using an RFC-3066  compatible  naming
       and occur in two parts -- the ISO639 language tag followed
       correct configuration files.  As XML files are plain text,
       they can also be manipulated by the expert  user  using  a
       text editor.

       The  fontconfig  document  type  definition resides in the
       external entity "fonts.dtd"; this is  normally  stored  in
       the  default  font  configuration  directory (/etc/fonts).
       Each  configuration  file  should  contain  the  following

            <?xml version="1.0"?>
            <!DOCTYPE fontconfig SYSTEM "fonts.dtd">

       This is the top level element for a font configuration and
       can contain dir, cache, include, match and alias  elements
       in any order.

       This  element  contains  a  directory  name  which will be
       scanned for font files to include in the set of  available

       This  element  contains a file name for the per-user cache
       of font information.  If it starts with '~', it refers  to
       a  file in the users home directory.  This file is used to
       hold information about fonts that  isn't  present  in  the
       per-directory cache files.  It is automatically maintained
       by the fontconfig library.  The default for this  file  is
       ``~/.fonts.cache-version'', where version is the font con­
       figuration file version number (currently 1).

       This element contains the name of an additional configura­
       tion   file.   When  the  XML  datatype  is  traversed  by
       FcConfigParse, the contents  of  the  file  will  also  be
       incorporated  into  the configuration by passing the file­
       name to FcConfigLoadAndParse.  If 'ignore_missing' is  set
       to  "yes" instead of the default "no", a missing file will
       elicit no warning message from the library.

       This element provides a place  to  consolodate  additional
       configuration  information.   config can contain blank and
       rescan elements in any order.


       This element holds first a (possibly empty) list  of  test
       elements  and  then  a  (possibly empty) list of edit ele­
       ments.  Patterns which match all of  the  tests  are  sub­
       jected  to  all  the  edits.  If 'target' is set to "font"
       instead  of  the  default  "pattern",  then  this  element
       applies  to  the  font  name resulting from a match rather
       than a font pattern to be matched.

       This element contains a single  value  which  is  compared
       with  the  pattern  property "property" (substitute any of
       the property names seen above). 'compare' can  be  one  of
       "eq",  "not_eq",  "less", "less_eq", "more", or "more_eq".
       'qual' may either be the default, "any", in which case the
       match  succeeds  if any value associated with the property
       matches the test value, or "all", in which case all of the
       values  associated  with  the property must match the test

       This element contains a list of expression  elements  (any
       of  the  value or operator elements).  The expression ele­
       ments are evaluated at run-time and  modify  the  property
       "property".   The  modification  depends on whether "prop­
       erty" was matched by one of the associated test  elements,
       if  so,  the  modification  may  affect  the first matched
       value.  Any values inserted into the  property  are  given
       the indicated binding. 'mode' is one of:

         Mode                    With Match              Without Match
         "assign"                Replace matching value  Replace all values
         "assign_replace"        Replace all values      Replace all values
         "prepend"               Insert before matching  Insert at head of list
         "prepend_first"         Insert at head of list  Insert at head of list
         "append"                Append after matching   Append at end of list
         "append_last"           Append at end of list   Append at end of list

       These  elements hold a single value of the indicated type.
       bool elements hold either true  or  false.   An  important
       limitation exists in the parsing of floating point numbers
       -- fontconfig requires that  the  mantissa  start  with  a
       digit,  not  a decimal point, so insert a leading zero for
       purely fractional values (e.g. use 0.5 instead of  .5  and
       -0.5 instead of -.5).

       This  element  holds the four double elements of an affine
         demibold        weight          180
         bold            weight          200
         black           weight          210
         roman           slant           0
         italic          slant           100
         oblique         slant           110
         proportional    spacing         0
         mono            spacing         100
         charcell        spacing         110
         unknown         rgba            0
         rgb             rgba            1
         bgr             rgba            2
         vrgb            rgba            3
         vbgr            rgba            4
         none            rgba            5

       These elements perform the specified operation on  a  list
       of  expression elements.  or and and are boolean, not bit­

       These elements compare two  values,  producing  a  boolean

       Inverts the boolean sense of its one expression element

       This element takes three expression elements; if the value
       of the first is true, it produces the value of the second,
       otherwise it produces the value of the third.

       Alias elements provide a shorthand notation for the set of
       common match operations needed to substitute one font fam­
       ily  for  another.  They contain a family element followed
       by optional prefer, accept and  default  elements.   Fonts
       matching the family element are edited to prepend the list
       of prefered families before the  matching  family,  append
       the  acceptable  familys  after  the  matching  family and
       append the default families to the end of the family list.

       Holds a single font family name

       These  hold  a  list  of family elements to be used by the
       alias element.  /article


            Accept deprecated 'mono' alias, replacing it with 'monospace'
       <match target="pattern">
            <test qual="any" name="family"><string>mono</string></test>
            <edit name="family" mode="assign"><string>monospace</string></edit>

            Names not including any well known alias are given 'sans'
       <match target="pattern">
            <test qual="all" name="family" mode="not_eq">sans</test>
            <test qual="all" name="family" mode="not_eq">serif</test>
            <test qual="all" name="family" mode="not_eq">monospace</test>
            <edit name="family" mode="append_last"><string>sans</string></edit>

            Load per-user customization file, but don't complain
            if it doesn't exist
       <include ignore_missing="yes">~/.fonts.conf</include>

            Alias well known font names to available TrueType fonts.
            These substitute TrueType faces for similar Type1
            faces to improve screen appearance.
            <prefer><family>Times New Roman</family></prefer>
            <prefer><family>Courier New</family></prefer>

            Provide required aliases for standard names
            Do these after the users configuration file so that
            any aliases there are used preferentially
            <prefer><family>Times New Roman</family></prefer>

       lives in ~/.fonts.conf

       <?xml version="1.0"?>
       <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
       <!-- ~/.fonts.conf for per-user font configuration -->

            Private font directory

            use rgb sub-pixel ordering to improve glyph appearance on
            LCD screens.  Changes affecting rendering, but not matching
            should always use target="font".
       <match target="font">
            <edit name="rgba" mode="assign"><const>rgb</const></edit>


       fonts.conf  contains  configuration  information  for  the
       fontconfig library consisting of directories  to  look  at
       for  font  information  as well as instructions on editing
       program specified font patterns before attempting to match
       the available fonts.  It is in xml format.

       fonts.dtd  is  a DTD that describes the format of the con­
       figuration files.

       ~/.fonts.conf is the conventional  location  for  per-user
       font configuration, although the actual location is speci­
       fied in the global fonts.conf file.

        ~/.fonts.cache-* is the conventional repository  of  font
       information  that isn't found in the per-directory caches.
       This file is automatically maintained by fontconfig.


       Fontconfig version 2.2.1

                           09 June 2003             FONTS-CONF(5)

The Linux Tutorial is always looking for new contributors.



Security Code
Security Code
Type Security Code

Don't have an account yet? You can create one. As a registered user you have some advantages like theme manager, comments configuration and post comments with your name.

Help if you can!

Amazon Wish List

Did You Know?
The Linux Tutorial can use your help.


Tell a Friend About Us

Bookmark and Share

Web site powered by PHP-Nuke

Is this information useful? At the very least you can help by spreading the word to your favorite newsgroups, mailing lists and forums.
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters. Articles are the property of their respective owners. Unless otherwise stated in the body of the article, article content (C) 1994-2013 by James Mohr. All rights reserved. The stylized page/paper, as well as the terms "The Linux Tutorial", "The Linux Server Tutorial", "The Linux Knowledge Base and Tutorial" and "The place where you learn Linux" are service marks of James Mohr. All rights reserved.
The Linux Knowledge Base and Tutorial may contain links to sites on the Internet, which are owned and operated by third parties. The Linux Tutorial is not responsible for the content of any such third-party site. By viewing/utilizing this web site, you have agreed to our disclaimer, terms of use and privacy policy. Use of automated download software ("harvesters") such as wget, httrack, etc. causes the site to quickly exceed its bandwidth limitation and are therefore expressly prohibited. For more details on this, take a look here

PHP-Nuke Copyright © 2004 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Page Generation: 0.09 Seconds