广州番禺吉盛伟邦电话:Archlinux中文化

来源:百度文库 编辑:偶看新闻 时间:2024/05/05 02:57:57
Archlinux中文化
         --搞自Arch Linux wiki
第一次使用ArchLinux时,用户通常会遇上这些(典型)的问题:

Contents

[hide]
  • 1 怎么显示中文的界面?
    • 1.1 locale的设定
    • 1.2 安装中文字体
  • 2 fontconfig设置
    • 2.1 重排字型的显示顺序
    • 2.2 关闭小号字体的AA(反锯齿)
  • 3 怎么输入中文?
  • 4 中文显示很模糊(淡),或没有中文粗体?
  • 5 如何显示影片的中文字幕?
    • 5.1 mplayer
    • 5.2 SMPlayer
    • 5.3 xine
    • 5.4 gstreamer
  • 6 MP3文件在播放器中乱码
  • 7 windows分区下的中文文件是乱码?
  • 8 samba乱码
  • 9 ftp乱码
  • 10 JAVA界面乱码
  • 11 Doc文件无法打开或显示不正常?
  • 12 正确显示中文PDF文件
    • 12.1 Evince
    • 12.2 xpdf
    • 12.3 kpdf
    • 12.4 arcobat
  • 13 vim乱码
  • 14 Latex中如何使用中文
  • 15 如何使用字典

[edit] 怎么显示中文的界面?

要正确实现中文,必需设置正确的locale和安装合适的中文字体。

[edit] locale的设定

Linux中通过locale来设置程序运行的不同环境。一般常用的中文locale有:

zh_CN.GBK
zh_CN.GB2312
zh_CN.UTF-8

推荐使用UTF8的locale。需要注意的是,对于glibc(>=2.3.6),需要修改/etc/locale.gen文件来设定系统中可以使用的locale

en_US.UTF8 UTF-8
zh_CN.UTF8 UTF-8
zh_CN.GBK GBK
zh_CN.GB2312 GB2312
zh_CN.GB18030 GB18030

然后执行locale-gen命令,这样便可以在系统中使用zh_CN.UTF8,zh_CN.GBK,zh_CN.GB2312,zh_CN.GB18030,en_US.UTF8等locale。可以通过locale命令来查看当前使用的locale

locale

可以通过locale命令来查看目前可以使用的locale

locale -a

Archlinux中,通过rc.conf文件可以设置全局有效的locale:

LOCALE=en_US.UTF-8

对于个人用户,还可以在.bashrc或.xprofile中设置自己的用户环境,不同之处在于:

  • .bashrc: 每次终端登录时读取并运用里面的设置。
  • .xinitrc: 每次startx启动X界面时读取并运用里面的设置
  • .xprofile: 每次使用gdm等图形登录时读取并运用里面的设置

在终端(文字)界面下也可以显示和输入中文,但需要安装cce和zhcon。更多的locale信息可以参见:

[edit] 安装中文字体

除了设置好locale,你还需要安装中文字体:

pacman -S ttf-arphic-uming

常用的免费(GPL或兼容版权)中文字体有

ttf-arphic-ukai
ttf-arphic-uming
ttf-fireflysung

另外文泉驿的中文点阵字体也非常不错,你可以从http://www.linuxsir.org 上的Archlinux版上下载文泉驿点阵字体的PKGBUILD来自行安装。

系统字体将默认安装到/usr/share/fonts,如果你没有root权限或者只打算自己使用某些字体,你可以直接复制这些字体到.fonts(或者其他)目录下面,并把该路径加入/etc/fonts/local.conf中,参见后面章节。

已知问题:

  • 官方软件库中没有文泉驿字体包,你需要自己下载。
  • ttf-fireflysung错误的依赖了xorg-clients-utils而不是xorg-fonts-utiles,参见bug报告:

参考网点:

  • http://wiki.debian.org.hk/w/Where_can_I_find_fonts_for_GNU/Linux

[edit] fontconfig设置

安装好字体以后,你可能对中文自己的显示不太满意。这时需要对fontconfig做某些设置。你可以在~/.fonts.conf中设定,也可以在/etc/fonts/conf.d中设定。

[edit] 重排字型的显示顺序

Serifs字型


serif

Bitstream Vera Serif
Times New Roman
Nimbus Roman No9 L
Luxi Serif
Times
WenQuanYi Bitmap Song
AR PL ShanHeiSun Uni
AR PL New Sung
AR PL ZenKai Uni
Ming(ISO10646)
Kochi Mincho
Baekmuk Batung


Sans字型

 
sans-serif

Bitstream Vera Sans
Verdana
Arial
Tahoma
WenQuanYi Bitmap Song
AR PL ShanHeiSun Uni
AR PL New Sung
AR PL ZenKai Uni
Helvetica
Ming(ISO10646)
Kochi Gothic
Baekmuk Dotum


