3.2 中文设置

3.2.1 通用配置

这一部分是所有系统都要设置的

(set-language-environment 'Chinese-GB)
(set-keyboard-coding-system 'euc-cn)
(set-clipboard-coding-system 'euc-cn)
(set-terminal-coding-system 'euc-cn)
(set-buffer-file-coding-system 'euc-cn)
(set-selection-coding-system 'euc-cn)
(modify-coding-system-alist 'process "*" 'euc-cn)
(setq default-process-coding-system 
            '(euc-cn . euc-cn))
(setq-default pathname-coding-system 'euc-cn)
   

3.2.2 Windows配置

这一部分设置Windows下的字体, 解压intlfonts-1.2, 设置变量 fonts-dir为所安装的字体目录

(setq fonts-dir "<path to intlfonts>")
(setq bdf-directory-list 
      (list 
       (expand-file-name "Asian" fonts-dir)
       (expand-file-name "Chinese" fonts-dir)
       (expand-file-name "Chinese.BIG" fonts-dir)
       (expand-file-name "Chinese.X" fonts-dir)
       (expand-file-name "Ethiopic" fonts-dir)
       (expand-file-name "European" fonts-dir)
       (expand-file-name "European.BIG" fonts-dir)
       (expand-file-name "Japanese" fonts-dir)
       (expand-file-name "Japanese.BIG" fonts-dir)
       (expand-file-name "Japanese.X" fonts-dir)
       (expand-file-name "Korean.X" fonts-dir)
       (expand-file-name "Misc" fonts-dir)
       (expand-file-name "TrueType" fonts-dir)
       (expand-file-name "Type1" fonts-dir)))
(setq w32-bdf-filename-alist
      (w32-find-bdf-fonts bdf-directory-list))
(create-fontset-from-fontset-spec
 "-*-fixed-medium-r-normal-*-16-*-*-*-c-*-fontset-bdf,
 chinese-gb2312:-*-*-medium-r-normal-*-16-*-*-*-*-*-gb2312.1980-*,
 japanese-jisx0208:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1983-*,
 katakana-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
 latin-jisx0201:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0201*-*,
 japanese-jisx0208-1978:-*-*-medium-r-normal-*-16-*-*-*-c-*-jisx0208.1978-*,
 thai-tis620:-misc-fixed-medium-r-normal--16-160-72-72-m-80-tis620.2529-1,
 lao:-misc-fixed-medium-r-normal--16-160-72-72-m-80-MuleLao-1,
 tibetan-1-column:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-80-MuleTibetan-1,
 ethiopic:-Admas-Ethiomx16f-Medium-R-Normal--16-150-100-100-M-160-Ethiopic-Unicode,
 tibetan:-TibMdXA-fixed-medium-r-normal--16-160-72-72-m-160-MuleTibetan-0")
(setq font-encoding-alist
      (append '(("MuleTibetan-0" (tibetan . 0))
        ("GB2312"        (chinese-gb2312 . 0))
        ("JISX0208"      (japanese-jisx0208 . 0))
        ("JISX0212"      (japanese-jisx0212 . 0))
        ("VISCII"        (vietnamese-viscii-lower . 0))
        ("KSC5601"       (korean-ksc5601 . 0))
        ("MuleArabic-0"  (arabic-digit . 0))
        ("MuleArabic-1"  (arabic-1-column . 0))
        ("MuleArabic-2"  (arabic-2-column . 0))) font-encoding-alist))
(set-default-font "fontset-bdf")
     

注意: 上面的中文字体的大小只能为16,24,40,48, 因为intlfonts 中的BDF字体只有这几种大小的中文字体能匹配上面的chinese-gb2312的配置, 此外在Emacs 21.3中还可以这样设置

(set-language-environment 'Chinese-GB)
(set-default-font "-outline-新宋体-normal-r-normal-normal-12-*-96-96-c-*-gb2312")
     

假如你不知道系统的字体就M-x set-default-font, 然后使用TAB 键来看一下补全的字体信息

3.2.3 X Window设置

X的中文设置我就不说了, 自己搞定吧, 我拷贝了Windows的simsun.ttc 和mingliu.ttc来使用, 看简繁体中文不成问题了, 设置好X的字体后, 通过配置X Resources, 来设置emacs的字体, 通常就是配置$HOME/.Xdefaults, 1024x768的分辨率下可以设置字体为8x16, 800x600可以设置7x14的字体就可以达到字体等宽的效果

emacs.font:  8x16
emacs.paneFont:  8x16
Emacs.pane.menubar.font: 8x16
Emacs.foreground: white
Emacs.background: black
emacs.geometry:  100x32