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

HELLO 全部表示プロジェクト (was: 1st tyr of Meadow/3.00-dev (KIKU))



白井です。

From:  小関 吉則 (KOSEKI Yoshinori) <kose@xxxxxxxxxxx> さん曰く
Subject: Re: 1st tyr of Meadow/3.00-dev (KIKU)
Message-ID: <2005092987mzlw6wxq.00kose@xxxxxxxxxxx>
Date: Thu, 29 Sep 2005 18:32:49 +0900
> 
> >>>>> In [meadow-users-jp : No.6591] 
> >>>>> “白井” = Hideyuki SHIRAI (白井秀行) wrote:
> 白井>       ;; mule-unicode
> 白井>       ((:char-spec mule-unicode-0100-24ff :height any :weight any :slant any)
> 白井>        strict (bdf-font ,(expand-file-name "b16.bdf" dir))
> 白井>        ((encoding . unicode-font-encoder)))
>                           ^^^^^^^^^^^^^^^^^^^^^
> もしかしてこの unicode-font-encoder は Mule-UCS を使わないと
> 使えない?
> 
> つまり Mule-UCS がないと mule-unicode-* は豆腐のままってこと?

Mule-UCS なんて関係ないじゃん。と思ったら、unicode-font-encoder
は Mule-UCS が定義しているのね。

(w32-regist-font-encoder
 'encode-unicode-font 'ccl-encode-unicode-font)

とかしておいて、encode-unicode-font を使えば Mule-UCS が無くても
大丈夫みたい。これ、Byte はいらないのかなぁ?

以下、本題。

HELLO に限らず Meadow が扱える font の登録方法は特にマニュアルが
あるわけではない(と思う)ので、従来からごにょごにょやっていたのだ
けど、「あぁ、こうやればいいんだ」と自分なりに理解したものを書い
ておきます。

(1) どんな character set があるか調べる。

   fontset.el の setup-default-fontset() をじーーとみるのが一
   番良いと思う。

(2) (1) で調べた character set を表示するのに必要な BDF file を
    調べる。

   これが結構大変なんだけど、きちんと全部表示できるようにした
   X/UNIX 上の Emacs で M-x list-character-sets して、任意の
   character list を出して、C-uM-x what-cursor-position した
   XLFD 情報から、もとの BDF file を突き止めるぐらいかな。おいら
   がやっているのは。
      
(3) (1) (2) をもとに w32-add-font() などをするわけだけど、もうひ
   とつ必要な情報である font encoding を調べる。

   これがいまいちやりかたがわからん。cut & try になることもある。
 
# X だと (2), (3), (4) は必要ないのだけどね。しょうがないよなぁ。

とりあえず、ぼくの font 設定をつけておきますね。基本的には

・intlfont (ただし、バージョンが古いので今のとファイル名が違う)
・CDAC font
・AkrutiFreeFonts font
・efont の unicode font
・その他、もしかすると、もうすでにどこからもらってきたのか忘れて
  いるようなものもあるかも。

となっています。

## 続きの話もあるのだけど、それは dev-ML の方が良いかな?

-- 
白井秀行 (mailto:shirai@xxxxxxxxxxx)
(w32-regist-font-encoder
 'encode-unicode-font 'ccl-encode-unicode-font)

(w32-regist-font-encoder
 'encode-indian-glyph-font 'ccl-encode-indian-glyph-font 1)