Mononspace字型

 
monospace

Bitstream Vera Sans Mono
Courier
Courier New
Andale Mono
Luxi Mono
Nimbus Mono L
WenQuanYi Bitmap Song
AR PL ShanHeiSun Uni
AR PL New Sung
AR PL ZenKai Uni
Ming(ISO10646)
Kochi Mincho
Baekmuk Batung


[edit] 关闭小号字体的AA(反锯齿)

对于比较小的字体,闭小号字体的反锯齿,会更加清晰。



AR PL New Sung
AR PL ShanHeiSun Uni
AR PL ZenKai Uni
AR PL Mingti2L Big5
AR PL SungtiL Big5
MingLiu
PMingLiu


8


15


false


true


Tips:可以到这里得到更详细的字体设置文档和完整的中文字体配置范例

参考文档

  • Fontconfig用户手册 http://www.chinalinuxpub.com/read.php?wid=634
  • 令Debian支援中文 http://wiki.linux.org.hk/w/Make_Debian_support_Chinese
  • http://www.higherorder.org/wiki/Fontconfig

[edit] 怎么输入中文?

安装相应的输入法 scim 或者 fcitx。推荐使用scim:

pacman -S scim-pinyin

简体中文的用户推荐:

scim-pinyin  智能拼音
scim-tables 五笔

繁体中文的用户推荐:

scim-chewing

要使用scim,还应该设置以下的环境变量(以scim为例),(可在xinitrc, .bashrc或.xprofile中设置)

export XIM="SCIM"
export XMODIFIERS=@im=SCIM #设置scim为xim默认输入法
export GTK_IM_MODULE=scim #设置scim为gtk程序默认的输入法
export QT_IM_MODULE=scim #设置scim为gtk程序默认的输入法
export XIM_PROGRAM="scim -d" #使可以自动启动

已知问题:

  • 由于SCIM的ABI兼容性问题,目前可能会造成一些软件拒绝运行,这些软件包括但不限于:Acrobat Reader, openoffice,直接从mozilla.org下载的firefox, thunderbird,以及realplay。权宜之计: 在程序的启动文件头输入:
  • 目前scim在QT程序中还不能做到光标跟随

Tip:为什么推荐使用SCIM?

  • 因为到目前为止,SCIM是惟一的“傻瓜式”输入法(感谢作者付出的很多努力,最终让我们打包和维护相当的轻松,而且对于用户来说,也基本不需要什么设置)。

[edit] 中文显示很模糊(淡),或没有中文粗体?

在正常情况下,gnome本身已经转由cairo+pango来渲染字体,不存在这个问题了,但是你很可能在浏览一些网页时,还会发生这些问题。

没有中文粗体解决方法:

把下面的配置加入/etc/fonts/local.conf

 




medium



medium



true



bold


或者使用了下面的local.conf文件替换系统默认的local.conf文件。

cp local.conf /etc/fonts/ 

或者,自行编译fontconfig2.3.92以上的版本,并打开local.conf中的autohint

KDE环境:对不起,我不知道,我已经超过1年多没有用KDE了。欢迎各位的补充其他环境:见上。

  • 官方新版本的mozila firefox(大于1.5.0.1)已经使用cairo+pango,但是在某些网站时会相当的慢。

[edit] 如何显示影片的中文字幕?

[edit] mplayer

修改~/.mplayer/config

font=/usr/share/fonts/TTF/uming.ttf
subcp=cp936

可以使用下面的命令手动加载字幕

mplayer xxx.avi -sub xxxxx.srt

同时,你还可以设置mplayer自动加载字幕。如果你无法在gmplayer的选项中找到这个选项(天知道你会有这样粗心),直接修改~/.mplayer/gui.conf如下:

sub_auto_load = "yes"
sub_unicode = "yes"
sub_pos = "100"
sub_overlap = "no"
sub_cp = "cp936"
font_factor = "0.750000"
font_encoding = "unicode"
  • mplayer cvs(2005.12以后)已经使用了gtk2的界面,但是很遗憾的是并没有完全利用gtk2良好的国际支持,甚至没有使用gtk.filechooser。
  • 正体中文 codepage 为 cp950。

[edit] SMPlayer

SMPlayer 是一个基于QT的MPlayer前端。显示中文字幕很方便。只要在设置对话框里设定缺省字幕编码和字体即可。而且立即生效,无需重新启动程序。

[edit] xine

xine也可以显示中文字幕,但需要制作自己的中文字体。具体可以参考 http://forum.ubuntu.org.cn/about2760.html

[edit] gstreamer

在totem 1.4.0,由于使用gstreamer0.10,应该是可以自动加载同名的srt字幕。

[edit] MP3文件在播放器中乱码

