Introduction to Fontconfig

The Fontconfig package contains a library and support programs used for configuring and customizing font access.

This package is known to build and work properly using an LFS-8.0 platform.

Package Information

Fontconfig Dependencies




DocBook-utils-0.6.14 and libxml2-2.9.4, texlive-20160523b (or install-tl-unx)



If you have DocBook Utils installed and you remove the --disable-docs parameter from the configure command below, you must have SGMLSpm-1.1 and texlive-20160523b installed also, or the Fontconfig build will fail.

User Notes:

Installation of Fontconfig

Install Fontconfig by running the following commands:

sed -e '/FC_CHAR_WIDTH/s/CHAR_WIDTH/CHARWIDTH/'             \
    -i fontconfig/fontconfig.h                &&
sed 's/CHAR_WIDTH/CHARWIDTH/' -i src/fcobjs.h &&

./configure --prefix=/usr        \
            --sysconfdir=/etc    \
            --localstatedir=/var \
            --disable-docs       \
            --docdir=/usr/share/doc/fontconfig-2.12.1 &&

To test the results, issue: make check.

Now, as the root user:

make install

If you did not remove the --disable-docs parameter from the configure command, you can install the pre-generated documentation by using the following commands as the root user:

install -v -dm755 \
        /usr/share/{man/man{3,5},doc/fontconfig-2.12.1/fontconfig-devel} &&
install -v -m644 fc-*/*.1         /usr/share/man/man1 &&
install -v -m644 doc/*.3          /usr/share/man/man3 &&
install -v -m644 doc/fonts-conf.5 /usr/share/man/man5 &&
install -v -m644 doc/fontconfig-devel/* \
                                  /usr/share/doc/fontconfig-2.12.1/fontconfig-devel &&
install -v -m644 doc/*.{pdf,sgml,txt,html} \

Command Explanations

sed ...: Fix a conflict in names caused by changes to a glibc-2.25 header file.

--disable-docs: This switch avoids building the documentation (the release tarball includes pre-generated documentation).

Configuring Fontconfig

Config Files

/etc/fonts/*, /etc/fonts/conf.d/* and /usr/share/fontconfig/conf.avail/*

Configuration Information

The main configuration file for Fontconfig is /etc/fonts/fonts.conf. Generally you do not want to edit this file. It will also read /etc/fonts/local.conf and any files in /etc/fonts/conf.d. To put a new font directory in the configuration, create (or update) the /etc/fonts/local.conf file with your local information or add a new file in /etc/fonts/conf.d. The default location of fonts in Fontconfig is:

  • /usr/share/fonts

  • ~/.local/share/fonts

  • ~/.fonts (this is now deprecated, but for the moment it still works)

Fontconfig also ships many example configuration files in the /usr/share/fontconfig/conf.avail directory. Symlinking specific files to /etc/fonts/conf.d will enable them. The default setup is generally good enough for most users. See /etc/fonts/conf.d/README for a description of the configuration files.

More information about configuring Fontconfig can be found in the user's manual in file:///usr/share/doc/fontconfig-2.12.1/fontconfig-user.html


Installed Programs: fc-cache, fc-cat, fc-list, fc-match, fc-pattern, fc-query, fc-scan and fc-validate
Installed Library:
Installed Directories: /etc/fonts, /usr/include/fontconfig, /usr/share/doc/fontconfig-2.12.1, /usr/share/fontconfig, /usr/share/xml/fontconfig and /var/cache/fontconfig

Short Descriptions


is used to create font information caches.


is used to read font information caches.


is used to create font lists.


is used to match available fonts, or find fonts that match a given pattern.


is used to parse pattern (empty pattern by default) and show the parsed result.


is used to query fonts files and print resulting patterns.


is used to scan font files and directories, and print resulting patterns.


is used to validate font files.

contains functions used by the Fontconfig programs and also by other programs to configure or customize font access.

Last updated on 2017-02-17 12:03:14 -0600