Seiji Zenitani
zenit****@users*****
2005年 11月 19日 (土) 11:28:15 JST
Index: CarbonEmacsPackage/GPL/mac/carbon-font.el diff -u CarbonEmacsPackage/GPL/mac/carbon-font.el:1.2 CarbonEmacsPackage/GPL/mac/carbon-font.el:1.3 --- CarbonEmacsPackage/GPL/mac/carbon-font.el:1.2 Tue Nov 1 00:48:26 2005 +++ CarbonEmacsPackage/GPL/mac/carbon-font.el Sat Nov 19 11:28:15 2005 @@ -1,8 +1,8 @@ ;;; carbon-font.el -- fontsets for Carbon Emacs -*- coding: iso-2022-7bit -*- ;; Copyright (C) 2004-2005 by T. Hiromatsu <matsu****@users*****> -;; Version 1_5_1 -;; 2005-10-04 +;; Version 1_5_3 +;; 2005-11-17 ;;; Commentary: @@ -79,16 +79,45 @@ ;; (if (eq window-system 'mac) (require 'carbon-font)) ;; ;; 2.3. set fontset -;; Fontset names doesn't include size. If you set the fontset like as -;; (set-default-font "fontset-hiraginomaru") -;; font size was set to 12 (default). -;; -;; If you want to use another size, please use full fontset name like as -;; (set-default-font -;; "-*-*-medium-r-normal--8-*-*-*-*-*-fontset-hiraginomaru") +;; If font is defined like as +;; "fontset-hiraginokaku", +;; 12point of ヒラギノ角ゴシック(hiraginokaku) is used. +;; +;; If you want to use other sizes, please use full XLFD name like as +;; "-*-*-medium-r-normal--8-*-*-*-*-*-fontset-hiraginomaru" +;; +;; 2.3.1. If you are not familiar to emacs lisp, follow this section. +;; +;; To define default fontset, I suggest you to use +;; 'fixed-width-set-default-fontset as below. +;; 12point +;; (fixed-width-set-default-fontset "fontset-hiraginokaku") +;; other sizes +;; (fixed-width-set-default-fontset +;; "-*-*-medium-r-normal--8-*-*-*-*-*-fontset-hiraginokaku") +;; +;; On initial frame, to use different font from default one, please set +;; (add-to-list 'initial-frame-alist '(font . "fontset-hiraginomaru")) +;; or ;; (add-to-list -;; 'default-frame-alist -;; '(font . "-*-*-medium-r-normal--8-*-*-*-*-*-fontset-hiraginomaru")) +;; 'initial-frame-alist +;; '(font . "-*-*-medium-r-normal--8-*-*-*-*-*-fontset-hiraginomaru")) +;; +;; To change fontset only on current frame, set +;; (set-frame-font "fontset-hiraginomaru") +;; or +;; (set-frame-font +;; "-*-*-medium-r-normal--8-*-*-*-*-*-fontset-hiraginomaru") +;; +;; 2.3.2. If you are familiar to E-lisps +;; +;; In .emacs.el, by setting ('font . fontset-name) in +;; 'default-frame-alist +;; or +;; 'initial-frame-alist +;; font "fontset-name" should be used. +;; +;; To change font on current frame, please use 'set-frame-font. ;; ;; 3. create your own fontset ;; If you want to create another fontset, please use new function @@ -170,22 +199,48 @@ ;; としてください。 ;; ;; 2.3. set fontset -;; 次のようにした場合、 -;; (set-default-font "fontset-hiraginokaku") +;; 次のように指定した場合、 +;; "fontset-hiraginokaku" ;; ヒラギノ角ゴシックの12point が使われます。 ;; ;; これ以外のサイズを使いたい場合は、 +;; "-*-*-medium-r-normal--8-*-*-*-*-*-fontset-hiraginomaru" +;; の様に、フルXLFDネームを指定してください。 ;; -;; (set-default-font -;; "-*-*-medium-r-normal--8-*-*-*-*-*-fontset-hiraginomaru") +;; 2.3.1. emacs lisp に馴染の無い方の為に +;; +;; デフォルトで使うフォントセットの指定する場合は以下のように +;; fixed-width-set-default-fontset を使ってください。 +;; 12pointを使う場合 +;; (fixed-width-set-default-fontset "fontset-hiraginokaku") +;; 12point以外のサイズを使う場合 +;; (fixed-width-set-default-fontset +;; "-*-*-medium-r-normal--8-*-*-*-*-*-fontset-hiraginokaku") +;; +;; 最初のフレームだけ、別のfontsetを使いたい場合は、 +;; (add-to-list 'initial-frame-alist '(font . "fontset-hiraginomaru")) +;; や、 ;; (add-to-list -;; 'default-frame-alist +;; 'initial-frame-alist ;; '(font . "-*-*-medium-r-normal--8-*-*-*-*-*-fontset-hiraginomaru")) +;; 等として下さい。 ;; +;; 今カーソルの有るフレームだけ、フォントを変更したい場合は、 +;; (set-frame-font "fontset-hiraginomaru") +;; や +;; (set-frame-font +;; "-*-*-medium-r-normal--8-*-*-*-*-*-fontset-hiraginomaru") ;; としてください。 ;; -;; 最初は、fontsetの指定をしないで、shift + click で出てくる、fontset -;; menu から、お好みの物を探す方が良いかもしれません。 +;; 2.3.2. emacs lisp を理解して居られる方に +;; +;; .emacs.el で +;; 'default-frame-alist +;; 及び +;; 'initial-frame-alist +;; に、('font . fontset-name) を設定することにより、fontset-name が各々 +;; 有効になります。 +;; 又、現在のフレームのフォントを変更するには、set-frame-font をお使い下さい。 ;; ;; 3. 別のフォントセットを作りたい場合 ;; 別の組合せの fontset を設定したい場合。(新機能) @@ -268,7 +323,7 @@ (defvar carbon-font-defined-sizes '(12 7 8 9 10 14 16 18 20 24)) ;; -;; hiraginomaru** = ヒラギノ丸ゴ + monaco(alternative) +;; hiraginomaru = ヒラギノ丸ゴ + monaco ;; (defvar carbon-font-encode-family-list-hiraginomaru @@ -287,7 +342,7 @@ carbon-font-encode-family-list-hiraginomaru) ;; -;; hiraginokaku** = ヒラギノ角ゴ + monaco(alternative) +;; hiraginokaku = ヒラギノ角ゴ + monaco ;; (defvar carbon-font-encode-family-list-hiraginokaku @@ -305,7 +360,7 @@ carbon-font-encode-family-list-hiraginokaku) ;; -;; hiraginomin** = ヒラギノ明朝 + courier +;; hiraginomin = ヒラギノ明朝 + courier ;; (defvar carbon-font-encode-family-list-hiraginomin @@ -323,7 +378,7 @@ carbon-font-encode-family-list-hiraginomin) ;; -;; osaka** = osaka + monaco(alternative) +;; osaka = osaka + monaco ;; (defvar carbon-font-encode-family-list-osaka Index: CarbonEmacsPackage/GPL/mac/fixed-width-fontset.el diff -u CarbonEmacsPackage/GPL/mac/fixed-width-fontset.el:1.2 CarbonEmacsPackage/GPL/mac/fixed-width-fontset.el:1.3 --- CarbonEmacsPackage/GPL/mac/fixed-width-fontset.el:1.2 Tue Nov 1 00:48:26 2005 +++ CarbonEmacsPackage/GPL/mac/fixed-width-fontset.el Sat Nov 19 11:28:15 2005 @@ -1,8 +1,8 @@ ;;; fixed-width-fontset.el -*- coding: iso-2022-7bit -*- ;; Copyright (C) 2005 by T. Hiromatsu <matsu****@users*****> -;; Version 1_0_1 -;; 2005-10-04 +;; Version 1_0_3 +;; 2005-11-17 ;;; Commentary: @@ -92,11 +92,16 @@ ;; カレントフレームで使われているフォントの、リスケールファクターを、 ;; fixed-width-scale-alist から、取得する。 -(defun fixed-width-append-factor (&optional frame) +(defun fixed-width-append-factor (&optional frame init) "取得した rescale factor で、face-font-rescale-alist を書き換える。" - (let* ((rescale-alist (copy-alist face-font-rescale-alist)) - (xlfd-fields (x-decompose-font-name (frame-parameter frame 'font))) - (size (aref xlfd-fields xlfd-regexp-pixelsize-subnum))) + (let* ((alst (frame-parameter frame 'face-font-rescale-alist)) + (rescale-alist (copy-alist (or alst face-font-rescale-alist))) + (init-font (if init (cdr (assoc 'font initial-frame-alist)))) + (frm-font (frame-parameter frame 'font)) + (def-font (cdr (assoc 'font default-frame-alist))) + (fontset (or init-font frm-font def-font "fontset-default")) + (asc (if (fontset-name-p fontset) (fontset-font fontset ?a) fontset)) + (size (aref (x-decompose-font-name asc) xlfd-regexp-pixelsize-subnum))) (dolist (elt fixed-width-get-scale-alist) (let* ((font (car elt)) (new (or (cdr (assoc size elt)) 1.0)) @@ -108,20 +113,38 @@ "Initialize frame-parameter when creating new frame." (let ((lst `((face-font-rescale-alist . ,(fixed-width-append-factor frame))))) (modify-frame-parameters frame lst) - (fixed-width-append-factor fixed-width-initial-frame))) + (if (frame-live-p fixed-width-initial-frame) + (fixed-width-append-factor fixed-width-initial-frame)))) + +(defun fixed-width-set-default-fontset (fontset) + "Set default font of default-frame-alist" + (let ((old (assoc 'font default-frame-alist))) + (if old (setcdr old fontset) + (add-to-list 'default-frame-alist (cons 'font fontset))))) ;; フォントが変更された場合にフックをかけて、 ;; fixed-width-append-factor を起動する。 -(defvar fixed-width-initial-frame (caar (cdr (current-frame-configuration)))) +(defvar fixed-width-initial-frame nil) (make-variable-frame-local 'face-font-rescale-alist) (add-hook 'after-make-frame-functions '(lambda (frame) (fixed-width-make-frame-function frame))) +(add-hook 'before-make-frame-hook + '(lambda () + (or fixed-width-initial-frame + (setq fixed-width-initial-frame (selected-frame))))) + (add-hook 'after-setting-font-hook - '(lambda () (fixed-width-append-factor nil))) + '(lambda () + (fixed-width-append-factor nil) + (if (frame-live-p fixed-width-initial-frame) + (progn (select-frame fixed-width-initial-frame) + (fixed-width-append-factor fixed-width-initial-frame))))) + +(add-hook 'emacs-startup-hook '(lambda () (fixed-width-append-factor nil t))) (provide 'fixed-width-fontset)