分页: 1 / 1

8.04 : 用Windows字体美化 ,flash中文显示正常。

发表于 : 2008-05-24 22:33
hugebrush
要经过两个步骤:
1 用Windows字体美化
2 解决字体美化后flash不能显示中文问题

具体如下:
1 用Windows字体美化。
1.1 在/usr/share/fonts/truetype下新建一个文件夹”windows“(文件夹名称随意,我这里取名为”windows“)。
1.2 从Windows下拷贝simsun.ttc、tahoma.ttf、tahomabd.ttf三个字体文件到新建的windows文件夹。(我的windows系统为windows 2003,宋体字体文件为simsun.ttc,好像windows xp中宋体字体文件为simsun.ttf。)
1.3 在新建文件夹下依次执行mkfontscale、 mkfontdir。
1.4 执行fc-cache /usr/share/fonts/truetype/windows。
1.5 在/etc/fonts/conf.avail下新建一字体配置文件69-language-selector-windows.conf,内容如下:

代码: 全选

<fontconfig>
  <alias>
    <family>serif</family>
    <prefer>
      <family>Bitstream Vera Serif</family>
      <family>SimSun</family>
      <family>DejaVu Serif</family>
    </prefer>
  </alias>
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>Bitstream Vera Sans</family>
      <family>SimSun</family>
      <family>DejaVu Sans</family>
    </prefer>
  </alias>
  <alias>
    <family>monospace</family>
    <prefer>
      <family>Bitstream Vera Sans Mono</family>
      <family>DejaVu Sans Mono</family>
      <family>SimSun</family>
    </prefer>
  </alias>
  <match target="pattern">
    <test name="family">
      <string>SimSun</string>
      <string>SimSun-18030</string>
    </test>
    <edit binding="strong" mode="prepend" name="family">
      <string>Tahoma</string>
      <string>Verdana</string>
    </edit>
  </match>
</fontconfig>
1.6 删除/etc/fonts/conf.d/69-language-selector-zh-cn.conf(只是一个符号连接)。
1.7 执行“ln -s /etc/fonts/conf.avail/69-language-selector-windows.conf /etc/fonts/conf.d/69-language-selector-zh-cn.conf"。
1.8 右击桌面,选择“更改桌面背景”,在弹出窗口中选择“字体”页,修改“渲染”为“单色”。

经过上述设置后,按“ctrl + alt + backspace"重启动X,会立即发现英文字体漂亮多了。中文字体会感觉和没修改前差不多。这是因为8.04默认配置汉字尺寸在特定范围内的时候,使用文泉驿正黑字体内嵌点阵宋体显示,该点阵宋体和微软宋体显示效果基本没差别。正常使用的文字尺寸就在这个特定范围内,因此,8.04默认的汉子显示效果和windows基本没差别。只有当汉字放大或缩小到一定程度,使用文泉驿正黑字体显示,汉字就变得难看(文泉驿正黑字体不开反锯齿很难看,开了反锯齿又模糊,个人感觉不如其内嵌点阵宋体好看)。

按照上述方法设置后,会带来一个新问题——在firefox中flash不能显示中文。原因是:
因为宋体的西文字符不好看,为了在用微软宋体显示文字时,使用tahoma字体显示其中的西文字符,在上述1.5步骤建立的配置文件中加了这么一段:

代码: 全选

  <match target="pattern">
    <test name="family">
      <string>SimSun</string>
      <string>SimSun-18030</string>
    </test>
    <edit binding="strong" mode="prepend" name="family">
      <string>Tahoma</string>
      <string>Verdana</string>
    </edit>
  </match>
解决方法见下一步。

2 修改/etc/fonts/conf.d/49-sansserif.conf内容如下,解决flash不能显示中文的问题:

代码: 全选

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--
  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>文泉驿正黑</string>
		</edit>
	</match>
</fontconfig>
按“ctrl + alt + backspace"重启动x,flash中文显示就正常了。经过这一步修改后,flash中的汉字会以文泉驿正黑字体显示。

发表于 : 2008-05-27 16:10
heroteng
用不着这么复杂,下个flash 10吧,将里面的*.so 复制到usr/lib/flashplugin-nofree/,(用root权限),我的就是这样子解决的.

[建议]建议加精华区。

发表于 : 2008-05-28 11:09
leemingjun
建议加精华区。

发表于 : 2008-05-31 9:02
sevk
收藏。

发表于 : 2008-06-29 22:19
lotsunhim
我看到收藏起来了!

发表于 : 2008-06-29 23:11
HuntXu
mark :D

发表于 : 2008-07-09 23:50
qkthomas
执行以下命令就可以了,不用window的字体,难看死。

代码: 全选

sudo rm etc/fonts/conf.d/49-sansserif.conf

发表于 : 2008-07-12 12:41
yyisqq
精贴,把falsh显示中文不正确的问题解决了。
谢谢!

发表于 : 2008-07-12 22:09
namco163
ROOT权限如何取得?

发表于 : 2008-07-12 22:13
bones7456
qkthomas 写了:执行以下命令就可以了,不用window的字体,难看死。

代码: 全选

sudo rm etc/fonts/conf.d/49-sansserif.conf
这样就行的...何必这么复杂..

发表于 : 2008-07-21 13:15
myxtt35
heroteng 写了:用不着这么复杂,下个flash 10吧,将里面的*.so 复制到usr/lib/flashplugin-nofree/,(用root权限),我的就是这样子解决的.

flash 10是什么啊,在哪里下载哦

发表于 : 2008-09-13 19:31
kknd
我把外观里面的字体都改成Tahoma了,所以我改成:

代码: 全选

<string>Tahoma</string> 
似乎更好看一点 :D 不会影响外观里面设定的字体。

Re: 8.04 : 用Windows字体美化 ,flash中文显示正常。

发表于 : 2008-11-01 15:37
imlife
很好,解决了!多谢!

Re: 8.04 : 用Windows字体美化 ,flash中文显示正常。

发表于 : 2008-11-22 9:32
intijk
MARK :em04