(let (;; intlfonts とその他の font
      (dir "c:/usr/fonts/intlfonts")
      ;; http://www.m17n.org/emacs-indian/cdacfonts.tar.gz
      (cdac "c:/usr/fonts/CDAC")
      ;; http://www.m17n.org/emacs-indian/AkrutiFreeFonts.tar.gz
      (akruti "c:/usr/fonts/AkrutiFreeFonts"))
  (w32-add-font
   "font16-fontset"
   `((spec
      ((:char-spec ascii :height any :weight normal :slant normal)
       strict (bdf-font ,(expand-file-name "etl16-latin1.bdf" dir)))
      ((:char-spec ascii :height any :weight bold :slant normal)
       strict (bdf-font ,(expand-file-name "etl16b-latin1.bdf" dir)))
      ((:char-spec ascii :height any :weight normal :slant any)
       strict (bdf-font ,(expand-file-name "etl16i-latin1.bdf" dir)))
      ((:char-spec ascii :height any :weight bold :slant any)
       strict (bdf-font ,(expand-file-name "etl16bi-latin1.bdf" dir)))

      ((:char-spec katakana-jisx0201 :height any :weight normal :slant normal)
       strict (bdf-font ,(expand-file-name "8x16rk.bdf" dir))
       ((encoding . 1-byte-set-msb)))
      ((:char-spec katakana-jisx0201 :height any :weight bold :slant normal)
       strict (bdf-font ,(expand-file-name "8x16rkbold.bdf" dir))
       ((encoding . 1-byte-set-msb)))
      ((:char-spec katakana-jisx0201 :height any :weight normal :slant any)
       strict (bdf-font ,(expand-file-name "8x16rkmr.bdf" dir))
       ((encoding . 1-byte-set-msb)))
      ((:char-spec katakana-jisx0201 :height any :weight bold :slant any)
       strict (bdf-font ,(expand-file-name "8x16rkmrbold.bdf" dir))
       ((encoding . 1-byte-set-msb)))

      ((:char-spec latin-jisx0201 :height any :weight normal :slant normal)
       strict (bdf-font ,(expand-file-name "8x16rk.bdf" dir)))
      ((:char-spec latin-jisx0201 :height any :weight bold :slant normal)
       strict (bdf-font ,(expand-file-name "8x16rkbold.bdf" dir)))
      ((:char-spec latin-jisx0201 :height any :weight normal :slant any)
       strict (bdf-font ,(expand-file-name "8x16rkmr.bdf" dir)))
      ((:char-spec latin-jisx0201 :height any :weight bold :slant any)
       strict (bdf-font ,(expand-file-name "8x16rkmrbold.bdf" dir)))

      ((:char-spec japanese-jisx0212 :height any :weight normal :slant normal)
       strict (bdf-font ,(expand-file-name "jisksp16.bdf" dir)))
      ((:char-spec japanese-jisx0212 :height any :weight bold :slant normal)
       strict (bdf-font ,(expand-file-name "jisksp16bold.bdf" dir)))
      ((:char-spec japanese-jisx0212 :height any :weight normal :slant any)
       strict (bdf-font ,(expand-file-name "jisksp16.bdf" dir)))
      ((:char-spec japanese-jisx0212 :height any :weight bold :slant any)
       strict (bdf-font ,(expand-file-name "jisksp16bold.bdf" dir)))

      ((:char-spec japanese-jisx0208 :height any :weight normal :slant normal)
       strict (bdf-font ,(expand-file-name "jiskan16.bdf" dir)))
      ((:char-spec japanese-jisx0208 :height any :weight bold :slant normal)
       strict (bdf-font ,(expand-file-name "jiskan16bold.bdf" dir)))
      ((:char-spec japanese-jisx0208 :height any :weight normal :slant any)
       strict (bdf-font ,(expand-file-name "maru16.bdf" dir)))
      ((:char-spec japanese-jisx0208 :height any :weight bold :slant any)
       strict (bdf-font ,(expand-file-name "maru16bold.bdf" dir)))

      ((:char-spec japanese-jisx0208-1978 :height any :weight normal :slant normal)
       strict (bdf-font ,(expand-file-name "jiskan16-1978.bdf" dir)))
      ((:char-spec japanese-jisx0208-1978 :height any :weight bold :slant normal)
       strict (bdf-font ,(expand-file-name "jiskan16bold-1978.bdf" dir)))
      ((:char-spec japanese-jisx0208-1978 :height any :weight normal :slant any)
       strict (bdf-font ,(expand-file-name "jiskan16-1978.bdf" dir)))
      ((:char-spec japanese-jisx0208-1978 :height any :weight bold :slant any)
       strict (bdf-font ,(expand-file-name "jiskan16bold-1978.bdf" dir)))

      ((:char-spec japanese-jisx0213-1 :height any :weight normal :slant normal)
       strict (bdf-font ,(expand-file-name "jiskan16-2000-1.bdf" dir)))
      ((:char-spec japanese-jisx0213-1 :height any :weight bold :slant normal)
       strict (bdf-font ,(expand-file-name "jiskan16-2000-1-bold.bdf" dir)))
      ((:char-spec japanese-jisx0213-1 :height any :weight normal :slant any)
       strict (bdf-font ,(expand-file-name "jiskan16-2000-1-italic.bdf" dir)))
      ((:char-spec japanese-jisx0213-1 :height any :weight bold :slant any)
       strict (bdf-font ,(expand-file-name "jiskan16-2000-1-italic-bold.bdf" dir)))

      ((:char-spec japanese-jisx0213-2 :height any :weight normal :slant normal)
       strict (bdf-font ,(expand-file-name "jiskan16-2000-2.bdf" dir)))
      ((:char-spec japanese-jisx0213-2 :height any :weight bold :slant normal)
       strict (bdf-font ,(expand-file-name "jiskan16-2000-2-bold.bdf" dir)))
      ((:char-spec japanese-jisx0213-2 :height any :weight normal :slant any)
       strict (bdf-font ,(expand-file-name "jiskan16-2000-2-italic.bdf" dir)))
      ((:char-spec japanese-jisx0213-2 :height any :weight bold :slant any)
       strict (bdf-font ,(expand-file-name "jiskan16-2000-2-italic-bold.bdf" dir)))

      ((:char-spec latin-iso8859-1 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-latin1.bdf" dir))
       ((encoding . 1-byte-set-msb)))
      ((:char-spec latin-iso8859-2 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-latin2.bdf" dir))
       ((encoding . 1-byte-set-msb)))
      ((:char-spec latin-iso8859-3 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-latin3.bdf" dir))
       ((encoding . 1-byte-set-msb)))
      ((:char-spec latin-iso8859-4 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-latin4.bdf" dir))
       ((encoding . 1-byte-set-msb)))
      ((:char-spec cyrillic-iso8859-5 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-cyrillic.bdf" dir))
       ((encoding . 1-byte-set-msb)))
      ((:char-spec arabic-iso8859-6 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "b16-ISO8859-6.bdf" dir))
       ((encoding . 1-byte-set-msb)))
      ((:char-spec greek-iso8859-7 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-greek.bdf" dir))
       ((encoding . 1-byte-set-msb)))
      ((:char-spec hebrew-iso8859-8 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-hebrew.bdf" dir))
       ((encoding . 1-byte-set-msb)))
      ((:char-spec latin-iso8859-9 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-latin5.bdf" dir))
       ((encoding . 1-byte-set-msb)))

      ((:char-spec latin-iso8859-14 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "b16-ISO8859-14.bdf" dir))
       ((encoding . 1-byte-set-msb)))
      ((:char-spec latin-iso8859-15 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "b16-ISO8859-15.bdf" dir))
       ((encoding . 1-byte-set-msb)))

      ((:char-spec chinese-big5-1 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "taipei16.bdf" dir))
       ((encoding . encode-big5-font)))
      ((:char-spec chinese-big5-2 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "taipei16.bdf" dir))
       ((encoding . encode-big5-font)))
      ((:char-spec chinese-sisheng :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "sish16-etl.bdf" dir)))
      ;; ((encoding . encode-big5-font)))

      ((:char-spec chinese-gb2312 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "gb16fs.bdf" dir)))

      ((:char-spec chinese-cns11643-1 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "cns-1-16.bdf" dir)))
      ((:char-spec chinese-cns11643-2 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "cns-2-16.bdf" dir)))
      ((:char-spec chinese-cns11643-3 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "cns-3-16.bdf" dir)))
      ((:char-spec chinese-cns11643-4 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "cns-4-16.bdf" dir)))
      ((:char-spec chinese-cns11643-5 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "cns-5-16.bdf" dir)))
      ((:char-spec chinese-cns11643-6 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "cns-6-16.bdf" dir)))
      ((:char-spec chinese-cns11643-7 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "cns-7-16.bdf" dir)))

      ((:char-spec korean-ksc5601 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "hanglg16.bdf" dir))) ;; "hanglm16.bdf"

      ((:char-spec thai-tis620 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "thai-16.bdf" dir))
       ((encoding . 1-byte-set-msb) (relative-compose . -1)))

      ((:char-spec vietnamese-viscii-lower :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-viscii.bdf" dir))
       ((encoding . encode-viscii-font)))
      ((:char-spec vietnamese-viscii-upper :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-viscii.bdf" dir))
       ((encoding . encode-viscii-font)))

      ((:char-spec arabic-digit :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-arabic0.bdf" dir)))
      ((:char-spec arabic-1-column :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-arabic1.bdf" dir)))
      ((:char-spec arabic-2-column :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-arabic2.bdf" dir)))

      ((:char-spec ipa :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl16-ipa.bdf" dir))
       ((encoding . 1-byte-set-msb)))

      ((:char-spec lao :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "mule-lao-16.bdf" dir))
       ((encoding . 1-byte-set-msb)))

      ((:char-spec ethiopic :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "ethiomx16f-uni.bdf" dir))
       ((encoding . encode-ethio-font)))

      ((:char-spec tibetan :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "mule-tibmdx-16.bdf" dir)))
      ((:char-spec tibetan-1-column :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "mule-tibmdx-1col-16.bdf" dir)))

      ((:char-spec mule-unicode-0100-24ff :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "b16.bdf" dir))
       ((encoding . encode-unicode-font)))
      ((:char-spec mule-unicode-2500-33ff :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "b16.bdf" dir))
       ((encoding . encode-unicode-font)))
      ((:char-spec mule-unicode-e000-ffff :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "b16.bdf" dir))
       ((encoding . encode-unicode-font)))

      ;; indian
      ((:char-spec indian-is13194 :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "mule-iscii-16.bdf" dir)))
      ((:char-spec indian-2-column :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "mule-indian-16.bdf" dir)))

      ((:char-spec ,(decode-char 'ucs #x0900) :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "ind16-uni.bdf" dir))
       ((encoding . encode-unicode-font)))

      ((:char-spec ,(car (indian-font-char-range 'cdac:dv-ttsurekh))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "dvsr0ntt-16.bdf" cdac))
       ((encoding . encode-indian-glyph-font)))
      ((:char-spec ,(car (indian-font-char-range 'cdac:sd-ttsurekh))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "sdsr0ntt-16.bdf" cdac))
       ((encoding . encode-indian-glyph-font)))
      ((:char-spec ,(car (indian-font-char-range 'cdac:bn-ttdurga))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "bndr0ntt-16.bdf" cdac))
       ((encoding . encode-indian-glyph-font)))
      ((:char-spec ,(car (indian-font-char-range 'cdac:as-ttdurga))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "asdr0ntt-16.bdf" cdac))
       ((encoding . encode-indian-glyph-font)))
      ((:char-spec ,(car (indian-font-char-range 'cdac:pn-ttamar))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "pnam0ntt-16.bdf" cdac)))
      ((:char-spec ,(car (indian-font-char-range 'cdac:gj-ttavantika))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "gjav0ntt-16.bdf" cdac))
       ((encoding . encode-indian-glyph-font)))
      ((:char-spec ,(car (indian-font-char-range 'cdac:or-ttsarala))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "orsr0ntt-16.bdf" cdac))
       ((encoding . encode-indian-glyph-font)))
      ((:char-spec ,(car (indian-font-char-range 'cdac:tm-ttvalluvar))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "tmvl0ntt-16.bdf" cdac))
       ((encoding . encode-indian-glyph-font)))
      ((:char-spec ,(car (indian-font-char-range 'cdac:tl-tthemalatha))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "tlhm0ntt-16.bdf" cdac)))
      ((:char-spec ,(car (indian-font-char-range 'cdac:kn-ttuma))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "knum0ntt-16.bdf" cdac))
       ((encoding . encode-indian-glyph-font)))
      ((:char-spec ,(car (indian-font-char-range 'cdac:ml-ttkarthika))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "mlkr0ntt-16.bdf" cdac))
       ((encoding . encode-indian-glyph-font)))
      
      ((:char-spec ,(car (indian-font-char-range 'akruti:dev))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "dev2-n-16.bdf" akruti))
       ((encoding . encode-indian-glyph-font)))

      ((:char-spec ,(car (indian-font-char-range 'akruti:bng))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "bng2-n-16.bdf" akruti))
       ((encoding . encode-indian-glyph-font)))

      ((:char-spec ,(car (indian-font-char-range 'akruti:pnj))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "pnj2-n-16.bdf" akruti))
       ((encoding . encode-indian-glyph-font)))

      ((:char-spec ,(car (indian-font-char-range 'akruti:guj))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "guj1-n-16.bdf" akruti))
       ((encoding . encode-indian-glyph-font)))

      ((:char-spec ,(car (indian-font-char-range 'akruti:ori))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "ori1-n-16.bdf" akruti))
       ((encoding . encode-indian-glyph-font)))

      ((:char-spec ,(car (indian-font-char-range 'akruti:tml))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "tml1-n-16.bdf" akruti))
       ((encoding . encode-indian-glyph-font)))

      ((:char-spec ,(car (indian-font-char-range 'akruti:tlg))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "tlg2-n-16.bdf" akruti))
       ((encoding . encode-indian-glyph-font)))

      ((:char-spec ,(car (indian-font-char-range 'akruti:knd))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "knd1-n-16.bdf" akruti))
       ((encoding . encode-indian-glyph-font)))

      ((:char-spec ,(car (indian-font-char-range 'akruti:mal))
      		   :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "mal2-n-16.bdf" akruti))
       ((encoding . encode-indian-glyph-font)))

      ;; おまけの bitmap
      ((:char-spec bitmap :height any :weight any :slant any)
       strict (bdf-font ,(expand-file-name "etl8x16-bitmap.bdf" dir)))
      ))))