Hatena::ブログ(Diary)

my-misc.blog

 | 

2011-01-13

[] Cocoa Emacs フォントセット設定で不可解な現象

追記

2011-2-20 半田さんから対処し「Emacs の Bazaar レポジトリの emacs-23 branch」に commit したとの連絡を頂きました。私は締め切りが近い書類を提出後に試す予定です。

2011-2-22 確認しましたが、この問題はまだ直っていないようです。

本文

なぜか、inhibit-startup-message を t にして、face-font-rescale-alist を与え、background-color を default-frame-alist に加える、という3つの組み合わせでフォントの設定ができなくなる。background-color ではなく、foreground-colorだと大丈夫。inhibit-startup-messageをnilにするだけでも大丈夫。すごい謎。

(setq inhibit-startup-message t)
(create-fontset-from-ascii-font
 "Menlo-14:weight=normal:slant=normal" nil "menlomarugo")
(set-fontset-font "fontset-menlomarugo"
		  'unicode
		  (font-spec :family "Hiragino Maru Gothic ProN")
		  nil
		  'append)
(setq face-font-rescale-alist '((".*Hiragino.*" . 1.2)
				(".*Menlo.*" . 1.0)))
(add-to-list 'default-frame-alist '(font . "fontset-menlomarugo"))
(add-to-list 'default-frame-alist '(background-color . "white"))

Emacs は、OSX Workshop 10.6から。

GNU Emacs 23.2.1 (x86_64-apple-darwin10, NS apple-appkit-1038.35) of 2011-01-12 on MacProE2008 - MacOS X WorkShop - 10.6 

追記

;; 
;; フォントセットを作り、デフォルトフレームのパラメータに追加する
(let* ((fontset-name "myfonts") 
       (size 14)
       (asciifont "Monaco")
       (font (format "%s-%d:weight=normal:slant=normal" asciifont size)))
  (create-fontset-from-ascii-font font nil fontset-name))
(add-to-list 'default-frame-alist '(font . "fontset-myfonts"))
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; 以下の3つの設定のいずれかを外すと、
;; Emacs 起動時のフレームにフォントセットが正しく設定される。
;;;;
;;(1)
(setq inhibit-startup-screen t)
;;(2)
(add-to-list 'default-frame-alist '(background-color . "FloralWhite"))
;;(3)
(setq face-font-rescale-alist
	'(("^-apple-hiragino.*" . 1.2)
	  (".*osaka-bold.*" . 1.2)
	  (".*osaka-medium.*" . 1.2)
	  (".*courier-bold-.*-mac-roman" . 1.0)
	  (".*monaco cy-bold-.*-mac-cyrillic" . 0.9)
	  (".*monaco-bold-.*-mac-roman" . 0.9)
	  ("-cdac$" . 1.3)))
;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;正しい動作 (上の3つの設定の何れかを外した場合)
;;(face-attribute 'default :fontset)
;;"-apple-monaco-medium-normal-normal-*-*-140-*-*-m-0-fontset-myfonts"
;;M-x list-fontsets の結果
;; Fontset: -*-*-*-*-*-*-*-*-*-*-*-*-fontset-default
;; Fontset: -apple-monaco-medium-normal-normal-*-*-140-*-*-m-0-fontset-myfonts
;; Fontset: -ns-*-*-*-*-*-10-*-*-*-*-*-fontset-standard
;; Fontset: -apple-Monaco-medium-normal-normal-*-*-*-*-*-m-0-fontset-startup
;; 
;; Emacs 23.2 で3つの設定を有効にした場合
;;(face-attribute 'default :fontset)
;;"-apple-Monaco-medium-normal-normal-*-14-*-*-*-m-0-fontset-auto2"
;;M-x list-fontsets の結果
;; Fontset: -apple-Times_New_Roman-medium-normal-normal-*-12-*-*-*-p-0-fontset-auto1
;; Fontset: -apple-Monaco-medium-normal-normal-*-14-*-*-*-m-0-fontset-auto2
;; Fontset: -*-*-*-*-*-*-*-*-*-*-*-*-fontset-default
;; Fontset: -apple-monaco-medium-normal-normal-*-*-140-*-*-m-0-fontset-myfonts
;; Fontset: -ns-*-*-*-*-*-10-*-*-*-*-*-fontset-standard
;; Fontset: -apple-Monaco-medium-normal-normal-*-*-*-*-*-m-0-fontset-startup
;;
;; Emacs 24.0.50 で3つの設定を有効にした場合
;;(face-attribute 'default :fontset)
;;"-apple-monaco-medium-normal-normal-*-*-140-*-*-m-0-fontset-myfonts"
;;M-x list-fontsets の結果
;; Fontset: -apple-Times_New_Roman-medium-normal-normal-*-12-*-*-*-p-0-fontset-auto1
;; Fontset: -*-*-*-*-*-*-*-*-*-*-*-*-fontset-default
;; Fontset: -apple-monaco-medium-normal-normal-*-*-140-*-*-m-0-fontset-myfonts
;; Fontset: -ns-*-*-*-*-*-10-*-*-*-*-*-fontset-standard
;; Fontset: -apple-Monaco-medium-normal-normal-*-*-*-*-*-m-0-fontset-startup
 |