aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/extras/fontconfig/doc/fontconfig-user.html
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11/extras/fontconfig/doc/fontconfig-user.html')
-rw-r--r--nx-X11/extras/fontconfig/doc/fontconfig-user.html1218
1 files changed, 1218 insertions, 0 deletions
diff --git a/nx-X11/extras/fontconfig/doc/fontconfig-user.html b/nx-X11/extras/fontconfig/doc/fontconfig-user.html
new file mode 100644
index 000000000..ccf040fb1
--- /dev/null
+++ b/nx-X11/extras/fontconfig/doc/fontconfig-user.html
@@ -0,0 +1,1218 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
+<HTML
+><HEAD
+><TITLE
+>fonts-conf</TITLE
+><META
+NAME="GENERATOR"
+CONTENT="Modular DocBook HTML Stylesheet Version 1.79"></HEAD
+><BODY
+CLASS="REFENTRY"
+BGCOLOR="#FFFFFF"
+TEXT="#000000"
+LINK="#0000FF"
+VLINK="#840084"
+ALINK="#0000FF"
+><H1
+><A
+NAME="AEN1"
+></A
+>fonts-conf</H1
+><DIV
+CLASS="REFNAMEDIV"
+><A
+NAME="AEN5"
+></A
+><H2
+>Name</H2
+>fonts.conf&nbsp;--&nbsp;Font configuration files</DIV
+><DIV
+CLASS="REFSYNOPSISDIV"
+><A
+NAME="AEN8"
+></A
+><H2
+>Synopsis</H2
+><PRE
+CLASS="SYNOPSIS"
+> /etc/fonts/fonts.conf
+ /etc/fonts/fonts.dtd
+ /etc/fonts/conf.d
+ ~/.fonts.conf</PRE
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN10"
+></A
+><H2
+>Description</H2
+><P
+>Fontconfig is a library designed to provide system-wide font configuration,
+customization and application access.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN13"
+></A
+><H2
+>Functional Overview</H2
+><P
+>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.
+ </P
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN16"
+></A
+><H3
+>Font Configuration</H3
+><P
+>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.
+ </P
+><P
+>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.
+ </P
+><P
+>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.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN21"
+></A
+><H3
+>Font Properties</H3
+><P
+>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.
+ </P
+><PRE
+CLASS="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-&#62;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
+ </PRE
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN25"
+></A
+><H3
+>Font Matching</H3
+><P
+>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.
+ </P
+><P
+>
+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.
+ </P
+><P
+>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.
+ </P
+><P
+>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.
+ </P
+><P
+>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.
+ </P
+><P
+>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.
+ </P
+><P
+>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.
+ </P
+><P
+>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.
+ </P
+><P
+>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.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN36"
+></A
+><H3
+>Font Names</H3
+><P
+>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:
+ </P
+><PRE
+CLASS="PROGRAMLISTING"
+> &lt;families&gt;-&lt;point sizes&gt;:&lt;name1&gt;=&lt;values1&gt;:&lt;name2&gt;=&lt;values2&gt;...
+ </PRE
+><P
+>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:
+ </P
+><PRE
+CLASS="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
+ </PRE
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN42"
+></A
+><H2
+>Lang Tags</H2
+><P
+>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.
+ </P
+><P
+>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.
+ </P
+><P
+>For languages used in multiple territories with radically different
+character sets, fontconfig includes per-territory orthographies. This
+includes Azerbaijani, Kurdish, Pashto, Tigrinya and Chinese.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN47"
+></A
+><H2
+>Configuration File Format</H2
+><P
+>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.
+ </P
+><P
+>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 structure:
+ <PRE
+CLASS="PROGRAMLISTING"
+> &lt;?xml version="1.0"?&gt;
+ &lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
+ &lt;fontconfig&gt;
+ ...
+ &lt;/fontconfig&gt;
+ </PRE
+>
+ </P
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN52"
+></A
+><H3
+><TT
+CLASS="LITERAL"
+>&lt;fontconfig&gt;</TT
+></H3
+><P
+>This is the top level element for a font configuration and can contain
+<CODE
+CLASS="SGMLTAG"
+>dir</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>cache</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>include</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>match</CODE
+> and <CODE
+CLASS="SGMLTAG"
+>alias</CODE
+> elements in any order.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN61"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>dir</CODE
+></H3
+><P
+>This element contains a directory name which will be scanned for font files
+to include in the set of available fonts.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN65"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>cache</CODE
+></H3
+><P
+>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-<CODE
+CLASS="SGMLTAG"
+>version</CODE
+>'', where <CODE
+CLASS="SGMLTAG"
+>version</CODE
+> is the font configuration
+file version number (currently 1).
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN71"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>include ignore_missing="no"</CODE
+></H3
+><P
+>This element contains the name of an additional configuration file or
+directory. If a directory, every file within that directory starting with a
+number 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.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN75"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>config</CODE
+></H3
+><P
+>This element provides a place to consolodate additional configuration
+information. <CODE
+CLASS="SGMLTAG"
+>config</CODE
+> can contain <CODE
+CLASS="SGMLTAG"
+>blank</CODE
+> and <CODE
+CLASS="SGMLTAG"
+>rescan</CODE
+> elements in any
+order.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN82"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>blank</CODE
+></H3
+><P
+>Fonts often include "broken" glyphs which appear in the encoding but are
+drawn as blanks on the screen. Within the <CODE
+CLASS="SGMLTAG"
+>blank</CODE
+> element, place each
+Unicode characters which is supposed to be blank in an <CODE
+CLASS="SGMLTAG"
+>int</CODE
+> element.
+Characters outside of this set which are drawn as blank will be elided from
+the set of characters supported by the font.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN88"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>rescan</CODE
+></H3
+><P
+>The <CODE
+CLASS="SGMLTAG"
+>rescan</CODE
+> element holds an <CODE
+CLASS="SGMLTAG"
+>int</CODE
+> 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.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN94"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>selectfont</CODE
+></H3
+><P
+>This element is used to black/white list fonts from being listed or matched
+against. It holds acceptfont and rejectfont elements.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN98"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>acceptfont</CODE
+></H3
+><P
+>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.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN102"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>rejectfont</CODE
+></H3
+><P
+>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.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN106"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>glob</CODE
+></H3
+><P
+>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.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN110"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>pattern</CODE
+></H3
+><P
+>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.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN114"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>patelt name="property"</CODE
+></H3
+><P
+>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.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN118"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>match target="pattern"</CODE
+></H3
+><P
+>This element holds first a (possibly empty) list of <CODE
+CLASS="SGMLTAG"
+>test</CODE
+> elements and then
+a (possibly empty) list of <CODE
+CLASS="SGMLTAG"
+>edit</CODE
+> 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.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN124"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>test qual="any" name="property" target="default" compare="eq"</CODE
+></H3
+><P
+>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.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN128"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>edit name="property" mode="assign" binding="weak"</CODE
+></H3
+><P
+>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 <CODE
+CLASS="SGMLTAG"
+>test</CODE
+> 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:
+ <PRE
+CLASS="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
+ </PRE
+>
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN134"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>int</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>double</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>string</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>bool</CODE
+></H3
+><P
+>These elements hold a single value of the indicated type. <CODE
+CLASS="SGMLTAG"
+>bool</CODE
+>
+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).
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN142"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>matrix</CODE
+></H3
+><P
+>This element holds the four <CODE
+CLASS="SGMLTAG"
+>double</CODE
+> elements of an affine
+transformation.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN147"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>name</CODE
+></H3
+><P
+>Holds a property name. Evaluates to the first value from the property of
+the font, not the pattern.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN151"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>const</CODE
+></H3
+><P
+>Holds the name of a constant; these are always integers and serve as
+symbolic names for common font values:
+ <PRE
+CLASS="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
+ </PRE
+>
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN156"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>or</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>and</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>plus</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>minus</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>times</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>divide</CODE
+></H3
+><P
+>These elements perform the specified operation on a list of expression
+elements. <CODE
+CLASS="SGMLTAG"
+>or</CODE
+> and <CODE
+CLASS="SGMLTAG"
+>and</CODE
+> are boolean, not bitwise.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN167"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>eq</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>not_eq</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>less</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>less_eq</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>more</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>more_eq</CODE
+></H3
+><P
+>These elements compare two values, producing a boolean result.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN176"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>not</CODE
+></H3
+><P
+>Inverts the boolean sense of its one expression element
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN180"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>if</CODE
+></H3
+><P
+>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.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN184"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>alias</CODE
+></H3
+><P
+>Alias elements provide a shorthand notation for the set of common match
+operations needed to substitute one font family for another. They contain a
+<CODE
+CLASS="SGMLTAG"
+>family</CODE
+> element followed by optional <CODE
+CLASS="SGMLTAG"
+>prefer</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>accept</CODE
+> and <CODE
+CLASS="SGMLTAG"
+>default</CODE
+>
+elements. Fonts matching the <CODE
+CLASS="SGMLTAG"
+>family</CODE
+> element are edited to prepend the
+list of <CODE
+CLASS="SGMLTAG"
+>prefer</CODE
+>ed families before the matching <CODE
+CLASS="SGMLTAG"
+>family</CODE
+>, append the
+<CODE
+CLASS="SGMLTAG"
+>accept</CODE
+>able familys after the matching <CODE
+CLASS="SGMLTAG"
+>family</CODE
+> and append the <CODE
+CLASS="SGMLTAG"
+>default</CODE
+>
+families to the end of the family list.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN198"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>family</CODE
+></H3
+><P
+>Holds a single font family name
+ </P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN202"
+></A
+><H3
+><CODE
+CLASS="SGMLTAG"
+>prefer</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>accept</CODE
+>, <CODE
+CLASS="SGMLTAG"
+>default</CODE
+></H3
+><P
+>These hold a list of <CODE
+CLASS="SGMLTAG"
+>family</CODE
+> elements to be used by the <CODE
+CLASS="SGMLTAG"
+>alias</CODE
+> element.
+<CODE
+CLASS="SGMLTAG"
+>/article</CODE
+>
+ </P
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN211"
+></A
+><H2
+>EXAMPLE CONFIGURATION FILE</H2
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN213"
+></A
+><H3
+>System configuration file</H3
+><P
+>This is an example of a system-wide configuration file
+ </P
+><PRE
+CLASS="PROGRAMLISTING"
+>&lt;?xml version="1.0"?&gt;
+&lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
+&lt;!-- /etc/fonts/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;
+ </PRE
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN217"
+></A
+><H3
+>User configuration file</H3
+><P
+>This is an example of a per-user configuration file that lives in
+~/.fonts.conf
+ </P
+><PRE
+CLASS="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;
+ </PRE
+></DIV
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN221"
+></A
+><H2
+>Files</H2
+><P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>fonts.conf</I
+></SPAN
+>
+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.
+ </P
+><P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>conf.d</I
+></SPAN
+>
+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.
+ </P
+><P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>fonts.dtd</I
+></SPAN
+>
+is a DTD that describes the format of the configuration files.
+ </P
+><P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+>~/.fonts.conf</I
+></SPAN
+>
+is the conventional location for per-user font configuration, although the
+actual location is specified in the global fonts.conf file.
+ </P
+><P
+><SPAN
+CLASS="emphasis"
+><I
+CLASS="EMPHASIS"
+> ~/.fonts.cache-*</I
+></SPAN
+>
+is the conventional repository of font information that isn't found in the
+per-directory caches. This file is automatically maintained by fontconfig.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN233"
+></A
+><H2
+>See Also</H2
+><P
+>fc-cache(1), fc-match(1), fc-list(1)
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN236"
+></A
+><H2
+>Version</H2
+><P
+>Fontconfig version 2.3.2
+
+ </P
+></DIV
+></BODY
+></HTML
+> \ No newline at end of file