LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1092|回复: 3

关于字体设置fonts.conf文件,高手贴一下让大家学习一下吧!

[复制链接]
发表于 2006-7-12 22:29:39 | 显示全部楼层 |阅读模式
学习了两天fontconfig的文档,又看了Ubuntu中文Wiki上的一篇文章“使用XP字体美化汉字”,地址如下:
http://wiki.ubuntu.org.cn/%E4%BD ... 6%E6%B1%89%E5%AD%97

版权问题就不说了,D版Windows也用了这么久了,只是我按照上文的方法操作后,效果仍然不很满意,虽然比原来是强了一些,主要体现在:我的Firefox里的网页内容多数都很不错了,只是在粗体下的英文显示很差,还有一些网页指定了用sans字体的显示的也不好(我的Firefox首选项里设置的字体是SimSun)

最后说一下我的“系统-首选项-字体”中的设置:
应用程序字体:SimSun
文档字体:SimSun
桌面字体:Tahoma
窗口标题字体:Sans bold (对了,窗口标题也不太好看,和Firefox里的菜单一样,莫非Firefox的菜单也是用的Sans?如果是这样,只要解决Sans字体的问题就OK了!)
等宽字体:Monospace

照“使用XP字体美化汉字”一文修改得到的fonts.conf如下,有高手也贴一下这个配置文件吧,让我们学习一下^_^

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/fonts.conf file to configure system font access -->
<fontconfig>

<!--
        DO NOT EDIT THIS FILE.
        IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.
        LOCAL CHANGES BELONG IN 'local.conf'.

        The intent of this standard configuration file is to be adequate for
        most environments.  If you have a reasonably normal environment and
        have found problems with this configuration, they are probably
        things that others will also want fixed.  Please submit any
        problems to the fontconfig bugzilla system located at fontconfig.org

        Note that the normal 'make install' procedure for fontconfig is to
        replace any existing fonts.conf file with the new version.  Place
        any local customizations in local.conf which this file references.

        Keith Packard
-->

<!-- Font directory list -->

        <dir>/usr/share/fonts</dir>
        <dir>/usr/share/X11/fonts</dir> <dir>/usr/local/share/fonts</dir>
        <dir>~/.fonts</dir>

<!--
  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>
        </match>

<!--
  Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
-->
        <match target="pattern">
                <test qual="any" name="family">
                        <string>sans serif</string>
                </test>
                <edit name="family" mode="assign">
                        <string>sans-serif</string>
                </edit>
        </match>

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

<!--
  Mark common families with their generics so we'll get
  something reasonable
-->

<!--
  Serif faces
-->
        <alias>
                <family>Tahoma</family>
                <family>SimSun</family>
                <family>Simsun</family>

                <family>DejaVu Serif</family>
                <family>Bitstream Vera Serif</family>
                <family>Times New Roman</family>
                <family>Thorndale AMT</family>
                <family>Times</family>
                <family>Nimbus Roman No9 L</family>
                <family>Luxi Serif</family>
                <family>Kochi Mincho</family>
                <family>AR PL SungtiL GB</family>
                <family>AR PL Mingti2L Big5</family>
                <family>MS 明朝</family>
                <family>Baekmuk Batang</family>
                <family>FreeSerif</family>
                <family>MgOpen Canonica</family>
                <default><family>serif</family></default>
        </alias>
<!--
  Sans-serif faces
-->
        <alias>
                <family>Tahoma</family>
                <family>SimSun</family>
                <family>Simsun</family>

                <family>DejaVu Sans</family>
                <family>Bitstream Vera Sans</family>
                <family>Helvetica</family>
                <family>Arial</family>
                <family>Verdana</family>
                <family>Albany AMT</family>
                <family>Nimbus Sans L</family>
                <family>Luxi Sans</family>
                <family>Kochi Gothic</family>
                <family>AR PL KaitiM GB</family>
                <family>AR PL KaitiM Big5</family>
                <family>MS ゴシック</family>
                <family>Baekmuk Dotum</family>
                <family>SimSun</family>
                <family>FreeSans</family>
                <family>MgOpen Moderna</family>
                <default><family>sans-serif</family></default>
        </alias>
<!--
  Monospace faces
-->
        <alias>
                <family>DejaVu Sans Mono</family>
                <family>Bitstream Vera Sans Mono</family>
                <family>NSimSun</family>
                <family>SimSun</family>
                <family>Simsun</family>

                <family>Courier</family>
                <family>Courier New</family>
                <family>Andale Mono</family>
                <family>Luxi Mono</family>
                <family>Cumberland AMT</family>
                <family>Nimbus Mono L</family>
                <family>NSimSun</family>
                <family>FreeMono</family>
                <default><family>monospace</family></default>
        </alias>
