NTEmacsのフォント設定検討
Table of Contents
はじめに
(2010年7月11日時点で行った検討である)
これまで、NTEmacsでは http://www.kaoriya.net/ で配布されている BDF東雲フォント を使っていた。
フォントを小さく(12ピクセル/9ポイント)設定した場合の文字数(列数)の多さと、読みやすさが、使っていた理由である。
ただし、BDF東雲フォントは、丸囲み文字等の機種依存文字が表示できないという問題がある。
また、BDF東雲フォントを使用した場合、NTEmacs 23.2 だと起動画面が寂しい表示になってしまうことも、どういう関連があるのかはわかっておらず、気になっている。
というわけで様々なフォントをインストールして試してみる。
要件
これは全く、私の個人的な好みもしくは希望なのだが、要件としては下記の通りである。
- できるだけ、多くの文字を表示できる
- 東雲フォントでは、1280x1024の画面解像度、12ピクセル(9ポイント)だと、メニューバー、ツールバー無しのフルスクリーンのNTEmacsで79行表示できる。これを基準としている
- 読みやすい
- 12ピクセル(9ポイント)で、読みやすいこと。実質ビットマップフォントでないと厳しいと考えている。
結論
(あくまで、私が使う上での)結論は、”東風フォント代用品” に変更。
東風フォント代用品は、BDF東雲ゴシック とほぼ同等の形で、丸囲み文字が使える為。
東風フォント代用品と、さざなみフォントはほぼ同じものであるはずなのだが、さざなみフォントは行間のスペースが大きく、表示文字数が確保できない。
また、M+系は、行数はある程度確保できるのだが、字体が好きになれなかった。
検証
- BDF東雲ゴシック
- 79行/丸囲み文字NG/起動画面NG
- MS ゴシック
- 79行/丸囲み文字OK/起動画面NG
- 東風フォント代用品 (http://sourceforge.jp/projects/efont/)
- 79行/丸囲み文字OK/起動画面NG
- さざなみフォント (http://sourceforge.jp/projects/efont/)
- 67行/丸囲み文字OK/起動画面OK
- BDF M+
- BDF UM+
- 元は、M+ BITMAP FONTS (http://mplus-fonts.sourceforge.jp/mplus-bitmap-fonts/index.html)
- 73行/丸囲み文字OK/起動画面OK
- M+ と IPAフォントの合成フォント Terminus-ja (http://mix-mplus-ipa.sourceforge.jp/terminus-ja/)
- 73行/丸囲み文字OK/起動画面OK
- M+ と IPAフォントの合成フォント MigMix 1M/MigMix 1P (http://mix-mplus-ipa.sourceforge.jp/migmix/)
- 55行/丸囲み文字OK/起動画面OK
- メイリオ
- 52行/丸囲み文字OK/起動画面OK
- VL ゴシック
- 59行
- 列間が広い。綺麗なのだが、アンチエイリアスは切りたい
- 梅ゴシック
- フォントとして全然綺麗でない(ギザギザ)ので使えない
- 79行/丸囲み文字OK/起動画面NG
- IPAモナーフォント
- フォントとしてあまり綺麗でない
- 79行/丸囲み文字OK/起動画面NG
- IPAゴシック
- フォントとしてあまり綺麗でない
- 73行/丸囲み文字OK/起動画面OK
- M+2VM+IPAG circle
- 67行/丸囲み文字OK/起動画面OK
- Konatsu Font (http://www.masuseki.com/rnote.php?u=be/konatu.htm)
- フォントとしてはちょっと見にくい
- 79行/丸囲み文字OK/起動画面NG
検証の際に使用した .emacs
(tool-bar-mode nil) ; アイコンの付いたツールバーの表示/非表示(t[default]/nil)
(menu-bar-mode -1) ;メニューバーの表示/非表示(t[default]/nil)
(setq default-frame-alist
(append
(list
'(foreground-color . "white")
'(background-color . "black")
# '(width . 30)
# '(height . 8)
'(width . 100)
'(height . 50)
'(line-spacing . 0)
'(cursor-color . "white")
)
default-frame-alist))
;(setq frame-background-mode 'dark)
;(set-face-attribute 'fixed-pitch nil :family "BDF東雲ゴシック") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "BDF東雲ゴシック") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "BDF東雲ゴシック-9"))
(set-face-attribute 'fixed-pitch nil :family "東風ゴシック") ;; 固定等幅フォント
(set-face-attribute 'variable-pitch nil :family "東風ゴシック") ;; 可変幅フォント
(add-to-list 'default-frame-alist '(font . "東風ゴシック-9"))
;(set-face-attribute 'fixed-pitch nil :family "さざなみゴシック") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "さざなみゴシック") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "さざなみゴシック-9"))
;(set-face-attribute 'fixed-pitch nil :family "BDF M+") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "BDF M+") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "BDF M+-9"))
;(set-face-attribute 'fixed-pitch nil :family "BDF UM+") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "BDF UM+") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "BDF UM+-9"))
;(set-face-attribute 'fixed-pitch nil :family "メイリオ") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "メイリオ") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "メイリオ-9"))
;(set-face-attribute 'fixed-pitch nil :family "MS ゴシック") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "MS ゴシック") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "MS ゴシック-9"))
;(set-face-attribute 'fixed-pitch nil :family "MS UI Gothic") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "MS UI Gothic") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "MS UI Gothic-9"))
;(set-face-attribute 'fixed-pitch nil :family "VL ゴシック") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "VL ゴシック") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "VL ゴシック-9"))
;(set-face-attribute 'fixed-pitch nil :family "Terminus-ja") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "Terminus-ja") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "Terminus-ja-9"))
;(set-face-attribute 'fixed-pitch nil :family "MigMix 1M") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "MigMix 1M") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "MigMix 1M-9"))
;(set-face-attribute 'fixed-pitch nil :family "MigMix 1P") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "MigMix 1P") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "MigMix 1P-9"))
;(set-face-attribute 'fixed-pitch nil :family "梅ゴシック") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "梅ゴシック") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "梅ゴシック-9"))
;(set-face-attribute 'fixed-pitch nil :family "IPA モナー ゴシック") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "IPA モナー ゴシック") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "IPA モナー ゴシック-9"))
;(set-face-attribute 'fixed-pitch nil :family "IPAゴシック") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "IPAゴシック") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "IPAゴシック-9"))
;(set-face-attribute 'fixed-pitch nil :family "M+2VM+IPAG circle") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "M+2VM+IPAG circle") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "M+2VM+IPAG circle-9"))
;(set-face-attribute 'fixed-pitch nil :family "") ;; 固定等幅フォント
;(set-face-attribute 'variable-pitch nil :family "") ;; 可変幅フォント
;(add-to-list 'default-frame-alist '(font . "-9"))
(add-hook 'window-setup-hook
(lambda ()
(modify-frame-parameters (selected-frame) default-frame-alist)))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; 日本語環境の設定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(set-language-environment "Japanese")
(set-keyboard-coding-system 'japanese-shift-jis)
(dolist (coding-system '(sjis euc-jp iso-2022-jp iso-2022-7bit shift_jis-2004 euc-jis-2004 iso-2022-jp-2004))
(coding-system-put coding-system :decode-translation-table 'japanese-ucs-jis-to-cp932-map)
(coding-system-put coding-system :encode-translation-table 'japanese-ucs-cp932-to-jis-map))
;; UTF-8⇔Legacy Encoding (EUC-JP や Shift_JIS など)をWindowsで変換
;;http://nijino.homelinux.net/emacs/emacs23-ja.html
;; encode-translation-table の設定
(coding-system-put 'euc-jp :encode-translation-table
(get 'japanese-ucs-cp932-to-jis-map 'translation-table))
(coding-system-put 'iso-2022-jp :encode-translation-table
(get 'japanese-ucs-cp932-to-jis-map 'translation-table))
(coding-system-put 'cp932 :encode-translation-table
(get 'japanese-ucs-jis-to-cp932-map 'translation-table))
;; charset と coding-system の優先度設定
(set-charset-priority 'ascii 'japanese-jisx0208 'latin-jisx0201
'katakana-jisx0201 'iso-8859-1 'cp1252 'unicode)
(set-coding-system-priority 'utf-8 'euc-jp 'iso-2022-jp 'cp932)
;; === recentf ===
(when (locate-library "recentf")
(require 'recentf)
(setq recentf-auto-cleanup 'never)
(setq recentf-save-file-coding-system 'japanese-shift-jis)
(recentf-mode 1)
(setq recentf-max-menu-items 50) ;メニューバーで表示する数
(setq recentf-max-saved-items 70) ;最大で保存する数
(define-key global-map "¥C-crf" 'recentf-open-files)
(define-key global-map "¥C-cre" 'recentf-edit-list)
(setq recentf-exclude '(".*¥.cache"))
)
(set-face-font 'font-lock-function-name-face "東風ゴシック-9")
(set-face-bold-p 'font-lock-function-name-face t)
(set-face-underline-p 'font-lock-function-name-face t)