- 论坛徽章:
- 0
|
linux下的中文字体确实是一个比较令人头大的地方,尤其是在gentoo下,每次编译过fontconfig后总是会出一点状况,那么为了长期稳定使用自己设置好的中文字体,那么除了把配置文件放在用户本地目录下外,另一个办法就是把文件备份。中文字体用simsun.ttf等。
在用户本地目录下~/.fonts.conf
?xml version="1.0"?>
!DOCTYPE fontconfig SYSTEM "fonts.dtd">
fontconfig>
alias>
family>serif/family>
prefer>
family>Tahoma/family>
family>SimSun/family>
family>Bitstream Vera Serif/family>
/prefer>
/alias>
alias>
family>sans-serif/family>
prefer>
family>Tahoma/family>
family>SimSun/family>
family>Bitstream Vera Sans/family>
/prefer>
/alias>
alias>
family>monospace/family>
prefer>
family>Tahoma/family>
family>SimSun/family>
family>Bitstream Vera Sans Mono/family>
/prefer>
/alias>
match target="font" >
edit mode="assign" name="rgba" >
const>none/const>
/edit>
/match>
match target="font" >
edit mode="assign" name="hinting" >
bool>true/bool>
/edit>
/match>
match target="font" >
edit mode="assign" name="hintstyle" >
const>hintmedium/const>
/edit>
/match>
match target="font" >
edit mode="assign" name="antialias" >
bool>false/bool>
/edit>
/match>
/fontconfig>
在/etc/fonts/目录下:
/etc/fonts/fonts.conf
?xml version="1.0"?>
!DOCTYPE fontconfig SYSTEM "fonts.dtd">
fontconfig>
dir>/usr/share/fonts/dir>
dir>/usr/local/share/fonts/dir>
dir>~/.fonts/dir>
match target="pattern">
test qual="any" name="family">
string>mono/string>
/test>
edit name="family" mode="assign">
string>monospace/string>
/edit>
/match>
match target="pattern">
test qual="any" name="family">
string>sans serif/string>
/test>
edit name="family" mode="assign">
string>sans-serif/string>
/edit>
/match>
match target="pattern">
test qual="any" name="family">
string>sans/string>
/test>
edit name="family" mode="assign">
string>sans-serif/string>
/edit>
/match>
include ignore_missing="yes">conf.d/include>
cachedir>/var/cache/fontconfig/cachedir>
cachedir>~/.fontconfig/cachedir>
config>
blank>
int>0x0020/int>
int>0x00A0/int>
int>0x00AD/int>
int>0x034F/int>
int>0x0600/int>
int>0x0601/int>
int>0x0602/int>
int>0x0603/int>
int>0x06DD/int>
int>0x070F/int>
int>0x115F/int>
int>0x1160/int>
int>0x1680/int>
int>0x17B4/int>
int>0x17B5/int>
int>0x180E/int>
int>0x2000/int>
int>0x2001/int>
int>0x2002/int>
int>0x2003/int>
int>0x2004/int>
int>0x2005/int>
int>0x2006/int>
int>0x2007/int>
int>0x2008/int>
int>0x2009/int>
int>0x200A/int>
int>0x200B/int>
int>0x200C/int>
int>0x200D/int>
int>0x200E/int>
int>0x200F/int>
int>0x2028/int>
int>0x2029/int>
int>0x202A/int>
int>0x202B/int>
int>0x202C/int>
int>0x202D/int>
int>0x202E/int>
int>0x202F/int>
int>0x205F/int>
int>0x2060/int>
int>0x2061/int>
int>0x2062/int>
int>0x2063/int>
int>0x206A/int>
int>0x206B/int>
int>0x206C/int>
int>0x206D/int>
int>0x206E/int>
int>0x206F/int>
int>0x2800/int>
int>0x3000/int>
int>0x3164/int>
int>0xFEFF/int>
int>0xFFA0/int>
int>0xFFF9/int>
int>0xFFFA/int>
int>0xFFFB/int>
/blank>
rescan>
int>30/int>
/rescan>
/config>
/fontconfig>
/etc/fonts/fonts.dtd
!ELEMENT fontconfig (dir |
cache |
cachedir |
include |
config |
selectfont |
match |
alias)* >
!ELEMENT dir (#PCDATA)>
!ATTLIST dir xml:space (default|preserve) 'preserve'>
!ELEMENT cache (#PCDATA)>
!ATTLIST cache xml:space (default|preserve) 'preserve'>
!ELEMENT cachedir (#PCDATA)>
!ATTLIST cachedir xml:space (default|preserve) 'preserve'>
!ELEMENT include (#PCDATA)>
!ATTLIST include
ignore_missing (no|yes) "no"
xml:space (default|preserve) "preserve">
!ELEMENT config (blank|rescan)*>
!ELEMENT blank (int)*>
...
...
...
-->
!ELEMENT rescan (int)>
!ELEMENT selectfont (rejectfont | acceptfont)* >
!ELEMENT rejectfont (glob | pattern)*>
!ELEMENT acceptfont (glob | pattern)*>
!ELEMENT glob (#PCDATA)>
!ELEMENT pattern (patelt)*>
!ENTITY % constant 'int|double|string|matrix|bool|charset|const'>
!ELEMENT patelt (%constant;)*>
!ATTLIST patelt
name CDATA #REQUIRED>
!ELEMENT alias (family*, prefer?, accept?, default?)>
!ATTLIST alias
binding (weak|strong|same) "weak">
!ELEMENT prefer (family)*>
!ELEMENT accept (family)*>
!ELEMENT default (family)*>
!ELEMENT family (#PCDATA)>
!ATTLIST family xml:space (default|preserve) 'preserve'>
!ENTITY % expr 'int|double|string|matrix|bool|charset
|name|const
|or|and|eq|not_eq|less|less_eq|more|more_eq|contains|not_contains
|plus|minus|times|divide|not|if|floor|ceil|round|trunc'>
!ELEMENT match (test*, edit*)>
!ATTLIST match
target (pattern|font|scan) "pattern">
!ELEMENT test (%expr;)*>
!ATTLIST test
qual (any|all|first|not_first) "any"
name CDATA #REQUIRED
target (pattern|font|default) "default"
compare (eq|not_eq|less|less_eq|more|more_eq|contains|not_contains) "eq">
!ELEMENT edit (%expr;)*>
!ATTLIST edit
name CDATA #REQUIRED
mode (assign|assign_replace|prepend|append|prepend_first|append_last) "assign"
binding (weak|strong|same) "weak">
!ELEMENT int (#PCDATA)>
!ATTLIST int xml:space (default|preserve) 'preserve'>
!ELEMENT double (#PCDATA)>
!ATTLIST double xml:space (default|preserve) 'preserve'>
!ELEMENT string (#PCDATA)>
!ATTLIST string xml:space (default|preserve) 'preserve'>
!ELEMENT matrix (double,double,double,double)>
!ELEMENT bool (#PCDATA)>
!ELEMENT charset (#PCDATA)>
!ATTLIST charset xml:space (default|preserve) 'preserve'>
!ELEMENT name (#PCDATA)>
!ATTLIST name xml:space (default|preserve) 'preserve'>
!ELEMENT const (#PCDATA)>
!ATTLIST const xml:space (default|preserve) 'preserve'>
!ELEMENT or (%expr;)*>
!ELEMENT and (%expr;)*>
!ELEMENT eq ((%expr;), (%expr;))>
!ELEMENT not_eq ((%expr;), (%expr;))>
!ELEMENT less ((%expr;), (%expr;))>
!ELEMENT less_eq ((%expr;), (%expr;))>
!ELEMENT more ((%expr;), (%expr;))>
!ELEMENT more_eq ((%expr;), (%expr;))>
!ELEMENT contains ((%expr;), (%expr;))>
!ELEMENT not_contains ((%expr;), (%expr;))>
!ELEMENT plus (%expr;)*>
!ELEMENT minus (%expr;)*>
!ELEMENT times (%expr;)*>
!ELEMENT divide (%expr;)*>
!ELEMENT not (%expr;)>
!ELEMENT if ((%expr;), (%expr;), (%expr;))>
!ELEMENT floor (%expr;)>
!ELEMENT ceil (%expr;)>
!ELEMENT round (%expr;)>
!ELEMENT trunc (%expr;)>
/etc/fonts/local.conf
match target="pattern">
edit name="dpi" mode="assign">
double>96/double>
/edit>
/match>
在/etc/fonts/conf.d/下有很多链接,整理出需要的如下:
10-no-sub-pixel.conf 20-unhint-small-vera.conf 50-user.conf
10-sub-pixel-bgr.conf 40-generic.conf 51-local.conf
10-unhinted.conf 49-sansserif.conf
经过这样的设置后不但系统的中文显示没有任何问题,而且firefox的中文显示也和系统的完全统一了。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/33031/showart_730084.html |
|