<!--
  If the font still has no generic name, add sans-serif
-->
        <match target="pattern">
                <test qual="all" name="family" compare="not_eq">
                        <string>sans-serif</string>
                </test>
                <test qual="all" name="family" compare="not_eq">
                        <string>serif</string>
                </test>
                <test qual="all" name="family" compare="not_eq">
                        <string>monospace</string>
                </test>
                <edit name="family" mode="append_last">
                        <string>sans-serif</string>
                </edit>
        </match>

<!--
  Prefer "Standard Symbols L" as Symbol font
-->
        <match target="pattern">
                <test name="family">
                        <string>Symbol</string>
                </test>
                <edit name="family" mode="prepend" binding="same">
                        <string>Standard Symbols L</string>
                </edit>
        </match>

<!--
  URW provides metric and shape compatible fonts for these 3 Adobe families.
  commented out, see below
        <alias>
          <family>Times</family>
          <accept><family>Nimbus Roman No9 L</family></accept>
        </alias>
        <alias>
          <family>Helvetica</family>
          <accept><family>Nimbus Sans L</family></accept>
        </alias>
        <alias>
          <family>Courier</family>
          <accept><family>Nimbus Mono L</family></accept>
        </alias>
  -->

<!--
AMT provides metric and shape compatible fonts for these three web font
families.
-->
        <alias>
                <family>Times New Roman</family>
                <accept><family>Thorndale AMT</family></accept>
        </alias>
        <alias>
                <family>Arial</family>
                <accept><family>Albany AMT</family></accept>
        </alias>
        <alias>
                <family>Courier New</family>
                <accept><family>Cumberland AMT</family></accept>
        </alias>

        <alias>
          <family>ZapfDingbats</family>
          <accept><family>Dingbats</family></accept>
        </alias>

        <alias>
          <family>Symbol</family>
          <accept><family>Open Symbols L</family></accept>
        </alias>

