Emacs 的字体和 Emacs 本身一样有极高的可定制性,可以在 ~/.emacs
里面设
定字体,但是我更喜欢在 ~/.Xresources
文件里面指定 Emacs 的字体。要让
Emacs 能够使用字体,必须让它知道字体的存在。 Emacs 目前使用的是 X 核心
字体,虽然目前已经有一个正在开发中的 xft 的分支1,但是目前还很不成熟,
特别是对中文支持很差。
要查看系统里面有那些 X 核心字体,可以使用 xlsfonts
命令,这个输出通常
是非常多的。你可以为 Emacs 指定其中的某个字体,如果要安装新的字体,比
如,我下载了文泉驿字体,想在 Emacs 里面使用它。现在,我把字体解压出来,
拷贝到某个目录,比如 /usr/share/fonts/Chinese/wqy-bitmapfont
里面。
然后我要生成 fonts.dir
和 fonts.scale
文件,并加入字体路径。这些步骤必
须要有 root 权限,我使用的是 sudo
。
cd /usr/share/fonts/Chinese/wqy-bitmapfont/ sudo mkfontdir sudo mkfontscale sudo xset +fp /usr/share/fonts/Chinese/wqy-bitmapfont/
最后一条命令是设置字体路径,如果要永久设置,需要在 /etc/X11/xorg.conf
或
者是 /etc/X11/XF86Config-4
里面添加字体路径:
... Section "Files" ... FontPath "unix/:7100" ... FontPath "/usr/share/fonts/Chinese/wqy-bitmapfont" EndSection
这样你就可以在 xlsfonts
里面看到新安装的字体了2。下面就可以在
~/.Xresources
里面配置 Emacs 让他使用文泉驿作为中文字体了:
Emacs.Font: fontset-courier Emacs.Fontset-0:-*-*-medium-r-normal--12-*-*-*-m-*-fontset-courier,\ ascii:-monotype-courier new-medium-r-normal--12-0-0-0-m-0-iso8859-1,\ chinese-gb2312:-wenquanyi-wenquanyi bitmap song-medium-r-normal--13-130-75-75-p-80-iso10646-1,\ mule-unicode-0100-24ff:-misc-freemono-medium-r-normal--0-0-0-0-p-0-iso10646-1
类似的可以定义多个字体集,并指定一个默认的,在 Emacs 里面可以按住
Shift 在点击鼠标左键来选择字体或者字体集。其中的东西都是很清楚的,只是
最后一项 mule-unicode-0100-24ff
,这个是我为了正常显示 Stardict 的音标
而加上的,当然前提是必须装上了 ttf-freefont 并按照前面的方法正确设置了
路径,至于如何在 Emacs 里面使用 Stardict ,请看这里。如果要详细了解 X
核心字体的语法,请参见相应的手册页或者 Emacs 的 Info 页里面也有相应的
介绍:
(info "(Emacs) Font X")
好了,现在如果要令改动立即生效,可以使用 xrdb
命令:
xrdb -merge ~/.Xresources
现在,重新启动 Emacs ,就可以看到字体效果了!
Footnote
2. 如果要让使用 fontconfig
的程序也能使用到字体,还有必要执行一下
<code>`sudo fc-cache -f -v .' 这条命令。