原文连接:http://edyfox.codecarver.org/html/debian_testing_chinese.html

中文字体美化是个很讨厌的事情,无数初学者在这里面浪费了无数时间,做了无数没有意义的事情。但这也是不得不做的,我把 Debian/Ubuntu 所需要的中文字体美化操作步骤详细记录在这里,希望能节约大家一部分时间。

1 安装必要的字体包

首先,我们的字体美化依赖 Droid 系列字体,因此我们首先安装这个软件包: ttf-droid

有了这个字体,对于日常工作和生活而言已经非常足够了。如果你还需要更多中文字体的话,推荐可以安装“文泉驿正黑”,“文泉驿点阵宋体”等。文泉驿的安装包已经进入了 Debian/Ubuntu,直接安装 ttf-wqy-zenhei 就可以了。如果想直接使用点阵宋体的话,可以安装 xfonts-wqy。另外,还可以通过 ttf-wqy-microhei 安装文泉驿微米黑,那是一个 Droid 系列字体衍生出来的字体,效果也不错。

除了文泉驿系列字体外,比较流行的免费中文字体还有文鼎提供的楷体和上海宋,包名分别是: ttf-arphic-ukai 和 ttf-arphic-uming。把这些字体都装上之后,应该就已经具备一个基本能用的中文环境了。

2 修改字体配置文件

和若干年前比起来,目前 Debian/Ubuntu 默认的字体配置效果已经非常好了,如果觉得已经满意了的话,完全就可以使用默认配置,不需要再做什么额外设置。如果想获得更好一些的效果的话,可以参考以下滇狐自己的字体配置文件。将以下内容写到存放到你的家目录下,命名为 .fonts.conf,就可以了。

 
<?xmlversion='1.0'encoding='utf-8'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
<alias>
<family>serif</family>
<prefer>
<family>DejaVu Serif</family>
<family>Bitstream Vera Serif</family>
<family>Evermore Song</family>
<family>WenQuanYi Bitmap Song</family>
<family>AR PL UMing CN</family>
<family>AR PL ShanHeiSun Uni</family>
<family>Droid Sans Fallback</family>
<family>WenQuanYi Micro Hei</family>
<family>WenQuanYi Zen Hei</family>
</prefer>
</alias>
<alias>
<family>sans-serif</family>
<prefer>
<family>DejaVu Sans</family>
<family>Bitstream Vera Sans</family>
<family>Evermore Song</family>
<family>Droid Sans Fallback</family>
<family>WenQuanYi Micro Hei</family>
<family>WenQuanYi Bitmap Song</family>
<family>WenQuanYi Zen Hei</family>
<family>AR PL UMing CN</family>
<family>AR PL ShanHeiSun Uni</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>DejaVu Sans Mono</family>
<family>Bitstream Vera Sans Mono</family>
<family>Evermore Song</family>
<family>WenQuanYi Micro Hei Mono</family>
<family>WenQuanYi Zen Hei Mono</family>
<family>Droid Sans Fallback</family>
<family>WenQuanYi Bitmap Song</family>
<family>AR PL UMing CN</family>
<family>AR PL ShanHeiSun Uni</family>
</prefer>
</alias>
<!-- Default Alias -->
<alias>
<family>DejaVu Sans</family>
<default>
<family>sans-serif</family>
</default>
</alias>
<!-- Generic font families -->
<matchtarget="pattern">
<testname="family"qual="any">
<string>serif</string>
</test>
<editbinding="strong"mode="prepend"name="family">
<string>DejaVu Serif</string>
</edit>
</match>
<matchtarget="pattern">
<testname="family"qual="any">
<string>sans-serif</string>
</test>
<editbinding="strong"mode="prepend"name="family">
<string>DejaVu Sans</string>
</edit>
</match>
<matchtarget="pattern">
<testname="family"qual="any">
<string>monospace</string>
</test>
<editbinding="strong"mode="prepend"name="family">
<string>DejaVu Sans Mono</string>
</edit>
</match>
<!-- Anti-alias -->
<matchtarget="font">
<editname="embeddedbitmap">
<bool>false</bool>
</edit>
</match>
<!-- WenQuanYi Bitmap Song -->
<selectfont>
<acceptfont>
<pattern>
<pateltname="family">
<string>WenQuanYi Bitmap Song</string>
</patelt>
</pattern>
</acceptfont>
</selectfont>
<matchtarget="pattern">
<testname="family"qual="any">
<string>WenQuanYi Bitmap Song</string>
</test>
<testcompare="less"name="pixelsize"qual="any">
<double>12</double>
</test>
<editmode="assign"name="family">
<string>WenQuanYi Micro Hei</string>
</edit>
</match>
<matchtarget="pattern">
<testname="family"qual="any">
<string>WenQuanYi Bitmap Song</string>
</test>
<testcompare="more"name="pixelsize"qual="any">
<double>16</double>
</test>
<editmode="assign"name="family">
<string>AR PL ShanHeiSun</string>
</edit>
</match>
<!-- Alias -->
<alias>
<family>SimSun</family>
<family>宋体</family>
<accept>
<family>Evermore Song</family>
<family>WenQuanYi Bitmap Song</family>
<family>AR PL ShanHeiSun Uni</family>
</accept>
<default>
<family>serif</family>
</default>
</alias>
<alias>
<family>SimHei</family>
<family>黑体</family>
<accept>
<family>WenQuanYi Micro Hei</family>
<family>WenQuanYi Zen Hei</family>
</accept>
<default>
<family>sans-serif</family>
</default>
</alias>
<alias>
<family>微软雅黑</family>
<family>Microsoft YaHei</family>
<accept>
<family>WenQuanYi Micro Hei</family>
<family>WenQuanYi Zen Hei</family>
</accept>
<default>
<family>sans-serif</family>
</default>
</alias>
<!-- End -->
<matchtarget="font">
<editmode="assign"name="rgba">
<const>rgb</const>
</edit>
</match>
<matchtarget="font">
<editmode="assign"name="hinting">
<bool>true</bool>
</edit>
</match>
<matchtarget="font">
<editmode="assign"name="hintstyle">
<const>hintfull</const>
</edit>
</match>
<matchtarget="font">
<editmode="assign"name="antialias">
<bool>true</bool>
</edit>
</match>
<dir>~/.fonts</dir>
</fontconfig>

  

