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

1 安装必要的字体包

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

2 修改字体配置文件

在 Ubuntu Precise 之前,中文默认的字体配置效果已经非常好了。但到了 Precise 的时候,韩国新推出了几个免费韩文字体。当然了,免费字体这东西,本来就是多多宜善,但问题就在于,韩国人做的韩文字体里不仅仅有韩文,还包含了中文。而这些字体里的中文部分,不客气地说,实在是丑得可以。而韩国人把这个字体设置成 Ubuntu 里的中文默认字体,这就太让人难以接受了。

为了让中文显示效果更让人可以接受一些,滇狐决定完全屏蔽那几个韩文字体。反正滇狐不懂韩语,因此少了几个韩文字体,对正常生活影响不大了。大家可以参考以下滇狐自己的字体配置文件。将以下内容写到 ~/.config/fontconfig/fonts.conf

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>
 <alias>
  <family>serif</family>
  <prefer>
   <family>Noto Serif</family>
   <family>DejaVu Serif</family>
   <family>Bitstream Vera Serif</family>
   <family>Droid Serif</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>Roboto</family>
   <family>Noto Sans</family>
   <family>DejaVu Sans</family>
   <family>Bitstream Vera Sans</family>
   <family>Droid Sans</family>
   <family>Droid Sans Fallback</family>
   <family>WenQuanYi Micro Hei</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>Droid Sans Mono</family>
   <family>Droid Sans Fallback</family>
   <family>WenQuanYi Micro Hei Mono</family>
   <family>WenQuanYi Zen Hei Mono</family>
   <family>AR PL UMing CN</family>
   <family>AR PL ShanHeiSun Uni</family>
  </prefer>
 </alias>
 <!-- Default Alias -->
 <alias>
  <family>Roboto</family>
  <default>
   <family>sans-serif</family>
  </default>
 </alias>
 <!-- Generic font families -->
 <match target="pattern">
  <test name="family" qual="any">
   <string>serif</string>
  </test>
  <edit binding="strong" mode="prepend" name="family">
   <string>Noto Serif</string>
  </edit>
 </match>
 <match target="pattern">
  <test name="family" qual="any">
   <string>sans-serif</string>
  </test>
  <edit binding="strong" mode="prepend" name="family">
   <string>Roboto</string>
  </edit>
 </match>
 <match target="pattern">
  <test name="family" qual="any">
   <string>monospace</string>
  </test>
  <edit binding="strong" mode="prepend" name="family">
   <string>DejaVu Sans Mono</string>
  </edit>
 </match>
 <match target="pattern">
  <test name="family" qual="any">
   <string>monospace</string>
  </test>
  <edit binding="strong" mode="prepend" name="family">
   <string>DejaVu Sans Mono</string>
  </edit>
 </match>
 <!-- Disable ugly Nanum fonts -->
 <match target="pattern">
  <test name="family" qual="any">
   <string>NanumGothic</string>
  </test>
  <test name="family" qual="any">
   <string>NanumGothicCoding</string>
  </test>
  <test name="family" qual="any">
   <string>NanumMyeongjo</string>
  </test>
  <edit binding="strong" mode="prepend" name="family">
   <string>Droid Sans Fallback</string>
  </edit>
 </match>
 <!-- Aliases -->
 <match target="pattern">
  <test name="family" qual="any">
   <string>KaiTi</string>
  </test>
  <test name="family" qual="any">
   <string>SimKai</string>
  </test>
  <test name="family" qual="any">
   <string>楷体</string>
  </test>
  <test name="family" qual="any">
   <string>楷体_GB2312</string>
  </test>
  <edit binding="strong" mode="prepend" name="family">
   <string>AR PL UKai CN</string>
   <string>AR PL ZenKai Uni</string>
  </edit>
 </match>
 <match target="pattern">
  <test name="family" qual="any">
   <string>NSimSun-18030</string>
  
</test>
  
<test name="family" qual="any">
   
<string>NSimSun</string>
  
</test>
  
<test name="family" qual="any">
   
<string>SimSun-18030</string>
  
</test>
  
<test name="family" qual="any">
   
<string>SimSun</string>
  
</test>
  
<test name="family" qual="any">
   
<string>宋体</string>
  
</test>
  
<test name="family" qual="any">
   
<string>新宋体</string>
  
</test>
  
