Checking fontconfig rules

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
 
Line 7: Line 7:
 
* default rules provided by fontconfig upstream,
 
* default rules provided by fontconfig upstream,
 
* rules written by Fedora packagers using our own templates: install [[fontpackages|fontpackages-devel]] and look in ''/usr/share/fontconfig/templates/'',
 
* rules written by Fedora packagers using our own templates: install [[fontpackages|fontpackages-devel]] and look in ''/usr/share/fontconfig/templates/'',
# yum install fontpackages-devel meld
 
$ meld foo.conf /usr/share/fontconfig/templates/bar.conf
 
 
* rules written by Fedora packagers without regard for our templates,
 
* rules written by Fedora packagers without regard for our templates,
 
* rules written by font projects.</ref> and mistakes are common<ref>While trying to:
 
* rules written by font projects.</ref> and mistakes are common<ref>While trying to:
Line 18: Line 16:
 
* compare the output of: <pre>fc-match -s :family=<name>:lang=<loc></pre> in both cases, with ''<name>'' the font family you requested<ref>For example ''sans'', ''serif''…</ref> and ''<loc>'' the target locale<ref>For example ''ja-jp'', ''zh'', etc.</ref>.
 
* compare the output of: <pre>fc-match -s :family=<name>:lang=<loc></pre> in both cases, with ''<name>'' the font family you requested<ref>For example ''sans'', ''serif''…</ref> and ''<loc>'' the target locale<ref>For example ''ja-jp'', ''zh'', etc.</ref>.
 
* if necessary, [[Identifying fonts|identify]] more precisely the problem font,
 
* if necessary, [[Identifying fonts|identify]] more precisely the problem font,
* examine the fontconfig rules shipped with the problem package<ref>Install [[fontpackages|fontpackages-devel]] and look in ''/usr/share/fontconfig/templates/'', to check the default fontconfig patterns used in Fedora.</ref>,
+
* examine the fontconfig rules shipped with the problem package,
 +
  # yum install fontpackages-devel meld
 +
  $ meld foo.conf /usr/share/fontconfig/templates/bar.conf
 
* [https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora report] your findings.
 
* [https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora report] your findings.
  

Latest revision as of 10:01, 11 December 2009

A page of the Fonts Special Interest Group

Fontconfig has a modular design, allowing each font to contribute its own font substitution rules and workarounds, without requiring the maintenance of a large centralised static ruleset. However that also means a single package with broken rules can destabilise font priorities and make them less than awesome.


Our fontconfig rules have many origins[1] and mistakes are common[2]. To help identify and fix them:

  • try to find a packageset that works and packageset that does not
  • compare the output of:
    fc-match -s :family=<name>:lang=<loc>
    in both cases, with <name> the font family you requested[3] and <loc> the target locale[4].
  • if necessary, identify more precisely the problem font,
  • examine the fontconfig rules shipped with the problem package,
 # yum install fontpackages-devel meld
 $ meld foo.conf /usr/share/fontconfig/templates/bar.conf


Notes:

    • default rules provided by fontconfig upstream,
    • rules written by Fedora packagers using our own templates: install fontpackages-devel and look in /usr/share/fontconfig/templates/,
    • rules written by Fedora packagers without regard for our templates,
    • rules written by font projects.
  1. While trying to:
    • workaround KDE/QT fontconfig processing bugs,
    • make sure one's font is the default for some languages,
    • make sure one's font rendering preferences are default for one font,
    … it is very easy to change settings for other fonts and create other unrelated problems.
  2. For example sans, serif
  3. For example ja-jp, zh, etc.


Idea.png
Fonts in Fedora
The Fonts SIG takes loving care of Fedora fonts. Please join this special interest group if you are interested in creating, improving, packaging, or just suggesting a font. Any help will be appreciated.