<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
<!ENTITY version SYSTEM "version.sgml">
<!ENTITY confdir SYSTEM "confdir.sgml">
]>
<!--
    $Id$
   
    Copyright © 2003 Keith Packard
   
    Permission to use, copy, modify, distribute, and sell this software and its
    documentation for any purpose is hereby granted without fee, provided that
    the above copyright notice appear in all copies and that both that
    copyright notice and this permission notice appear in supporting
    documentation, and that the name of Keith Packard not be used in
    advertising or publicity pertaining to distribution of the software without
    specific, written prior permission.  Keith Packard makes no
    representations about the suitability of this software for any purpose.  It
    is provided "as is" without express or implied warranty.
   
    KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
    INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
    EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
    CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
    DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
    TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
    PERFORMANCE OF THIS SOFTWARE.
-->
<refentry>
<refmeta>
  <refentrytitle>fonts-conf</refentrytitle>
  <manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
	<refname>fonts.conf</refname>
	<refpurpose>Font configuration files</refpurpose>
</refnamediv>
<refsynopsisdiv>
<synopsis>
   &confdir;/fonts.conf
   &confdir;/fonts.dtd
   &confdir;/conf.d
   ~/.fonts.conf
</synopsis>
</refsynopsisdiv>
<refsect1><title>Description</title>
  <para>
Fontconfig is a library designed to provide system-wide font configuration,
customization and application access.
  </para>
</refsect1>
<refsect1><title>Functional Overview</title>
  <para>
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.
  </para>
  <refsect2><title>Font Configuration</title>
    <para>
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.  
    </para><para>
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.
    </para><para>
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.
    </para>
  </refsect2>
  <refsect2>
    <title>Font Properties</title>
    <para>
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.
    </para>
    <programlisting>
  Property        Type    Description
  --------------------------------------------------------------
  family          String  Font family names
  familylang      String  Languages cooresponding to each family
  style           String  Font style. Overrides weight and slant
  stylelang       String  Languages cooresponding to each style
  fullname        String  Font full names (often includes style)
  fullnamelang    String  Languages cooresponding to each fullname
  slant           Int     Italic, oblique or roman
  weight          Int     Light, medium, demibold, bold or black
  size            Double  Point size
  width           Int     Condensed, normal or expanded
  aspect          Double  Stretches glyphs horizontally before hinting
  pixelsize       Double  Pixel size
  spacing         Int     Proportional, dual-width, monospace or charcell
  foundry         String  Font foundry name
  antialias       Bool    Whether glyphs can be antialiased
  hinting         Bool    Whether the rasterizer should use hinting
  hintstyle       Int     Automatic hinting style
  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
  fontversion     Int     Version number of the font
  capability      String  List of layout capabilities in the font
  embolden        Bool    Rasterizer should synthetically embolden the font
    </programlisting>
  </refsect2>
  <refsect2>
  <title>Font Matching</title>
    <para>
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.
    </para><para> 
Font matching starts with an application constructed pattern.  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 considered "closer" than
matches later in the list.
    </para><para>
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.
    </para><para>
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.
    </para><para>
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 of this list weigh more
heavily than later elements.
    </para><para>
There is one special case to this rule; family names are split into two
bindings; strong and weak.  Strong family names are given greater precedence
in the match than lang elements while weak family names are given lower
precedence than lang elements.  This permits the document language to drive
font selection when any document specified font is unavailable.
    </para><para>
The pattern representing that font is augmented to include any properties
found in the pattern but not found in the font itself; this permits the
application to pass rendering instructions or any other data through the
matching system.  Finally, the list of editing instructions specific to
fonts found in the configuration are applied to the pattern.  This modified
pattern is returned to the application.
    </para><para>
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.
    </para><para>
The match/edit sequences in the configuration are performed in two passes
because there are essentially two different operations necessary -- the
first is to modify how fonts are selected; aliasing families and adding
suitable 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 occur.
    </para>
  </refsect2>
  <refsect2><title>Font Names</title>
    <para>
Fontconfig provides a textual representation for patterns that the library
can both accept and generate.  The representation is in three parts, first a
list of family names, second a list of point sizes and finally a list of
additional properties:
    </para>
    <programlisting>
	&lt;families&gt;-&lt;point sizes&gt;:&lt;name1&gt;=&lt;values1&gt;:&lt;name2&gt;=&lt;values2&gt;...
    </programlisting>
    <para>
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:
    </para>
    <programlisting>
  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
    </programlisting>
  </refsect2>