<edit binding="strong" mode="prepend" name="family">
   
<string>AR PL UMing CN</string>
   
<string>AR PL ShanHeiSun Uni</string>
  
</edit>
 
</match>
 
<match target="pattern">
  
<test name="family" qual="any">
   
<string>Microsoft YaHei</string>
  
</test>
  
<test name="family" qual="any">
   
<string>STHeiti</string>
  
</test>
  
<test name="family" qual="any">
   
<string>SimHei</string>
  
</test>
  
<test name="family" qual="any">
   
<string>微软雅黑</string>
  
</test>
  
<test name="family" qual="any">
   
<string>黑体</string>
  
</test>
  
<edit binding="strong" mode="prepend" name="family">
   
<string>Droid Sans Fallback</string>
   
<string>WenQuanYi Micro Hei</string>
   
<string>WenQuanYi Zen Hei</string>
  
</edit>
 
</match>
 
<!-- Anti-alias -->
 
<match target="font">
  
<edit name="embeddedbitmap">
   
<bool>false</bool>
  
</edit>
 
</match>
 
<!-- End -->
 
<match target="font">
  
<edit mode="assign" name="rgba">
   
<const>rgb</const>
  
</edit>
 
</match>
 
<match target="font">
  
<edit mode="assign" name="hinting">
   
<bool>true</bool>
  
</edit>
 
</match>
 
<match target="font">
  
<edit mode="assign" name="hintstyle">
   
<const>hintfull</const>
  
</edit>
 
</match>
 
<dir>~/.fonts</dir>
 
<match target="font">
  
<edit mode="assign" name="antialias">
   
<bool>true</bool>
  
</edit>
 
</match>

</fontconfig>

虽然 fontconfig 将配置文件的路径改到了
~/.config/fontconfig/ 下,不再从
~/.fonts.conf~/.fonts.conf.d/
读取配置,但有一些旧的软件仍然会试图从原先的位置读取配置。因此我们需要创建这两个符号链接:

$ ln -s ~/.config/fontconfig/fonts.conf ~/.fonts.conf
$ ln -s ~/.config/fontconfig/conf.d ~/.fonts.conf.d

3 修复 LibreOffice 中文方块问题

如果你在安装系统的时候选择系统默认语言不是中文,安装了
Droid 系列字体的话,系统界面字体又是 Sans-serif
字体族的话,你很有可能遇到打开 LibreOffice
之后看到所有的菜单都是方块的问题。解决这个问题有很多方法,你可以到
/etc/fonts/conf.d/ 下删除
65-droid-sansj-fonts.conf,也可以在那个目录里创建两个符号链接,分别指向
../conf.avail/69-language-selector-zh-cn.conf
../conf.avail/69-language-selector-zh-cn.conf,或者如果不想修改系统配置文件,而想
per-user 修改的话,还可以在自己家目录的
~/.fonts.conf.d/ 里链接那两个文件。

4 修改桌面环境字体设置

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

4.1 KDE 下的字体配置

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

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

4.2 GNOME 下的字体配置

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

4.2.1 GNOME 字体

在低版本的 GNOME 下,配置字体可以通过
gnome-appearance-properties
进行,运行该配置工具,将所有字体均设成“DejaVu
Sans”,等宽字体设为“DejaVu 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

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

4.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/Oxygen-Molecule/gtk-2.0/gtkrc"

style "user-font"
{
    font_name="Noto Sans UI"
}
widget_class "*" style "user-font"

gtk-theme-name="Oxygen-Molecule"
gtk-font-name="Noto Sans UI Regular 9"
gtk-xft-antialias = 1
gtk-xft-hinting = 1
gtk-xft-hintstyle = "full"
gtk-xft-rgba = "rgb"
gtk-enable-event-sounds=0
gtk-cursor-theme-name = "oxy-white"

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

4.3 其它软件

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

4.3.1 QTerm

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

