LinuxSir.cn,穿越时空的Linuxsir!

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

提问:LC_CTYPE对字体的影响

[复制链接]
发表于 2008-10-25 20:40:56 | 显示全部楼层 |阅读模式
我知道,我的这个主题不应该在这个讨论区发问,也许我多google一下也能得到答案!但没办法,Linuxsir上的第一次发帖,发到Archlinux版吧!

我在没有设置LC_CTYPE环境变量的时候gnome-terminal中的字体很漂亮的,但为了使用输入法在设置了LC_CTYPE后,字体变得没有以前的漂亮了!

我想是LC_CTYPE改变了系统字体的选择,怎么解决这种问题?

注:LANG=en_US.utf8

下图中左边的是没有设置时的截图,右边是设置LC_CTYPE=zh_CN.utf8后的截图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2008-10-25 20:45:54 | 显示全部楼层
LC_CTYPE不影响字体,只是设置你输入文字时使用的编码。这个一般没必要设的。

Linux下字体由fonts.conf,gtkrc-2.0(影响GTK程序)等配置文件和窗口管理器(影响窗口字体)共同控制的。
一些桌面环境的一些后台进程也会设置和渲染字体。比如Gnome的gnome-deamon。

By the way,你用的Arch吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-25 20:53:46 | 显示全部楼层
Post by coderoar;1899273
LC_CTYPE不影响字体,只是设置你输入文字时使用的编码。这个一般没必要设的。By the way,你用的Arch吗?

如果LANG不是zh_CN.* 不设置LC_CTYPE的话输入法(包括fcitx, ibus,对于scim没有试过)是没法用的。
我的LANG=en_US.utf8,主要是有的软件的中文化做的不好,用着全英文界面看着比较舒服!^_^

我用的是Arch!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-25 21:01:08 | 显示全部楼层
Post by coderoar;1899273
Linux下字体由fonts.conf,gtkrc-2.0(影响GTK程序)等配置文件和窗口管理器(影响窗口字体)共同控制的。
一些桌面环境的一些后台进程也会设置和渲染字体。比如Gnome的gnome-deamon。

我对比了一下,两种环境,我除了一个设置了LC_CTYPE=zh_CN.utf8外,其它的都没有改动,但这两种情况下字体的显示效果却不一样!

设置了LC_CTYPE后,gnome-terminal中的mn在一起的话是看不清的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2008-10-25 21:32:03 | 显示全部楼层
Post by jqxl0205;1899281
如果LANG不是zh_CN.* 不设置LC_CTYPE的话输入法(包括fcitx, ibus,对于scim没有试过)是没法用的。
我的LANG=en_US.utf8,主要是有的软件的中文化做的不好,用着全英文界面看着比较舒服!^_^

我用的是Arch!



楼主的问题我不懂,没有资格回答。不过我用scim,不设置LC_TYPE可以正常使用,但设置界面是鸟语。
回复 支持 反对

使用道具 举报

发表于 2008-10-25 22:20:39 | 显示全部楼层
晕啊,我不设什么LANG之类的只在rc.conf里设置了LOCALE="en_US.utf8"就一切OK了啦。

你用的gonme吧,我用的openbox。
回复 支持 反对

使用道具 举报

发表于 2008-10-25 22:24:02 | 显示全部楼层
我ibus和scim同时用的,都很好啊
你不设置LC_CTYPE时,ibus从命令行启动时错误输出是什么
回复 支持 反对

使用道具 举报

发表于 2008-10-25 23:32:04 | 显示全部楼层
使用不同的LC_CTYPE会让字体选择顺序不同。

搜索一下,有个命令显示目前字体选择顺序。

一般你使用英文的locale会首选英文字体,而你设置的monotype为英文字体的话,当然也首选这个字体了。但是如果你使用的中文的LC_CTYPE会首选第一个中文字体。如果你的font.conf里面没有定义的话,具体根据什么来选择我是不知道了,如果有定义字体顺序,会使用第一个中文字体。

此问题的解决方法有几种。一是LC_CTYPE不要使用zh,直接en,输入法问题在~/.xprofile里面定义

  1. XMODIFIERS='@im=SCIM'
  2. XIM="scim"
  3. XINPUT="scim"
  4. XIM_PROGRAM="scim -d"
  5. GTK_IM_MODULE="scim"
  6. QT_IM_MODULE="scim"
  7. export XMODIFIERS XIM XINPUT XIM_PROGRAM GTK_IM_MODULE QT_IM_MODULE
复制代码

或者
  1. export XMODIFIERS='@im=fcitx'
  2. export XIM="fcitx"
  3. export XIM_PROGRAM="fcitx -d"
  4. GTK_IM_MODULE="fcitx"
  5. QT_IM_MODULE="fcitx"
  6. export XMODIFIERS XIM XINPUT XIM_PROGRAM GTK_IM_MODULE QT_IM_MODULE
复制代码

无论你什么locale都是可以使用输入法的。

还有一种就是定义每个终端里面字体。设置为一个等宽的英文字体。

你所说的字体会重叠就是因为非等宽字体被选用了

应该来说/etc/gtk-2.0/gtk.immodules里面关于输入法的那一行有zh就应该可以输入中文,不过我以前是没有成功过。很早了,我还用ubuntu的时候。反正第一种方法是根本
回复 支持 反对

使用道具 举报

发表于 2008-10-26 00:05:21 | 显示全部楼层
设置locale不会影响到字体显示本身,只是locale改变了,你要看看/etc/font.d里面定义的monospace等字体实际上指向了某个中文字体。你要么修改具体的sans*.conf里的定义,要么换一个好看的等宽字体(如dejavu mono或liberation mono)就可以了。
回复 支持 反对

使用道具 举报

发表于 2008-10-26 00:46:34 | 显示全部楼层
locale肯定会对字体选择有影响的。。。。
比如在英文locale下,个别中文flash会乱码的,中文locale就不会。。
具体机理比较复杂,好像不完全受fontconfig控制。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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