对于所有用gstreamer做后端的播放器,如Rhythmbox,totem,设置如下的环境变量后即可正确读取mp3中GBK编码的id3 tag。

export GST_ID3_TAG_ENCODING=GBK:UTF-8:GB18030
export GST_ID3V2_TAG_ENCODING=GBK:UTF-8:GB18030

对于Beep media player,可以在pefenrence->plugins->media中选中MPEG Audio plugin然后点击下方的Penfenrences,此时会出现一个对话框,选择title,将Disable ID3v2和Convert non-UTF8 ID3 tags to UTF8前的选择框选中。然后在ID3 encoding中填入 gbk。这样bmp就能正确显示GBK编码的ID3 tag。

Quod Libet播放器支持tag编辑及设置id3v2编码。可以在~/.quodlibet/config中设置

id3encoding = gbk

注意:Quod Libet默认支持utf8编码

最为彻底的解决方法为将编码为gbk的id3 tag转化为utf8编码。首先安装mutagen,然后利用下面的命令转化:

mid3iconv -e gbk test.mp3

[edit] windows分区下的中文文件是乱码?

如果使用了hal,应该是没有问题了,但是如果没有,请不妨试一下:

在/etc/rc.conf中的daemon一段中添加hal。

或者直接修改/etc/fstab,注意危险,你如果不懂,就不要学我:-)。如果locale是utf8,挂载windows分区时应该做如下设置

/dev/hdc5 / reiserfs defaults iocharset=utf8 0 0

如果locale是GBK,则应该是

iocharset=cp936 

已知问题:

[edit] samba乱码

用Arch作为samba服务器时,在 /etc/samba/smb.conf 中加入下面一行就可以解决Windows客户端等乱码问题:

 unix charset=gb2312

[edit] ftp乱码

很多ftp站点是GBK编码,如果使用UTF8的locale,下载的文件名可能会乱码。对于lftp,在.lftp/rc下做如下设置

set ftp:charset "gbk"
set file:charset "UTF-8"

对于gftp,可以在.gftp/gftprc中做如下设置即可正确显示服务器端gbk编码的文件名

remote_charsets=gb2312

但下载下来的文件名仍然是乱码,此时需要打补丁。补丁地址为: http://www.teatime.com.tw/%7Etommy/linux/gftp_remote_charsets.patch

[edit] JAVA界面乱码

对于java 1.5来说,只要在

/opt/java/jre/lib/fonts

中建立fallback目录,然后链接或拷贝若干中文字体到该目录就能使java程序正确显示中文。例如,再已经安装 jre 和ttf-fireflysung 的情况下,执行下面的命令即可:

ln -s /usr/share/fonts/TTF/odosung.ttc /opt/java/jre/lib/fonts/fallback/

[edit] Doc文件无法打开或显示不正常?

安装openoffice。

pacman -S openoffice-zh_cn
  • 如果你打算使用英文版的openoffice,你只需要安装openoffice-base包。
  • 正体中文包 openoffice-zh_tw。
  • 开启 amd_64 的 openoffice 时可能发生异常,此时可安装 libsndfile 进行修正。

已知问题:官方库中的openoffice

[edit] 正确显示中文PDF文件

[edit] Evince

pacman -S evince xpdf-chinese-simplified

[edit] xpdf

pacman -S xpdf-chinese-simplified

[edit] kpdf

[edit] arcobat

安装AUR里的acroread7-chsfont即可。

Tips: Evince,Xpdf,Kpdf都能正确显示大部分中文PDF文件,但是一些没有内嵌中文字体的PDF文件需要CMap文件, 文本编码, 和其他各种配置信息等才能正确显示。这些附加信息包含在xpdf-chinese-simplified中,xpdf-chinese- simplified可以不依赖Xpdf而独立安装,但是Arch 中 xpdf-chinese-simplified依赖于Xpdf这个包,这个依赖性的处理不太合理,用户可以自行修改。或者给包维护者提交解决方法

[edit] vim乱码

如果locale是utf8编码,用vim显示gbk编码的文件可能会乱码。因此需要在.vimrc做如下设置

"Chinese GBK support
set fileencodings=utf8,gbk

[edit] Latex中如何使用中文

首先需要安装CJK包,然后需要安装合适的字体。具体可以参考

  • http://www.ctex.org
  • http://www.newsmth.net 的Tex版

[edit] 如何使用字典

首先请先安装stardict

pacman -S stardict

stardict默认是不带字典的,需要去http://stardict.sourceforge.net/ 下载字典安装。安装方法如下

tar -xjvf testdict.tar.bz2
mv testdict /usr/share/stardict/dic

推荐使用

  • xdict英汉字典
  • Merrian Webster 10th dictionary
  • 牛津现代英汉双解辞典(正体中文)
  • 朗道英汉词典(正体中文)