</refsect1>
<refsect1><title>Lang Tags</title>
  <para>
Each font in the database contains a list of languages it supports.  This is
computed by comparing the Unicode coverage of the font with the orthography
of each language.  Languages are tagged using an RFC-3066 compatible naming
and occur in two parts -- the ISO 639 language tag followed a hyphen and then
by the ISO 3166 country code.  The hyphen and country code may be elided.
  </para><para>
Fontconfig has orthographies for several languages built into the library.
No provision has been made for adding new ones aside from rebuilding the
library.  It currently supports 122 of the 139 languages named in ISO 639-1,
141 of the languages with two-letter codes from ISO 639-2 and another 30
languages with only three-letter codes.  Languages with both two and three
letter codes are provided with only the two letter code.
  </para><para>
For languages used in multiple territories with radically different
character sets, fontconfig includes per-territory orthographies.  This
includes Azerbaijani, Kurdish, Pashto, Tigrinya and Chinese.
  </para>
</refsect1>
<refsect1><title>Configuration File Format</title>
  <para>
Configuration files for fontconfig are stored in XML format; this
format makes external configuration tools easier to write and ensures that
they will generate syntactically correct configuration files.  As XML
files are plain text, they can also be manipulated by the expert user using
a text editor.
  </para><para>
The fontconfig document type definition resides in the external entity
"fonts.dtd"; this is normally stored in the default font configuration
directory (&confdir;).  Each configuration file should contain the
following structure:
    <programlisting>
	&lt;?xml version="1.0"?&gt;
	&lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
	&lt;fontconfig&gt;
	...
	&lt;/fontconfig&gt;
    </programlisting>
  </para>
<refsect2><title><literal>&lt;fontconfig&gt;</literal></title><para>
This is the top level element for a font configuration and can contain
<sgmltag>dir</>, <sgmltag>cache</>, <sgmltag>include</>, <sgmltag>match</> and <sgmltag>alias</> elements in any order.
  </para></refsect2>
  <refsect2><title><sgmltag>dir</></title><para>
This element contains a directory name which will be scanned for font files
to include in the set of available fonts.
  </para></refsect2>
  <refsect2><title><sgmltag>cache</></title><para>
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-<sgmltag>version</>'', where <sgmltag>version</> is the font configuration
file version number (currently 1).
  </para></refsect2>
  <refsect2><title><sgmltag>include ignore_missing="no"</></title><para>
This element contains the name of an additional configuration file or
directory.  If a directory, every file within that directory starting with an
ASCII digit (U+0030 - U+0039) and ending with the string ``.conf'' will be processed in sorted order.  When
the XML datatype is traversed by FcConfigParse, the contents of the file(s)
will also be incorporated into the configuration by passing the filename(s) to
FcConfigLoadAndParse.  If 'ignore_missing' is set to "yes" instead of the
default "no", a missing file or directory will elicit no warning message from
the library.
  </para></refsect2>
  <refsect2><title><sgmltag>config</></title><para>
This element provides a place to consolodate additional configuration
information.  <sgmltag>config</> can contain <sgmltag>blank</> and <sgmltag>rescan</> elements in any
order.
  </para></refsect2>
  <refsect2><title><sgmltag>blank</></title><para>
Fonts often include "broken" glyphs which appear in the encoding but are
drawn as blanks on the screen.  Within the <sgmltag>blank</> element, place each
Unicode characters which is supposed to be blank in an <sgmltag>int</> element.
Characters outside of this set which are drawn as blank will be elided from
the set of characters supported by the font.
  </para></refsect2>
  <refsect2><title><sgmltag>rescan</></title><para>
The <sgmltag>rescan</> element holds an <sgmltag>int</> element which indicates the default
interval between automatic checks for font configuration changes.
Fontconfig will validate all of the configuration files and directories and
automatically rebuild the internal datastructures when this interval passes.
  </para></refsect2>
  <refsect2><title><sgmltag>selectfont</></title><para>
This element is used to black/white list fonts from being listed or matched
against.  It holds acceptfont and rejectfont elements.
  </para></refsect2>
  <refsect2><title><sgmltag>acceptfont</></title><para>
