atfa 发表于 2004-3-9 12:20:37

GTK2的程序不能现实中文粗体/斜体,应该怎么办啊?

我还没有安装任何的补丁,通过一些配置,界面已经非常的好看了,但是GTK2的程序没有粗体是一个遗憾,请大家帮忙啊。

Neo.K 发表于 2004-3-9 12:56:13

install firefly's libXft2,and modify your fonts.conf ...look at firefly's local.conf example...

cobranail 发表于 2004-3-9 13:37:59

最简单的办法就是自己改一个粗体出来,用pfaeditor,很方便,只要改字体族就可以了

Cure 发表于 2004-3-9 14:35:14

Re: GTK2的程序不能现实中文粗体斜体,应该怎么办啊?

我还没有安装任何的补丁,通过一些配置,界面已经非常的好看了,但是GTK2的程序没有粗体是一个遗憾,请大家帮忙啊。

Projects.LinuXP.Howtos.FontConfig
---------------------------------
Eric Hsu<[email protected]>
----------------------------
04.03.09.14:15.Eric
-------------------

给大家提供一个个人认为最自然的基于配置的方法:

1. 请先安装一种黑/粗体, 比如 SimHei (打印效果很好, 不过屏幕效果不好), 可以在
这里 (感谢提供这些字体的朋友:-D ) 挑一种你喜欢的黑/粗体.

2. 编辑这个文件: /etc/fonts/local.conf (看这个文件头的注释, 我们可以注意到, 这才
是系统 *推荐的* 进行自定义配置的地方, 而 /etc/fonts/fonts.conf 请尽量不要动, 理
由呢, 还是随个人理解和喜欢了). 在里面添加很简单的一点配置, 那就是, 告诉系统: 当
你遇到任何应用程序要求显示粗/黑体时, 请使用我指定的粗/黑体字体进行显示.

为了让大家更好地理解后面要添加的一点点配置, 这里需要引进一个小概念, 那就是字体的
"重量" (weight), 很显然, 粗/黑体的 "重量" > 普通字体的 "重量".

好了, 我们上面那段告诉系统要做的事的表达 - "当你遇到任何应用程序要求显示粗/黑体
时, 请使用我指定的粗/黑体字体进行显示" - 就可以转换成下面这种说法:

当你遇到任何应用程序对字体的重量 (weight) 请求大于中等 (普通字体的重量 = medium)
时, 请使用我指定的粗/黑体字体进行显示.

好, 最终就是把这句 "要求" 写到 /etc/fonts/local.conf 里面, 我们在 "<fontconfig>
</fontconfig>" 的中间添加这么一段, 假设我们已经配置好普通中文字体用的是 SimSun,
黑体则用 SimHei 为例:


<fontconfig>
<!-- 添加开始 -->
      <!-- 匹配开始 -->
      <match>
                <!-- 测试开始 -->
                <!-- 测试一开始: 有请求 "重量 (weight)" 大于 (more) 普通字体重量
                (medium) 的字体吗? -->
                <test target="pattern" name="weight" compare="more">
                        <const>medium</const>
                </test>
                <!-- 测试一结束 -->
                <!-- 测试二开始: 这些字体是 SimSun 吗? 英文字体一般有黑体, 所以
                我们的目标只是替换用 SimSun 显示的中文 -->
                <test name="family" compare="eq">
                        <string>SimSun</string>
                </test>
                <!-- 测试二结束 -->
                <!-- 测试结束 -->
                <!-- 如果以上两个测试都通过, 也就是满足该条件: 有以 SimSun 显示
                的字体需要粗/黑体效果, 则: -->
                <!-- 系统动作开始 -->
                <!-- 用 SimHei 来显示这些字 -->
                <edit name="family" mode="assign">
                        <string>SimHei</string>
                </edit>
                <!-- 系统动作结束 -->
      </match>
      <!-- 匹配结束 -->
<!-- 添加结束 -->
<fontconfig>


以上所有 <!-- --> 里的东西都是注释而已, 不喜欢的话可以全部删掉.

我现在用的是方正大黑, 效果如图.

