[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[meadow-develop:1997/41]Font Setting (Re: [meadow-develop:1997/33]Meadow Alpha3.00..)



Hiroki_Tsukahara <asuka@xxxxxxxxxxxxxxxx> writes:

>  Miyashita Hisashi(宮下 尚:HIMI) さんの 
>  [meadow-develop:1997/33]Meadow Alpha3.00 Release. But... に答えて..
> 
> >フォントの扱いはかなり変わってます。....;_;
> >そのかわり、かなり強力にしました。.......
>   え〜って、それでどのようにすれば良いのでしょうか?
>   himiさんの、フォントの設定を見せてもらえません?
> 
>   サンプルの.emacsがあればそれなりに類推が効くかな、と
>   思うんですけど..

うー、ごめんなさい。わたし、現在font設定の新しい関数群を設定してまして、
私の設定はそれが含まれてます。サンプルはちゃんと別に作ろうかと思ったのですが、
面倒くさいので、適当に流してしまいます。

強力にした部分は極力mw32fontに隠しました。
# default-fontsetの作成に使われます。
この機能を自分の.emacsの中でも使えないかなぁと思っているのですが、
いいインターフェースが思い付かない。

### ソースをまとめるように夜中にバッチ仕掛けていったら、途中で
### エラー出して死んでた。かなしい。

(defun normal-font-regist (fontname bdffile &optional encoding)
  (if (null encoding) (setq encoding 0))
  (let ((bdfatt (w32-get-logfont-info (list 'bdf-font bdffile))))
    (if bdfatt
	(progn
	  (cond ((symbolp encoding)
		 (setq bdfatt (append (list
				       (cons 'encoder encoding)
				       (cons 'encoding-type 0))
				      bdfatt)))
		((numberp encoding)
		 (setq bdfatt (cons (cons 'encoding-type encoding)
				    bdfatt))))
	  (w32-add-font fontname bdfatt)
	  (w32-change-font-logfont fontname 0
				   (list 'bdf-font bdffile))))))

(defun create-font-from-logfont (name logfont-list &optional encoding-type alist)
;  (w32-check-logfont logfont)
  (if (null encoding-type) (setq encoding-type 0))
  (let ((prop (append (list (cons 'encoding-type encoding-type))
		      alist 
		      (w32-get-logfont-info (car logfont-list))))
	(i 0)
	logfont)
    (w32-add-font name prop)
    (while (setq logfont (car logfont-list))
      (w32-change-font-logfont name i logfont)
      (setq i (1+ i))
      (setq logfont-list (cdr logfont-list)))))

(let ((font "Courier-16"))
  (create-font-from-logfont 
   font 
   '((w32-logfont "Courier New" 0 -16 400 0 nil nil nil 0 1 3 49)
     (w32-logfont "Courier New" 0 -16 700 0 nil nil nil 0 1 3 49)
     (w32-logfont "Courier New" 0 -16 400 0 t nil nil 0 1 3 49)
     (w32-logfont "Courier New" 0 -16 700 0 t nil nil 0 1 3 49))))

(let ((font "Courier-16-ISO-8859-1"))
  (create-font-from-logfont 
   font 
   '((w32-logfont "Courier New" 0 -16 400 0 nil nil nil 0 1 3 49)
     (w32-logfont "Courier New" 0 -16 700 0 nil nil nil 0 1 3 49)
     (w32-logfont "Courier New" 0 -16 400 0 t nil nil 0 1 3 49)
     (w32-logfont "Courier New" 0 -16 700 0 t nil nil 0 1 3 49))
   1))

(let ((font "Nihongo-16")
      (logfont 
       '(w32-logfont "MS Gothic" 0 -16 400 0 nil nil nil 128 1 3 49))
      (logfonti
       '(w32-logfont "MS Mincho" 0 -16 400 0 nil nil nil 128 1 3 17)))
  (create-font-from-logfont
   font 
   (list logfont
	 (change-logfont-weight logfont 300)
	 logfonti
	 (change-logfont-weight logfonti 300))
   4))

(w32-add-font "Hojokanji-14" 
	      '((default-ascent . 0)
		(relative-compose . 0)
		(encoding-type . 0)
		(overhang . 0)
		(base . 13)
		(height . 15)
		(width . 14)))

(w32-change-font-logfont
 "Hojokanji-14" 0 
 (list 'bdf-font
       (expand-file-name "~/mule/bdf/japanese/jisksp14.bdf")))

(new-fontset "private-fontset" '((ascii . "Courier-16")
				 (latin-iso8859-1 . "Courier-16-ISO-8859-1")
				 (katakana-jisx0201 . "Nihongo-16")
				 (japanese-jisx0208 . "Nihongo-16")
				 (latin-jisx0201 . "Nihongo-16")
				 (japanese-jisx0212 . "Hojokanji-14")
				 ))