Fonts matched by an acceptfont element are "whitelisted"; such fonts are
explicitly included in the set of fonts used to resolve list and match
requests; including them in this list protects them from being "blacklisted"
by a rejectfont element.  Acceptfont elements include glob and pattern
elements which are used to match fonts.
  </para></refsect2>
  <refsect2><title><sgmltag>rejectfont</></title><para>
Fonts matched by an rejectfont element are "blacklisted"; such fonts are
excluded from the set of fonts used to resolve list and match requests as if
they didn't exist in the system.  Rejectfont elements include glob and
pattern elements which are used to match fonts.
  </para></refsect2>
  <refsect2><title><sgmltag>glob</></title><para>
Glob elements hold shell-style filename matching patterns (including ? and
*) which match fonts based on their complete pathnames.  This can be used to
exclude a set of directories (/usr/share/fonts/uglyfont*), or particular
font file types (*.pcf.gz), but the latter mechanism relies rather heavily
on filenaming conventions which can't be relied upon.
  </para></refsect2>
  <refsect2><title><sgmltag>pattern</></title><para>
Pattern elements perform list-style matching on incoming fonts; that is,
they hold a list of elements and associated values.  If all of those
elements have a matching value, then the pattern matches the font.  This can
be used to select fonts based on attributes of the font (scalable, bold,
etc), which is a more reliable mechanism than using file extensions.
Pattern elements include patelt elements.
  </para></refsect2>
  <refsect2><title><sgmltag>patelt name="property"</></title><para>
Patelt elements hold a single pattern element and list of values.  They must
have a 'name' attribute which indicates the pattern element name.  Patelt
elements include int, double, string, matrix, bool, charset and const
elements.
  </para></refsect2>
  <refsect2><title><sgmltag>match target="pattern"</></title><para>
This element holds first a (possibly empty) list of <sgmltag>test</> elements and then
a (possibly empty) list of <sgmltag>edit</> elements.  Patterns which match all of the
tests are subjected 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.
  </para></refsect2>
  <refsect2><title><sgmltag>test qual="any" name="property" target="default" compare="eq"</></title><para>
This element contains a single value which is compared with the target
('pattern', 'font' or 'default') 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 value.  When used in a &lt;match target="font"&gt; element,
the target= attribute in the &lt;test&gt; element selects between matching
the original pattern or the font.  "default" selects whichever target the
outer &lt;match&gt; element has selected.
  </para></refsect2>
  <refsect2><title><sgmltag>edit name="property" mode="assign" binding="weak"</></title><para>
This element contains a list of expression elements (any of the value or
operator elements).  The expression elements are evaluated at run-time and
modify the property "property".  The modification depends on whether
"property" was matched by one of the associated <sgmltag>test</> elements, if so, the
modification may affect the first matched value.  Any values inserted into
the property are given the indicated binding ("strong", "weak" or "same")
with "same" binding using the value from the matched pattern element.
'mode' is one of:
    <programlisting>
  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
    </programlisting>
  </para></refsect2>
  <refsect2><title><sgmltag>int</>, <sgmltag>double</>, <sgmltag>string</>, <sgmltag>bool</></title><para>
These elements hold a single value of the indicated type.  <sgmltag>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).
  </para></refsect2>
  <refsect2><title><sgmltag>matrix</></title><para>
This element holds the four <sgmltag>double</> elements of an affine
transformation.
  </para></refsect2>
  <refsect2><title><sgmltag>name</></title><para>
Holds a property name.  Evaluates to the first value from the property of
the font, not the pattern.
  </para></refsect2>
  <refsect2><title><sgmltag>const</></title><para>
Holds the name of a constant; these are always integers and serve as
symbolic names for common font values:
    <programlisting>
  Constant        Property        Value
  -------------------------------------
  thin            weight          0
  extralight      weight          40
  ultralight      weight          40
  light           weight          50
  book            weight          75
  regular         weight          80
  normal          weight          80
  medium          weight          100
  demibold        weight          180
  semibold        weight          180
  bold            weight          200
  extrabold       weight          205
  black           weight          210
  heavy           weight          210
  roman           slant           0
  italic          slant           100
  oblique         slant           110
  ultracondensed  width           50
  extracondensed  width           63
  condensed       width           75
  semicondensed   width           87
  normal          width           100
  semiexpanded    width           113
  expanded        width           125
  extraexpanded   width           150
  ultraexpanded   width           200
  proportional    spacing         0
  dual            spacing         90
  mono            spacing         100
  charcell        spacing         110
  unknown         rgba            0
  rgb             rgba            1
  bgr             rgba            2
  vrgb            rgba            3
  vbgr            rgba            4
  none            rgba            5
  hintnone        hintstyle       0
  hintslight      hintstyle       1
  hintmedium      hintstyle       2
  hintfull        hintstyle       3
    </programlisting>
      </para>
    </refsect2>
  <refsect2>
      <title><sgmltag>or</>, <sgmltag>and</>, <sgmltag>plus</>, <sgmltag>minus</>, <sgmltag>times</>, <sgmltag>divide</></title>
      <para>
