Emacs上でfontsetを指定する場合二通りの方法がある。ひとつは.Xresourcesを使う方法。もうひとつはEmacs Lispで指定する方法。今回は後者を取り上げかつaliasも作ってみることにする。
Emacsにはfaceという概念があって、その中でボールドやイタリックなどの属性が管理されている。またそれぞれの場所で異なるfaceを使っているため、ツールバーのフォントを小さくしたいとか、modelineをboldにといった細かい指定などもこのfaceをいじることで可能である。これらのfaceの変更をするにはset-face-fontやset-face-background, set-face-foreground, set-face-underlineなどの特定の属性に特化した関数を呼ぶか、set-face-attributeで任意の属性を指定する。
set-default-fontでdefaultフォントを変更するのとset-face-fontでdefault faceのフォントを変更することの違いは、前者は現在選択されたframeにのみ反映されるということ。もちろんset-face-fontで特定のframeにのみ作用させることも可能だけど、通常はすべてのframeに適用される。frameを多用しない環境であれば、どちらでも問題ないけど、常に一定のフォントを使いたい場合はset-face-fontで変更した方が何かと不都合がなくていいと思う。
で、肝心なfontsetの作り方。これも何通りかの方法があってEmacs Lispっぽいやり方をするならnew-fontset、もうちょっと細かくXLFDを指定したいとかなら、create-fontset-from-fontset-specを使う。他にもcreate-fontset-from-ascii-fontとかcreate-fontset-from-x-resourceとかあるけど、こちらは使ったことないので分からん。
まあ詳細はHelpを見ていただくとして、各charsetごとに異なるフォント、異なるサイズを指定できるので、環境にあった見やすいフォントを選択することも可能。どんなcharsetが指定できるかについては、mule-diagを実行してSection 5およびSection 6を見れば分かるはず。
ということで以下サンプル。
(create-fontset-from-fontset-spec
"-default-gothic-medium-r-*--10-*-*-*-*-*-fontset-10,
ascii:-*-liberation mono-medium-r-*--10-*-*-*-*-*-iso8859-1,
katakana-jisx0201:-*-vl gothic-medium-r-*--10-*-*-*-*-*-jisx0201.1976-*,
japanese-jisx0208:-*-vl gothic-medium-r-*--10-*-*-*-*-*-jisx0208.1990-*,
...")
みたいな感じにして、ボールドとイタリックのfontsetも作っておく。あとは
(set-face-font 'default "-default-gothic-medium-r-*--10-*-*-*-*-*-fontset-10")
(set-face-font 'italic "-default-gothic-medium-i-*--10-*-*-*-*-*-fontset-10")
(set-face-font 'bold "-default-gothic-bold-r-*--10-*-*-*-*-*-fontset-10")
(set-face-font 'bold-italic "-default-gothic-bold-i-*--10-*-*-*-*-*-fontset-10")
としとけばいい。
No comments:
Post a Comment