Ubuntu 所需要的中文字体美化操作步骤的更多相关文章

  1. Ubuntu 14.04 64位字体美化(使用黑文泉驿)

    Ubuntu 14.04安装和升级后,,斜体字体变得很难看,昨天,我得到一个晚上,最终,管理一个线索,这里整洁. 在线调研后,.一致的观点是,,使用开源字体库文泉驿理想的黑色字体效果,效果甚至没有丢失 ...

  2. [CrunchBang]中文字体美化

    安装必要的字体包 sudo apt-get install ttf-droid ttf-wqy-zenhei xfonts-wqy ttf-wqy-microhei ttf-arphic-ukai t ...

  3. 【crunch bang】字体美化

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

  4. linux安装中文字体

    一.查看系统字体 在开始安装之前,我们先查看系统中已经安装的字体. 要查看系统中已经安装的字体,我们可以使用fc-list命令进行查看.如果系统中没有该命令的话,我们需要先安装相关的软件包. 在cen ...

  5. Win7下Eclipse中文字体太小

    http://www.cnblogs.com/newdon318/archive/2012/03/23/2413340.html 最近新装了Win7,打开eclipse3.7中文字体很小,简直难以辨认 ...

  6. Eclipse的中文字体设置

    打开eclipse中文字体很小,简直难以辨认.在网上搜索发现这是由于Eclipse 用的字体是 Consolas,显示中文的时候默认太小了.解决方式有两种:一.把字体设置为Courier New  操 ...

  7. [转]Win7下Eclipse中文字体太小

    最近新装了Win7,打开eclipse3.7中文字体很小,简直难以辨认.在网上搜索发现这是由于Eclipse 3.7 用的字体是 Consolas,显示中文的时候默认太小了.   解决方式有两种:一. ...

  8. eclipse解决中文字体太小问题(转载)

    最近新装了Win7,打开eclipse3.7中文字体很小,简直难以辨认.在网上搜索发现这是由于Eclipse 3.7 用的字体是 Consolas,显示中文的时候默认太小了.   解决方式有两种:一. ...

  9. 解决win8 下 eclipse 中文字体太小的问题

    一.把字体设置为Courier New  操作步骤:打开Elcipse,点击菜单栏上的“Windows”——点击“Preferences”——点击“Genneral”——点击“Appearance”— ...

随机推荐

  1. 深入理解JS各种this指向问题

    说到this,入前端坑的人都知道这是JS初期语言毕竟之路.很多人(我就是)对于this的了解很模糊,或者不够全面.最近打算在反过来在看下es6,在es6中又出现了箭头函数对于this的理解有多了层认识 ...

  2. 使用gradle建立java application

    建立项目目录mkdir java-democd java-demo 初始化项目目录gradle init --type java-application 编译./gradlew build 运行./g ...

  3. SQL Join简单介绍

    前沿 Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接.外联接和交叉联接等. 如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的数据,这时 ...

  4. 转: kali msfvenom生成木马

    kali msfvenom生成木马 转:https://blog.csdn.net/qq_33391644/article/details/79266724 msfvenom是msfpayload,m ...

  5. python爬虫实战(六)--------新浪微博(爬取微博帐号所发内容,不爬取历史内容)

    相关代码已经修改调试成功----2017-4-13 详情代码请移步我的github:https://github.com/pujinxiao/sina_spider 一.说明 1.目标网址:新浪微博 ...

  6. Java常用工具类之时间转换(注释乱码,全)

    package com.wazn.learn.util; import java.text.ParseException; import java.text.SimpleDateFormat; imp ...

  7. 阿里云下Linux服务器安装JDK、Tomcat

    阿里云服务器相信大家越来越熟悉,刚开始接触,将基本的java软件安装做点记录: 1.配置阿里云的yum仓库: 获取仓库配置 wget http://mirrors.aliyun.com/repo/Ce ...

  8. 顺序存储线性表_ArrayList

    相信大家在日常开发过程中 List 应该使用的非常非常多,今天就来简单学习一下 List 的数据结构 顺序存储线性表. 一.什么是顺序存储线性表 顺序存储线性表是最基本.最简单.也是最常用的一种数据结 ...

  9. 【UOJ 79】 一般图最大匹配 (✿带花树开花)

    从前一个和谐的班级,所有人都是搞OI的.有 n 个是男生,有 0 个是女生.男生编号分别为 1,…,n. 现在老师想把他们分成若干个两人小组写动态仙人掌,一个人负责搬砖另一个人负责吐槽.每个人至多属于 ...

  10. BZOJ 3238: [Ahoi2013]差异 后缀自动机 树形dp

    http://www.lydsy.com/JudgeOnline/problem.php?id=3238 就算是全局变量,也不要忘记,初始化(吐血). 长得一副lca样,没想到是个树形dp(小丫头还有 ...