These elements perform the specified operation on a list of expression
elements.  <sgmltag>or</> and <sgmltag>and</> are boolean, not bitwise.
      </para>
    </refsect2>
  <refsect2>
    <title><sgmltag>eq</>, <sgmltag>not_eq</>, <sgmltag>less</>, <sgmltag>less_eq</>, <sgmltag>more</>, <sgmltag>more_eq</></title>
    <para>
These elements compare two values, producing a boolean result.
  </para></refsect2>
  <refsect2><title><sgmltag>not</></title><para>
Inverts the boolean sense of its one expression element
  </para></refsect2>
  <refsect2><title><sgmltag>if</></title><para>
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.
  </para></refsect2>
  <refsect2><title><sgmltag>alias</></title><para>
Alias elements provide a shorthand notation for the set of common match
operations needed to substitute one font family for another.  They contain a
<sgmltag>family</> element followed by optional <sgmltag>prefer</>, <sgmltag>accept</> and <sgmltag>default</>
elements.  Fonts matching the <sgmltag>family</> element are edited to prepend the
list of <sgmltag>prefer</>ed families before the matching <sgmltag>family</>, append the
<sgmltag>accept</>able familys after the matching <sgmltag>family</> and append the <sgmltag>default</>
families to the end of the family list.
  </para></refsect2>
  <refsect2><title><sgmltag>family</></title><para>
Holds a single font family name
  </para></refsect2>
  <refsect2><title><sgmltag>prefer</>, <sgmltag>accept</>, <sgmltag>default</></title><para>
These hold a list of <sgmltag>family</> elements to be used by the <sgmltag>alias</> element.
<sgmltag>/article</>
  </para></refsect2>
</refsect1>
<refsect1><title>EXAMPLE CONFIGURATION FILE</title>
  <refsect2><title>System configuration file</title>
    <para>
This is an example of a system-wide configuration file
    </para>
    <programlisting>
&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
&lt;!-- &confdir;/fonts.conf file to configure system font access --&gt;
&lt;fontconfig&gt;
&lt;!-- 
	Find fonts in these directories
--&gt;
&lt;dir&gt;/usr/share/fonts&lt;/dir&gt;
&lt;dir&gt;/usr/X11R6/lib/X11/fonts&lt;/dir&gt;

&lt;!--
	Accept deprecated 'mono' alias, replacing it with 'monospace'
--&gt;
&lt;match target="pattern"&gt;
	&lt;test qual="any" name="family"&gt;&lt;string&gt;mono&lt;/string&gt;&lt;/test&gt;
	&lt;edit name="family" mode="assign"&gt;&lt;string&gt;monospace&lt;/string&gt;&lt;/edit&gt;
&lt;/match&gt;

&lt;!--
	Names not including any well known alias are given 'sans'
--&gt;
&lt;match target="pattern"&gt;
	&lt;test qual="all" name="family" mode="not_eq"&gt;sans&lt;/test&gt;
	&lt;test qual="all" name="family" mode="not_eq"&gt;serif&lt;/test&gt;
	&lt;test qual="all" name="family" mode="not_eq"&gt;monospace&lt;/test&gt;
	&lt;edit name="family" mode="append_last"&gt;&lt;string&gt;sans&lt;/string&gt;&lt;/edit&gt;
&lt;/match&gt;

&lt;!--
	Load per-user customization file, but don't complain
	if it doesn't exist
--&gt;
&lt;include ignore_missing="yes"&gt;~/.fonts.conf&lt;/include&gt;

&lt;!--
	Load local customization files, but don't complain
	if there aren't any