3 修改桌面环境字体设置

修改完字体配置后,中文的显示效果应该可以上很大一个层次。但是,为了得到更好的效果,我们还需要对具体应用程序里的字体进行更多配置。

3.1 KDE 下的字体配置

滇狐平时只用 KDE 桌面环境,如果你的桌面环境不是 KDE 的话,之后的部分你也许不能直接照着做,请自己摸索,如果有意见或建议想要分享的话,请于滇狐联系。

KDE 下的字体配置很简单,直接到“系统设置”里找到“公共外观和行为”、“应用程序外观”、“字体”,把所有类别的字体都改成“Droid Sans”,等宽字用“Droid Sans Mono”即可。此外,建议启用“圆整字体边角”,并到“配置”对话框中把次像素渲染打开,微调样式改为“完整”,这样可以在液晶显示器下取得最好的效果。

3.2 GNOME 下的字体配置

滇狐并没有“系统纯洁强迫症”,虽然滇狐不用 GNOME,但 GNOME 下的软件,滇狐还是用的。为了让 GNOME 下的软件在 KDE 下不至于太突兀,我们还是需要对 GNOME 下的字体进行一定的配置。

3.2.1 GNOME 字体

在低版本的 GNOME 下,配置字体可以通过 gnome-appearance-properties 进行,运行该配置工具,将所有字体均设成“Droid Sans”,等宽字体设为“Droid Sans Mono”即可,很简单。

在最新版本的 GNOME 下,gnome-appearance-properties 配置工具已经被移除了,所有的配置工作只能通过 gnome-control-center 来完成。但悲剧的是,gnome-control-center 只要检测到你在 KDE 底下,就会拒绝提供配置字体的选项,因此修改 GNOME 程序的字体就只能通过 gconf-editor 进行了。gnome-appearance-properties 里字体配置的各个选项对应的位置分别是:

