フォントビットマップ化計画。
なんとなく、ギザついた生活を送ってみたくなったので、ビットマップフォントな生活にしてみました。
ascii フォントは profont というカワユイ奴で、ProFont Mac bitmap incl.というのをダウンロードしてインストールしました。別に、TTF でも大丈夫なので、Windows 用の TTF をダウンロードしてもインストールできます*1。
日本語は、最初 Osaka でいこうと思っていたのですが、profont 12px に対して、2倍横幅にしようとすると、行間が広がり過ぎてしまったので、typester さんの記事を参考にモトヤシーダを使いました。
というか、typester さんのブログがいつまでも under maintainance で困っている人は多くいらっしゃる事でしょう。
Emacs 22でのフォントの設定は、Carbon版 Emacs 22.1 のフォント設定に詳しく書かれてありますが、profont を使った場合は、fixed-width-fontset パッケージが使えない(使えるかもしれないけど面倒)ので、2. default のフォントセットを変更するを参考に自分で設定しました。
というわけで、僕の設定
(when (eq system-type 'darwin) (when (= emacs-major-version 22) (setq mac-allow-anti-aliasing nil) (add-to-list 'default-frame-alist '(font . "fontset-default")) (set-face-attribute 'default nil :family "profont" :height 120) (set-fontset-font "fontset-default" 'japanese-jisx0208 '("nfmotoyacedar" . "iso10646-*")) (set-fontset-font "fontset-default" 'katakana-jisx0201 '("nfmotoyacedar" . "iso10646-*")) (setq face-font-rescale-alist '((".*profont-medium.*" . 1.0) (".*profont-bold.*" . 1.0) (".*nfmotoyacedar-bold.*" . 1.4) (".*nfmotoyacedar-medium.*" . 1.4) ("-cdac$" . 1.3)))))
ascii と日本語を丁度倍にしたい場合は、face-font-rescale-alist の値を調節するのがミソです。
ちなみに、fixed-width-fontset(というか、carbon-font)を読み込むと、face-font-rescale-alist に値がセットされるので、上手くいかない場合は読み込まない方が無難。
(setcdr (assoc ".*nfmotoyacedar-medium.*" face-font-rescale-alist) 1.4)
という風にして、face-font-rescale-alist の値を C-x C-e で評価しながら幅を調節するのがミソです。
1.2 だと、ちょっと日本語の横幅が足りないですよね。この値は、フォントによって異なり、Mac標準のフォントの幅を上手く纏めた設定が、carbon-font なのです。
Carbon Emacsの(脱carbon-font)フォント設定 - ymorimoの日記の記事で、フォントセットを複数作って、切り替える方法があります。
なので、デフォルト以外にも作りたければ、
(create-fontset-from-mac-roman-font "-apple-profont-medium-r-normal--12-*-*-*-*-*-iso10646-1" nil "profont") (set-fontset-font "fontset-profont" 'japanese-jisx0208 '("nfmotoyacedar" . "iso10646-*")) (set-fontset-font "fontset-profont" 'katakana-jisx0201 '("nfmotoyacedar" . "iso10646-*"))
という感じで、フォントセットを作りましょう。create-fontset-from-mac-roman-font で作ったフォントセット名には、fontset- 不要ですが、 set-fontset-font のフォントセット名では、 fontset- が必要ですので注意しましょう。
後の詳しい説明は、3. フォントセットを予め定義するを参考にして下さい。
作ったフォントセットは、
(set-frame-font "fontset-profont")
を評価して変更できますし、M-x set-frame-font
フォントセットの一覧を表示する方法はいくつかありますが、一番簡単なのは、M-x describe-fontset でしょう。