http://www.linuxfans.org/nuke/modules/Forums/files/Screenshot_156.jpg

atfa 发表于 2004-3-9 14:52:48

异常感谢Cure兄,可是我怎么发现一点效果都没有呢?

我用的SimHei,这个字体和SimSun.ttf都在一个目录里面

Cure 发表于 2004-3-9 16:24:15

异常感谢Cure兄,可是我怎么发现一点效果都没有呢?

我用的SimHei,这个字体和SimSun.ttf都在一个目录里面

My pleasure :)

我上文说了, simhei 的 *屏幕效果* 不好. 我用的是方正大黑, 极其黑的一个, 那个链接上记得还有超黑和粗黑, 跟炭一样的, 不妨试试. 遍历一遍之后, 我发现还是大黑的效果好.

atfa 发表于 2004-3-9 17:03:20

经过研究,我发现是这个问题:


        <match target="pattern">
                <!-- check to see if the pattern requested > "medium" -->
                <test target="pattern" name="weight" compare="more">
                        <int>100</int>
                </test>
                <test name="family" compare="eq">
                        <string>SimSun</string>
                </test>
                <edit name="weight" mode="assign">
                        <int>200</int>
                </edit>
                <edit name="family" mode="assign">
                        <string>FZHei-B01S</string>
                </edit>
                                                       
        </match>


看第一行,我发现match后面一定要使用target="pattern":
<match target="pattern">

cathayan 发表于 2004-3-9 20:59:55

不错,早听说过这种方法,今天才会用。起码能看到效果了。

superhu 发表于 2004-3-11 12:27:14

我照着做了,为什么还是显示不出粗体来?

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- /etc/fonts/local.conf file for local customizations -->
<fontconfig>
<!--
Enable sub-pixel rendering
        <match target="font">
                <edit name="rgba" mode="assign"><const>rgb</const></edit>
        </match>
-->

      <match>
                <test target="pattern" name="weight" compare="more">
                        <const>medium</const>
                </test>
                <test name="family" compare="eq">
                        <string>SimSun</string>
                </test>

                <edit name="family" mode="assign">
                        <string>FZCuYuan-M03S</string>
                </edit>
      </match>

</fontconfig>

cathayan 发表于 2004-3-11 12:41:15

我是照ATFA的做法,是可以的。

superhu 发表于 2004-3-11 12:57:09

这个方法我以前就试过了,但是没有成功,但看到这个贴子又试了一次,结果还是失败了。呵呵,估计是自己哪里没弄好吧。

Cure 发表于 2004-3-11 15:41:45

失败的朋友请注意: 这个方法以及配置文件的写法是肯定正确的 (为了这几行东西, 我看了包括官方 fontconfig 官方手册在内的许多文档, 完全靠自己弄明白的 :wink: ), 不成功的 *可能* 原因在于 -- 或许你用过一些美化包? 这些美化包通常会修改你的 font.conf 文件, 包括修改 fontconfig 系统本身, 所以, 之所以同样的配置会出不一样的结果, 至少因为: 我们的系统本身的配置就不一样:)

superhu 发表于 2004-3-11 15:49:23

呵呵,我没有说你的是错的啊,我觉得本来就应该是这样的,只是不知道为什么就是不行。类似的方法我以前就试过,但是也失败了:)美化包我是没有装过,呵呵,以后等我什么时候重装系统了再试吧。

atfa 发表于 2004-3-12 00:32:15

superhu,
1.你安装了FZCuYuan-M03S没有先?
2.你的方正字体加入了path没有?
3.你用了firefly的美化包没有?我没有用,我完全是用debian的官方网站下载的。



另外,看到论坛里面有人找到了mac的英文字体,很稀饭,哪里有下载啊 :mrgreen:

superhu 发表于 2004-3-12 09:36:37

对了,我想起来了。本来我已经美化好了,只是不能显示粗体。上次在论坛上看见有人说wending不错,就emerge 了一下,发现不好看,然后就没去管它了,会不会是那个原因?
页: [1] 2
查看完整版本: GTK2的程序不能现实中文粗体/斜体,应该怎么办啊?