应用程序字体:/desktop/gnome/interface/font_name

文档字体:/desktop/gnome/interface/document_font_name

桌面字体:/apps/nautilus/preferences/desktop_font

窗口标题字体:/apps/metacity/general/titlebar_font

等宽字体:/desktop/gnome/interface/monospace_font_name

键值的格式是“字体名 空格 尺寸”,例如“Droid Sans 9”。在 KDE 下工作时,GNOME 的桌面和标题栏都是不可见的,因此只需要改应用程序字体、文档字体和等宽字体三项就足够了。

3.2.2 GTK 系统字体

在 KDE 下,gnome-settings-daemon 无法启动运行为 GTK/GNOME 程序提供字体配置信息,有的程序能够直接读取 gconf 下的字体配置信息,但还有很多程序会改为读取主目录下的配置文件获取字体相关的配置,如果读不到的话,就会变成非常丑陋的默认样式。为了避免出现这样的情况,我们需要在主目录下为这些程序创建配置文件。由于不同版本的程序读取的配置文件名都不太一样,为了让尽可能多的程序都能读到正确的配置,我们就多创建几个配置文件。在主目录下创建这几个文件:

.gtkrc

.gtkrc-1.2-gnome2

.gtkrc-2.0

.gtkrc-2.0-kde

文件的内容如下:

include ".gtkrc-2.0-kde4"

然后创建 .gtkrc-2.0-kde4,内容如下:

# This file was written by KDE
# You can edit it in the KDE control center, under "GTK Styles and Fonts"
 
include "/usr/share/themes/kde44-oxygen-molecule/gtk-2.0/gtkrc"
 
style "user-font"
{
font_name="Droid Sans"
}
widget_class "*" style "user-font"
 
gtk-theme-name="kde44-oxygen-molecule"
gtk-font-name="Droid Sans 9"
gtk-xft-antialias = 1
gtk-xft-hinting = 1
gtk-xft-hintstyle = "full"
gtk-xft-rgba = "rgb"
gtk-enable-event-sounds=0

  

注意:开头 include 后面包含的文件和 gtk-theme-name 指定的主题名需要根据你的个人习惯作相应的修改,不要直接照抄我这里的配置。因为首先,我选择的 GTK 主题未必是你喜欢的,其次,我安装的 GTK 主题你未必也安装了,因此务必根据你的个人习惯作相应的修改。

3.3 其它软件

完成以上配置后,整个系统就已经非常适合人类生活了,接下来我们再对部分程序做一些简单的微调。

3.3.1 Konsole 字体

Droid Sans Mono 在 Konsole 下的体验并不好,建议在 Konsole 下还是坚持使用 DejaVu Sans Mono 字体,那个字体更适合工作。

3.3.2 Chrome

Chrome 的字体渲染原则很奇怪,如果我们直接使用默认配置的话,它会选择一个很奇怪的日文字体来渲染中文,对于日文字体里不存在的中文文字,它又会 Fallback 到另外一个奇怪的中文字体上。滇狐目前没太多时间和精力来详细调查这个现象,解决这个问题最简单的方法就是把 Chrome 里的默认字体和 Sans 字体全都强制指定“Droid Sans Fallback”上,效果还不错。至于 Serif 字体,我们可以使用“Droid Serif”,Monospace 字体就用“Droid Sans Mono”,这样风格比较统一。

3.3.3 QTerm

QTerm 有自己的字体配置,并不直接遵循系统字体来,根据自己的喜好配置一下就好。

