flat7th

# emacs fontsetのメモ

created 2006-12-26 modified 2006-12-26 


:問題
X、emacs、MS Gothic

:fontsetについては
http://home.catv.ne.jp/pp/ginoue/emacs/ja-output.html
によると

フォントセットの考え方

基本的な考え方は、フォントセットに仮想的なフォント名をつけて、
その(仮想)フォントセット名を普通のフォントと同様に扱うという
ものです。

フォントセット名の付け方は、XLFDを拡張した形になっています。

(XLFDは、xlsfontsコマンドでずらっと表示されるフォント名です。
詳細はXのフォントの説明を見てください。) XLFDのCharsetRegistry
フィールド(日本語フォントの場合、"jisx0208.1983"の部分)
が"fontset"であるXLFDを、フォントセット名と見なします。更に、
CharsetEncodingフィールド(最後のフィールド)を各フォントセット
名を区別する、id(任意文字列)の用途に使用します。The OpenGroupの
意向も何も関せず、勝手にXLFDの解釈を拡張しているように見えますが、
「GNUの方が偉い」ので、いいのです。
 
(仮想)フォントセット名の例 

-*-fixed-medium-r-normal--16-*-*-*-*-*-fontset-16

上の例で、フォントセット名の観点から見ると、意味のあるフィールドは、
最後のふたつの"fontset" と"16"の部分だけです。("16"は数値に意味が
あるのではなく、ユニークであることに意味があります。) しかし、例のよ
うに、なるべく他のフィールドも指定しておく方が良いです。理由は、明示
的な文字集合とフォントのペアが指定されていない場合に、この(仮想)フォ
ントセット名がフォントロード(XのAPI)に使われるからです。詳細は、
フォントセットの定義の説明に書きます。

とのこと。

:状況
Sony8x16 では日本語フォントも変わるが、その他ほとんどではasciiフォントが
なんであっても同じ日本語フォントになってしまう。

:さて
強引に解決
M-x list-fontsets
とやると
Fontset: -*-*-*-*-*-*-*-*-*-*-*-*-fontset-default
Fontset: -*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard
とでてくる。さらに、
ESC M-:	して ( = M-x eval-expression )
(describe-fontset "-*-*-*-*-*-*-*-*-*-*-*-*-fontset-default")
とすると、カレントバッファのフォントについていろいろ情報が出力される。
これから、日本語フォントとして使っているフォント名を調べ、
そのフォントのエイリアスをフォント検索の優先順の高い場所に書いてしまえ、と。

最初は以下だったが
Fontset: -*-*-*-*-*-*-*-*-*-*-*-*-fontset-default
CHARSET or CHAR RANGE	FONT NAME
---------------------	---------
ascii			-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
     [-B&H-LucidaTypewriter-Bold-R-Normal-Sans-12-120-75-75-M-70-ISO8859-1]
     [-Adobe-Helvetica-Medium-R-Normal--8-80-75-75-P-46-ISO8859-1]
     [-Adobe-Helvetica-Medium-O-Normal--12-120-75-75-P-67-ISO8859-1]
     [-Adobe-Helvetica-Bold-R-Normal--12-120-75-75-P-70-ISO8859-1]
     [-Adobe-Helvetica-Medium-R-Normal--12-120-75-75-P-67-ISO8859-1]
     [-B&H-LucidaTypewriter-Medium-R-Normal-Sans-12-120-75-75-M-70-ISO8859-1]
latin-iso8859-1		-*-iso8859-1
latin-iso8859-2		-*-iso8859-2
...(略)...
japanese-jisx0208	-*-*-*-jisx0208.1990-*
     [-Misc-Fixed-Medium-R-Normal--14-130-75-75-C-140-JISX0208.1983-0]

最終的にはこうなった。
Fontset: -*-*-*-*-*-*-*-*-*-*-*-*-fontset-default
CHARSET or CHAR RANGE	FONT NAME
---------------------	---------
ascii			-adobe-courier-medium-r-*-*-*-120-*-*-*-*-iso8859-1
     [-B&H-LucidaTypewriter-Bold-R-Normal-Sans-12-120-75-75-M-70-ISO8859-1]
     [-B&H-LucidaTypewriter-Medium-R-Normal-Sans-12-120-75-75-M-70-ISO8859-1]
latin-iso8859-1		-*-iso8859-1
latin-iso8859-2		-*-iso8859-2
...(略)...
japanese-jisx0208	-*-*-*-jisx0208.1990-*
     [-ricoh-ms gothic-medium-r-normal--12-120-72-72-p-122-jisx0208.1983-0]

つか実際どうなんだろ?
japanese-jisx0208	-*-*-*-jisx0208.1990-*
ってあるから、
  • asciiフォント名に対し最後から2番目分を"jisx0208.1983"に変えたヤツをさがしにいって
  • 最初に見つかるフォント
がつかわれるのか?