--&gt;
&lt;include ignore_missing="yes"&gt;conf.d&lt;/include&gt;
&lt;include ignore_missing="yes"&gt;local.conf&lt;/include&gt;

&lt;!--
	Alias well known font names to available TrueType fonts.
	These substitute TrueType faces for similar Type1
	faces to improve screen appearance.
--&gt;
&lt;alias&gt;
	&lt;family&gt;Times&lt;/family&gt;
	&lt;prefer&gt;&lt;family&gt;Times New Roman&lt;/family&gt;&lt;/prefer&gt;
	&lt;default&gt;&lt;family&gt;serif&lt;/family&gt;&lt;/default&gt;
&lt;/alias&gt;
&lt;alias&gt;
	&lt;family&gt;Helvetica&lt;/family&gt;
	&lt;prefer&gt;&lt;family&gt;Arial&lt;/family&gt;&lt;/prefer&gt;
	&lt;default&gt;&lt;family&gt;sans&lt;/family&gt;&lt;/default&gt;
&lt;/alias&gt;
&lt;alias&gt;
	&lt;family&gt;Courier&lt;/family&gt;
	&lt;prefer&gt;&lt;family&gt;Courier New&lt;/family&gt;&lt;/prefer&gt;
	&lt;default&gt;&lt;family&gt;monospace&lt;/family&gt;&lt;/default&gt;
&lt;/alias&gt;

&lt;!--
	Provide required aliases for standard names
	Do these after the users configuration file so that
	any aliases there are used preferentially
--&gt;
&lt;alias&gt;
	&lt;family&gt;serif&lt;/family&gt;
	&lt;prefer&gt;&lt;family&gt;Times New Roman&lt;/family&gt;&lt;/prefer&gt;
&lt;/alias&gt;
&lt;alias&gt;
	&lt;family&gt;sans&lt;/family&gt;
	&lt;prefer&gt;&lt;family&gt;Arial&lt;/family&gt;&lt;/prefer&gt;
&lt;/alias&gt;
&lt;alias&gt;
	&lt;family&gt;monospace&lt;/family&gt;
	&lt;prefer&gt;&lt;family&gt;Andale Mono&lt;/family&gt;&lt;/prefer&gt;
&lt;/alias&gt;
&lt;/fontconfig&gt;
    </programlisting>
  </refsect2>
  <refsect2><title>User configuration file</title>
    <para>
This is an example of a per-user configuration file that lives in
~/.fonts.conf
    </para>
    <programlisting>
&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
&lt;!-- ~/.fonts.conf for per-user font configuration --&gt;
&lt;fontconfig&gt;

&lt;!--
	Private font directory
--&gt;
&lt;dir&gt;~/.fonts&lt;/dir&gt;

&lt;!--
	use rgb sub-pixel ordering to improve glyph appearance on
	LCD screens.  Changes affecting rendering, but not matching
	should always use target="font".
--&gt;
&lt;match target="font"&gt;
	&lt;edit name="rgba" mode="assign"&gt;&lt;const&gt;rgb&lt;/const&gt;&lt;/edit&gt;
&lt;/match&gt;
&lt;/fontconfig&gt;
    </programlisting>
  </refsect2>
</refsect1>
<refsect1><title>Files</title>
  <para>
<emphasis>fonts.conf</emphasis>
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.
  </para>
  <para>
<emphasis>conf.d</emphasis>
is the conventional name for a directory of additional configuration files
managed by external applications or the local administrator.  The
filenames starting with decimal digits are sorted in lexicographic order
and used as additional configuration files.  All of these files are in xml
format.  The master fonts.conf file references this directory in an 
&lt;include&gt; directive.
  </para>
  <para>
<emphasis>fonts.dtd</emphasis>
is a DTD that describes the format of the configuration files.
  </para>
  <para>
<emphasis>~/.fonts.conf</emphasis>
is the conventional location for per-user font configuration, although the
actual location is specified in the global fonts.conf file.
  </para>
  <para>
<emphasis> ~/.fonts.cache-*</emphasis>
is the conventional repository of font information that isn't found in the
per-directory caches.  This file is automatically maintained by fontconfig.
  </para>
</refsect1>
<refsect1><title>See Also</title>
  <para>
fc-cache(1), fc-match(1), fc-list(1)
  </para>
</refsect1>
<refsect1><title>Version</title>
	    <para>
Fontconfig version &version;
	    </para>
</refsect1>
</refentry>
