Saturday, March 14, 2009

NTEmacs 23 で (view-hello-file) ぜんぶ表示してみた

2009/03/13 の NTEmacs 23.0.91 で (view-hello-file) をぜんぶ表示してみた。

NTEmacs 23.0.91 2009/03/13 HELLOPNG 171KB

なんつーか、コンピュータでただ文字を表示するだけのことに感動しちゃったのって、PC-88 で日本語を表示したとき以来な気がする。

同じアジアにいながら、ほとんどの文字をぼくは読めないわけで、左から右に書くのか右から左に書くのか分からないし、フォントが正しく表示されているかどうかも分からないけど、いろんな文字が綺麗すぎてうまく言葉にできない感じです。

こういうのを見ちゃうと、やっぱり Unicode には、二つの中国語と日本語の漢字に、それぞれ別の文字コードを割り当てて欲しかったなぁと思ってしまう。

;;
;; fontset-u1
;; Consolas + MS Gothic + Arial Unicode MS + いろいろ
;;
(create-fontset-from-ascii-font "Consolas 10" nil "u1")

(set-fontset-font "fontset-u1" 'korean-ksc5601
		  '("Malgun Gothic" . "ksc5601.1987-0") nil 'append)
(set-fontset-font "fontset-u1" 'chinese-big5-1
		  '("Microsoft JhengHei" . "big5-0") nil 'append)
(set-fontset-font "fontset-u1" 'chinese-big5-2
		  '("Microsoft JhengHei" . "big5-0") nil 'append)
(set-fontset-font "fontset-u1" 'chinese-gb2312
		  '("Microsoft Yahei" . "gb2312.1980-0") nil 'append)

(set-fontset-font "fontset-u1" 'japanese-jisx0208
		  '("MS Gothic" . "jisx0208-sjis"))
(set-fontset-font "fontset-u1" 'katakana-jisx0201
		  '("MS Gothic" . "jisx0208-sjis"))
(set-fontset-font "fontset-u1" 'japanese-jisx0208-1978
		  '("MS Gothic" . "jisx0208-sjis"))

(set-fontset-font "fontset-u1" 'mule-unicode-0100-24ff
		  "Arial Unicode MS" nil 'append)
(set-fontset-font "fontset-u1" 'mule-unicode-2500-33ff
		  "Arial Unicode MS" nil 'append)
(set-fontset-font "fontset-u1" 'mule-unicode-e000-ffff
		  "Arial Unicode MS" nil 'append)

(set-fontset-font "fontset-u1" 'latin-iso8859-1
		  '("Consolas" . "iso8859-1"))
(set-fontset-font "fontset-u1" 'latin-iso8859-2
		  '("Consolas" . "iso8859-2"))
(set-fontset-font "fontset-u1" 'latin-iso8859-3
		  '("Consolas" . "iso8859-3"))
(set-fontset-font "fontset-u1" 'latin-iso8859-4
		  '("Consolas" . "iso8859-4"))
(set-fontset-font "fontset-u1" 'cyrillic-iso8859-5
		  '("Consolas" . "iso8859-5"))
(set-fontset-font "fontset-u1" 'greek-iso8859-7
		  '("Consolas" . "iso8859-7"))
(set-fontset-font "fontset-u1" 'hebrew-iso8859-8
		  '("Arial Unicode MS" . "iso8859-8"))
(set-fontset-font "fontset-u1" 'latin-iso8859-9
		  '("Consolas" . "iso8859-9"))
(set-fontset-font "fontset-u1" 'thai-tis620
		  '("Arial Unicode MS" . "tis620-0"))

;; Ethiopic / jiret.ttf
(set-fontset-font "fontset-u1" 'ethiopic
		  '("Ethiopia Jiret" . "iso10646-1") nil 'append)
;; Burmese ビルマ語 / Padauk.ttf
(set-fontset-font "fontset-u1" 'mule-unicode-0100-24ff
		  '("Padauk" . "iso10646-1") nil 'append)
;; Khmer クメール語 / KhmerOS.ttf
(set-fontset-font "fontset-u1" 'mule-unicode-0100-24ff
		  '("Khmer OS" . "iso10646-1") nil 'append)
;; Oriya オリヤー語 / ori1UniMed.ttf
(set-fontset-font "fontset-u1" 'mule-unicode-0100-24ff
		  '("ori1Uni" . "iso10646-1") nil 'append)
;; Sinhala / Sinhalese: the Indic language spoken by the people of Sri Lanka
(set-fontset-font "fontset-u1" 'mule-unicode-0100-24ff
		  '("KaputaUnicode" . "iso10646-1") nil 'append)

(set-fontset-font "fontset-u1" nil "Arial Unicode MS" nil 'append)

正直、むちゃくちゃな設定だと思います…。

CJK については、japanese-jisx0208, chinese-gb2312, chinese-big5-1 / 2, korean-ksc5601 で漢字をそれぞれこれらのフォントで表示できるのか、そういう設定が可能なのかどうか良く分かりません。(以前はできていたので、もしかしたらできるのかも知れません)

使われているフォントは以下のとおり。

ビルマ語、クメール語など、個々のフォントファイルを導入している言語は、探してみると想像以上に多くのフォントがネット上にあるので、必ずコレじゃなきゃダメというわけではないです。ライセンスが GPL や OFL なフォントがいくつもあるのでお好みで。

Arial Unicode MS は Microsoft の Office 製品などに含まれているものです。なんかこれもぐぐるとごにょれるみたいだけど知らない。

fontset-default に fall back して表示されているものもあると思います。点字とか。

追記@Fri Jan 21 23:02:29 2011

5 comments:

  1. hi, could you tell me how to type khmer in your emacs? I tried it long time but still can not handle it, thanks in advanced!

    ReplyDelete
  2. @asnahu,
    I didn't type any right-to-left language, such as Khmer, Arabic, to display HELLO file, so I don't know how to type Khmer, sorry.

    If I recall correctly, the Emacs 23 is not support bidirectional editing. but developing version of Emacs 24 seems to have that. You may follow the link below.
    Forthcoming GNU Emacs supports BIDI
    http://www.m17n.org/emacs-bidi/emacs-bidi.html


    or, if you use Windows, these link may help you,
    Khmer unicode for Microsoft Windows
    http://www.khmer.ws/unicode/windows.asp

    http://www.khmeros.info/

    ReplyDelete
  3. Khmer use "left-to-right" method, just like english, the difference is khmer has subscript which means one letter overlay the other one, sometimes three letter together. Thanks for your help!

    ReplyDelete
  4. oops! please forgive my ignorance.
    On my PC, Notepad on Windows, with Khmer(Cambodia) keyboard setting, seems to handle Khmer well. but it is not able to type Khmer on Emacs. hmmm.

    ReplyDelete
  5. ^.^It's ok! I just want use Emacs to edit latex, but no one handle it, so I use Texworks or Notepad++ instead of which performances well. Thanks in advanced.

    ReplyDelete