<!--
  URW provides metric and shape compatible fonts for these 3 Adobe families.
  However, th ese fonts are quite ugly and do not render well on-screen,
  so we avoid matching them if the application said `anymetrics'; in that
  case, a more generic font with different metrics but better appearance
  will be used.
  -->
        <match target="pattern">
                <test name="family">
                        <string>Times</string>
                </test>
                <test name="anymetrics" qual="all" compare="not_eq">
                        <bool>true</bool>
                </test>
                <edit name="family" mode="append">
                        <string>Nimbus Roman No9 L</string>
                </edit>
        </match>
        <match target="pattern">
                <test name="family">
                        <string>Helvetica</string>
                </test>
                <test name="anymetrics" qual="all" compare="not_eq">
                        <bool>true</bool>
                </test>
                <edit name="family" mode="append">
                        <string>Nimbus Sans L</string>
                </edit>
        </match>
        <match target="pattern">
                <test name="family">
                        <string>Courier</string>
                </test>
                <test name="anymetrics" qual="all" compare="not_eq">
                        <bool>true</bool>
                </test>
                <edit name="family" mode="append">
                        <string>Nimbus Mono L</string>
                </edit>
        </match>

<!--
  Do the same with the AMT family and the msttcorefonts, but add
  the msttcorefonts as an alternative as well.
  -->
        <match target="pattern">
                <test name="family">
                        <string>Times New Roman</string>
                        <string>Thorndale AMT</string>
                        <string>Thorndale</string>
                </test>
                <test name="anymetrics" qual="all" compare="not_eq">
                        <bool>true</bool>
                </test>
                <edit name="family" mode="append">
                        <string>Times New Roman</string>
                        <string>Nimbus Roman No9 L</string>
                </edit>
        </match>
        <match target="pattern">
                <test name="family">
                        <string>Arial</string>
                        <string>Albany AMT</string>
                        <string>Albany</string>
                        <string>Verdana</string>
                </test>
                <test name="anymetrics" qual="all" compare="not_eq">
                        <bool>true</bool>
                </test>
                <edit name="family" mode="append">
                        <string>Arial</string>
                        <string>Nimbus Sans L</string>
                </edit>
        </match>
        <match target="pattern">
                <test name="family">
                        <string>Courier New</string>
                        <string>Cumberland AMT</string>
                        <string>Cumberland</string>
                </test>
                <test name="anymetrics" qual="all" compare="not_eq">
                        <bool>true</bool>
                </test>
                <edit name="family" mode="append">
                        <string>Courier New</string>
                        <string>Nimbus Mono L</string>
                </edit>
        </match>

<!--
  Some Asian fonts misadvertise themselves as monospaced when
  in fact they are dual-spaced (half and full).  This makes
  FreeType very confused as it forces all widths to match.
  Undo this magic by disabling the width forcing code -->
        <match target="font">
                <test name="family"><string>GulimChe</string></test>
                <edit name="globaladvance"><bool>false</bool></edit>
        </match>

        <match target="font">
                <test name="family"><string>DotumChe</string></test>
                <edit name="globaladvance"><bool>false</bool></edit>
        </match>

        <match target="font">
                <test name="family"><string>BatangChe</string></test>
                <edit name="globaladvance"><bool>false</bool></edit>
        </match>

        <match target="font">
                <test name="family"><string>GungsuhChe</string></test>
                <edit name="globaladvance"><bool>false</bool></edit>
        </match>

<!--
        The Bitstream Vera fonts have GASP entries suggesting that hinting be
        disabled below 8 ppem, but FreeType ignores those, preferring to use
        the data found in the instructed hints.  The initial Vera release
        didn't include the right instructions in the 'prep' table. Fix this
        by disabling hinting manually at smaller sizes (< 8ppem)
-->

        <match target="font">
                <test name="family">
                        <string>Bitstream Vera Sans</string>
                </test>
                <test name="pixelsize" compare="less">
                        <double>7.5</double>
                </test>
                <edit name="hinting">
                        <bool>false</bool>
                </edit>
        </match>

        <match target="font">
                <test name="family">
                        <string>Bitstream Vera Serif</string>
                </test>
                <test name="pixelsize" compare="less">
                        <double>7.5</double>
                </test>
                <edit name="hinting">
                        <bool>false</bool>
                </edit>
        </match>

        <match target="font">
                <test name="family">
                        <string>Bitstream Vera Sans Mono</string>
                </test>
                <test name="pixelsize" compare="less">
                        <double>7.5</double>
                </test>
                <edit name="hinting">
                        <bool>false</bool>
                </edit>
        </match>

<!--
  Load per-user customization file
-->
        <include ignore_missing="yes">~/.fonts.conf</include>

<!--
  Load local system customization file
-->
        <include ignore_missing="yes">conf.d</include>
        <include ignore_missing="yes">local.conf</include>

<!--
  Load local ubuntu-specific language custom file
-->
        <include ignore_missing="yes">language-selector.conf</include>

<!--
  Provide required aliases for standard names
-->
        <alias>
                <family>serif</family>
                <prefer>
                        <family>Tahoma</family>
                        <family>SimSun</family>
                        <family>Simsun</family>

                        <family>DejaVu Serif</family>
                        <family>Bitstream Vera Serif</family>
                        <family>Times New Roman</family>
                        <family>Thorndale AMT</family>
                        <family>Luxi Serif</family>
                        <family>Nimbus Roman No9 L</family>
                        <family>Times</family>
                        <family>Frank Ruehl</family>
                        <family>FreeSerif</family>
                        <family>MgOpen Canonica</family>
                        <family>Kochi Mincho</family>
                        <family>AR PL SungtiL GB</family>
                        <family>AR PL Mingti2L Big5</family>
                        <family>MS 明朝</family>
                        <family>Baekmuk Batang</family>
                </prefer>
        </alias>
        <alias>
                <family>sans-serif</family>
                <prefer>
                        <family>Tahoma</family>
                        <family>SimSun</family>
                        <family>Simsun</family>

                        <family>DejaVu Sans</family>
                        <family>Bitstream Vera Sans</family>
                        <family>Verdana</family>
                        <family>Arial</family>
                        <family>Albany AMT</family>
                        <family>Luxi Sans</family>
                        <family>Nimbus Sans L</family>
                        <family>Helvetica</family>
                        <family>Nachlieli</family>
                        <family>FreeSans</family>
                        <family>MgOpen Moderna</family>
                        <family>Kochi Gothic</family>
                        <family>AR PL KaitiM GB</family>
                        <family>AR PL KaitiM Big5</family>
                        <family>MS ゴシック</family>
                        <family>Baekmuk Dotum</family>
                        <family>SimSun</family>
                </prefer>
        </alias>
        <alias>
                <family>monospace</family>
                <prefer>
                        <family>DejaVu Sans Mono</family>
                        <family>Bitstream Vera Sans Mono</family>
                        <family>NSimSun</family>
                        <family>SimSun</family>
                        <family>Simsun</family>
                        <family>Andale Mono</family>
                        <family>Courier New</family>
                        <family>Cumberland AMT</family>
                        <family>Luxi Mono</family>
                        <family>Nimbus Mono L</family>
                        <family>Courier</family>
                        <family>Miriam Mono</family>
                        <family>FreeMono</family>
                        <family>Kochi Gothic</family>
                        <family>AR PL KaitiM GB</family>
                        <family>Baekmuk Dotum</family>
                </prefer>
        </alias>

<!--
Artificial oblique for fonts without an italic or oblique version
-->

        <match target="font">
                <!-- check to see if the font is roman -->
                <test name="slant">
                        <const>roman</const>
                </test>
                <!-- check to see if the pattern requested non-roman -->
                <test target="pattern" name="slant" compare="not_eq">
                        <const>roman</const>
                </test>
                <!-- multiply the matrix to slant the font -->
                <edit name="matrix" mode="assign">
                        <times>
                                <name>matrix</name>
                                <matrix><double>1</double><double>0.2</double>
                                        <double>0</double><double>1</double>
                                </matrix>
                        </times>
                </edit>
                <!-- pretend the font is oblique now -->
                <edit name="slant" mode="assign">
                        <const>oblique</const>
                </edit>
        </match>

<!--
Synthetic emboldening for fonts that do not have bold face available
-->

        <match target="font">
                <!-- check to see if the font is just regular -->
                <test name="weight" compare="less_eq">
                        <int>100</int>
                </test>
                <!-- check to see if the pattern requests bold -->
                <test target="pattern" name="weight" compare="more_eq">
                        <int>200</int>
                </test>
                <!-- set the embolden flag -->
                <edit name="embolden" mode="assign">
                        <bool>true</bool>
                </edit>
        </match>


        <config>
<!--
  These are the default Unicode chars that are expected to be blank
  in fonts.  All other blank chars are assumed to be broken and
  won't appear in the resulting charsets
-->
                <blank>
                        <int>0x0020</int>        <!-- SPACE -->
                        <int>0x00A0</int>        <!-- NO-BREAK SPACE -->
                        <int>0x00AD</int>        <!-- SOFT HYPHEN -->
                        <int>0x034F</int>        <!-- COMBINING GRAPHEME JOINER -->
                        <int>0x0600</int>        <!-- ARABIC NUMBER SIGN -->
                        <int>0x0601</int>        <!-- ARABIC SIGN SANAH -->
                        <int>0x0602</int>        <!-- ARABIC FOOTNOTE MARKER -->
                        <int>0x0603</int>        <!-- ARABIC SIGN SAFHA -->
                        <int>0x06DD</int>        <!-- ARABIC END OF AYAH -->
                        <int>0x070F</int>        <!-- SYRIAC ABBREVIATION MARK -->
                        <int>0x115F</int>        <!-- HANGUL CHOSEONG FILLER -->
                        <int>0x1160</int>        <!-- HANGUL JUNGSEONG FILLER -->
                        <int>0x1680</int>        <!-- OGHAM SPACE MARK -->
                        <int>0x17B4</int>        <!-- KHMER VOWEL INHERENT AQ -->
                        <int>0x17B5</int>        <!-- KHMER VOWEL INHERENT AA -->
                        <int>0x180E</int>        <!-- MONGOLIAN VOWEL SEPARATOR -->
                        <int>0x2000</int>        <!-- EN QUAD -->
                        <int>0x2001</int>        <!-- EM QUAD -->
                        <int>0x2002</int>        <!-- EN SPACE -->
                        <int>0x2003</int>        <!-- EM SPACE -->
                        <int>0x2004</int>        <!-- THREE-PER-EM SPACE -->
                        <int>0x2005</int>        <!-- FOUR-PER-EM SPACE -->
                        <int>0x2006</int>        <!-- SIX-PER-EM SPACE -->
                        <int>0x2007</int>        <!-- FIGURE SPACE -->
                        <int>0x2008</int>        <!-- PUNCTUATION SPACE -->
                        <int>0x2009</int>        <!-- THIN SPACE -->
                        <int>0x200A</int>        <!-- HAIR SPACE -->
                        <int>0x200B</int>        <!-- ZERO WIDTH SPACE -->
                        <int>0x200C</int>        <!-- ZERO WIDTH NON-JOINER -->
                        <int>0x200D</int>        <!-- ZERO WIDTH JOINER -->
                        <int>0x200E</int>        <!-- LEFT-TO-RIGHT MARK -->
                        <int>0x200F</int>        <!-- RIGHT-TO-LEFT MARK -->
                        <int>0x2028</int>        <!-- LINE SEPARATOR -->
                        <int>0x2029</int>        <!-- PARAGRAPH SEPARATOR -->
                        <int>0x202A</int>        <!-- LEFT-TO-RIGHT EMBEDDING -->
                        <int>0x202B</int>        <!-- RIGHT-TO-LEFT EMBEDDING -->
                        <int>0x202C</int>        <!-- POP DIRECTIONAL FORMATTING -->
                        <int>0x202D</int>        <!-- LEFT-TO-RIGHT OVERRIDE -->
                        <int>0x202E</int>        <!-- RIGHT-TO-LEFT OVERRIDE -->
                        <int>0x202F</int>        <!-- NARROW NO-BREAK SPACE -->
                        <int>0x205F</int>        <!-- MEDIUM MATHEMATICAL SPACE -->
                        <int>0x2060</int>        <!-- WORD JOINER -->
                        <int>0x2061</int>        <!-- FUNCTION APPLICATION -->
                        <int>0x2062</int>        <!-- INVISIBLE TIMES -->
                        <int>0x2063</int>        <!-- INVISIBLE SEPARATOR -->
                        <int>0x206A</int>        <!-- INHIBIT SYMMETRIC SWAPPING -->
                        <int>0x206B</int>        <!-- ACTIVATE SYMMETRIC SWAPPING -->
                        <int>0x206C</int>        <!-- INHIBIT ARABIC FORM SHAPING -->
                        <int>0x206D</int>        <!-- ACTIVATE ARABIC FORM SHAPING -->
                        <int>0x206E</int>        <!-- NATIONAL DIGIT SHAPES -->
                        <int>0x206F</int>        <!-- NOMINAL DIGIT SHAPES -->
                        <int>0x3000</int>        <!-- IDEOGRAPHIC SPACE -->
                        <int>0x3164</int>        <!-- HANGUL FILLER -->
                        <int>0xFEFF</int>        <!-- ZERO WIDTH NO-BREAK SPACE -->
                        <int>0xFFA0</int>        <!-- HALFWIDTH HANGUL FILLER -->
                        <int>0xFFF9</int>        <!-- INTERLINEAR ANNOTATION ANCHOR -->
                        <int>0xFFFA</int>        <!-- INTERLINEAR ANNOTATION SEPARATOR -->
                        <int>0xFFFB</int>        <!-- INTERLINEAR ANNOTATION TERMINATOR -->
                </blank>
<!--
  Rescan configuration every 30 seconds when FcFontSetList is called
-->
                <rescan>
                        <int>30</int>
                </rescan>
        </config>

</fontconfig>
 楼主| 发表于 2006-7-12 22:30:50 | 显示全部楼层
不好意思,长了点,大家多包涵!
回复 支持 反对

使用道具 举报

发表于 2006-7-12 22:50:38 | 显示全部楼层
也许你会更喜欢这个:
http://blog.osxcn.com/ubuntu-stheiti.html

一般不推荐修改font.conf
回复 支持 反对

使用道具 举报

发表于 2006-8-9 20:22:40 | 显示全部楼层
我只拷贝了simsun.ttc,然后安装了firefly的补丁。我的.fonts.conf文件是这样的

  1. <?xml version="1.0"?>
  2. <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
  3. <fontconfig>
  4. <!--
  5. Small font needn't use antialias
  6. -->
  7.         <match target="font">
  8.             <test  name="lang" compare="contains">
  9.                 <string>zh-cn</string>
  10.                 <string>zh-tw</string>
  11.             </test>
  12.             <test qual="any" name="pixelsize" compare="more_eq">
  13.                 <double>11</double>
  14.             </test>
  15.             <test qual="any" name="pixelsize" compare="less_eq">
  16.                 <double>15</double>
  17.             </test>
  18.             <edit name="antialias" mode="assign">
  19.                 <bool>false</bool>
  20.             </edit>
  21.         </match>

  22. <!--
  23. Add by firefly@firefly.idv.tw
  24. Artificial bold for fonts without a bold version
  25. -->
  26.         <match target="font">
  27.                 <!-- check to see if the pattern requested > "medium" -->
  28.                 <test target="pattern" name="weight" compare="more">
  29.                         <const>medium</const>
  30.                 </test>
  31.                 <!-- pretend the font is bold now -->
  32.                 <edit name="weight" mode="assign">
  33.                         <const>bold</const>
  34.                 </edit>
  35.         </match>

  36. </fontconfig>       
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表