字型篇

打算開始寫這一系列的文章,原因是因為白底黑字的預設值,讓我看久了眼睛好酸...
還有那密密麻麻的字型.......會讓人家發瘋呀!!!!
參考文章: Emacs字体设置

第一篇先來說怎麼改字型吧....

1. #emacs /etc/X11/xorg.conf
Section "Module"
         ......
         Load "freetype"
         ......
EndSection
Section "Files"
         ......
         FontPath "/usr/share/fonts/truetype/"
         ......
EndSection
2.restart Xwindow
3.xlsfonts |grep (想用的字型)
例如:
Landau:/home/zcli# xlsfonts |grep inconsolata
-unknown-inconsolata-medium-r-normal--0-0-0-0-c-0-iso10646-1
-unknown-inconsolata-medium-r-normal--0-0-0-0-c-0-iso8859-1
-unknown-inconsolata-medium-r-normal--0-0-0-0-c-0-iso8859-15
-unknown-inconsolata-medium-r-normal--0-0-0-0-m-0-iso10646-1
-unknown-inconsolata-medium-r-normal--0-0-0-0-m-0-iso8859-1
-unknown-inconsolata-medium-r-normal--0-0-0-0-m-0-iso8859-15
4.改成如下
-unknown-inconsolata-medium-r-normal--*-*-*-*-m-*-fontset-inconsolata
注意,用 xlsfonts 列出来的字体名称中,有些字段为 0,这些是可缩放的向量
字体,这些 0 不能保留,必须用数字或 `*' 号取代 
不過建議是用fixed字體來編寫程式會比較合適
 
方法1:啟動時加入
 
1.#emacs ~/.emacs
(create-fontset-from-fontset-spec
 (concat
  "-unknown-inconsolata-medium-r-normal--*-*-*-*-m-*-fontset-inconsolata,"
  "chinese-gb2312:-*-simsun-medium-r-*-*-14-*-*-*-c-*-gb2312*-*,"
  "mule-unicode-0100-24ff:-*-simsun-medium-r-*-*-14-*-*-*-c-*-iso10646*-*,"
  "korean-ksc5601:-*-*-medium-r-*-*-14-*-*-*-*-*-ksc5601*-*,"
  "chinese-cns11643-5:-*-simsun-medium-r-*-*-14-*-*-*-c-*-gbk*-*,"
  "chinese-cns11643-6:-*-simsun-medium-r-*-*-14-*-*-*-c-*-gbk*-*,"
  "chinese-cns11643-7:-*-simsun-medium-r-*-*-14-*-*-*-c-*-gbk*-*,"
  "sjis:-*-medium-r-normal--14-*-jisx0208*-*"))
後面各段格式都是『字符集:字體』
第一段是指定ASCII英文字型
第二段則是中文也就是gb2312的字型
 
2.(set-default-font "fontset-inconsolata")
 
3.(setq default-frame-alist
      (append
       '((font . "fontset-inconsolata")) default-frame-alist))
 
方法2:寫入defaults
1.#emacs ~/.Xdefaults
 Emacs.Fontset-0:-unknown-inconsolata-medium-r-normal--*-*-*-*-m-*-fontset-inconsolata,\
 chinese-gb2312:-*-simsun-medium-r-*-*-14-*-*-*-c-*-*-*,\
 mule-unicode-0100-24ff:-*-simsun-medium-r-*-*-14-*-*-*-c-*-iso10646*-*,\
 korean-ksc5601:-*-*-medium-r-*-*-14-*-*-*-*-*-ksc5601*-*,\
 chinese-cns11643-5:-*-simsun-medium-r-*-*-14-*-*-*-c-*-gbk*-*,\
 chinese-cns11643-6:-*-simsun-medium-r-*-*-14-*-*-*-c-*-gbk*-*,\
 chinese-cns11643-7:-*-simsun-medium-r-*-*-14-*-*-*-c-*-gbk*-*,\
 sjis:-*-medium-r-normal--14-*-jisx0208*-*
 
 Emacs.font: fontset-inconsolata
 
2.# xrdb -merge ~/.Xdefaults
PS.要解除defaults的話就
# xrdb -remove ~/.Xdefaults 
 
Emacs 23 ( 我直接貼上來的...因為Debain目前只到22...留著參考)
Emacs23的字体设置与上述方法类似,但也有所不同。或许是因为emacs23的实现 比较独特,或许是emacs23的bug,按上述方法指定的中文字体无法起作用。因此, emacs23的字体设置采用下述方法:
仍然采用 create-fontset-from-fontset-spec 创建 fontset:
(create-fontset-from-fontset-spec "-*-courier-medium-r-normal-*-14-*-*-*-*-*-fontset-courier") (set-default-font "fontset-courier") (setq default-frame-alist (append '((font . "fontset-courier")) default-frame-alist))
也可以在 ~/.Xdefaults 中这样设置:
Emacs.Fontset-0:-*-courier-medium-r-normal-*-14-*-*-*-*-*-fontset-courier Emacs.font:fontset-courier
两种方法取其一即可。 

但是设置中文字体时,采用 set-fontset-font 分别指定各种 script 的字体:
(set-fontset-font "fontset-default" nil "-*-simsun-*-*-*-*-14-*-*-*-*-*-gb2312.1980-*" nil 'prepend) (set-fontset-font "fontset-courier" 'kana "-*-simsun-*-*-*-*-14-*-*-*-*-*-gbk-0" nil 'prepend) (set-fontset-font "fontset-courier" 'han "-*-simsun-*-*-*-*-14-*-*-*-*-*-gbk-0" nil 'prepend) (set-fontset-font "fontset-courier" 'cjk-misc "-*-simsun-*-*-*-*-14-*-*-*-*-*-gbk-0" nil 'prepend)
 

沒有留言:

張貼留言