【crunch bang】中文美化的更多相关文章

  1. 【crunch bang】字体美化

    中文字体美化是个很讨厌的事情,无数初学者在这里面浪费了无数时间,做了无数没有意义的事情.但这也是不得不做的,我把 Debian/Ubuntu 所需要的中文字体美化操作步骤详细记录在这里,希望能节约大家 ...

  2. 【crunch bang】程序中文化

    在应用程序中配置使用中文显示. # apt-get install locales # dpkg-reconfigure locales 安装文泉驿-微米黑字体: sudo apt-get insta ...

  3. 安装fcitx [Crunch bang] [debian]

    第一步: sudo apt-get install fcitx fcitx-sunpinyin  fcitx-ui-classic fcitx-table fcitx-config-common fc ...

  4. [xampp]在Crunch Bang下安装xampp1.8.3

    1.下载linux下 的xampp安装包 xampp-linux-1.8.3-5-installer.run 2.终端下, 给执行权限 sudo chmod +x ./xampp-linux-1.8. ...

  5. [crunch bang]在Crunch Bang安装和设置fcitx(小企鹅输入法)

    试来试去还是喜欢小企鹅多一些 第一步:在终端下 sudo apt−get install fcitx fcitx−sunpinyin  fcitx-ui-classic fcitx-table sud ...

  6. 【crunch bang】文件管理器-thunar

    Thunar拥有的实用功能: 缩略图查看 批量重命名 安装: $ sudo apt-get install thunar 加速thunar启动速度 sudo leafpad /usr/share/gv ...

  7. 【crunch bang】tint2配置2

    # Tint2 config file # Background definitions # ID 1 rounded = 0 border_width = 0 background_color = ...

  8. 【crunch bang】论坛tint2配置讨论贴

    地址: http://crunchbang.org/forums/viewtopic.php?id=3232

  9. 【crunch bang】增加壁纸图片文件

    将你的壁纸图片复制到 ~/images/wallpapers/shared即可.当然你得在终端用cp命令,因为这个目录是有权限到

随机推荐

  1. sublime text主要快捷键列表

    Ctrl+L 选择整行(按住-继续选择下行)Ctrl+KK 从光标处删除至行尾Ctrl+Shift+K 删除整行Ctrl+Shift+D 复制光标所在整行,插入在该行之前Ctrl+J 合并行(已选择需 ...

  2. 不允许修改SQLserver2008r2表中字段的属性问题

    SQLserver2008r2修改表中字段的属性时弹出 点击工具->选项,取消阻止保存要求重新创建表的更改

  3. Hibernate 代码生成器

    Hibernate 代码生成器 点击Hibernate Code Generation 点击以下 创建管理代码生成配置 点击RUN.自动生成

  4. Selenium2学习-015-WebUI自动化实战实例-013-通过 URL 关闭多余的已开浏览器窗口

    在日常的 WebUI 自动化测试脚本执行的过程中,经常会打开不同的网页,进行相应的操作,此时可能会打开很多的网页,当打开的网页过多时,无效的网页资源对运行脚本的机器造成了过多无效的资源浪费,因而在日常 ...

  5. linux bq20z75 驱动

    新的项目中使用到了电池.电池的guage使用TI的bq20z75.kernel的驱动中已经有bq20z75的驱动,只要稍加修改就可以使用. 参考链接 http://www.ti.com/lit/er/ ...

  6. JavaScript:单选钮的事件处理

    单选按钮事件: 单选钮属于多选一的处理流程,但是单选钮由于也是HTML元素,所以对于JavaScript而言也表示对象. 注意:单选钮的特点是一定要需要名相同才可以实现,所以此处如果名字相同,那么就是 ...

  7. Nuget程序包 使用log4net

    Nuget程序包不用细介绍,网上资源很多,有个项目使用了log4net,为项目打log,功能很多,足够一般使用. 使用时候需要在配置文件中对其进行相关配置,我自己的配置文件放在App.config文件 ...

  8. javaScirpt学习之事件

    一.事件的添加和删除 不同浏览器,不同DOM级别,添加和删除事件的方法也不同,具体可以参见后面的EventUtil元素. 二.事件对象 在事件处理程序中,浏览器会为之传入一个event对象,该对象的常 ...

  9. sublime 垂直编辑

    http://www.sublimetext.com/docs/2/multiple_selection_with_the_keyboard.html

  10. postgres-toolkit (A Victorinox for PostgreSQL DBA )

    postgres-toolkit A collection of scripts and utilities to manage PostgreSQL servers. Allows DBA to p ...