文字の表示の仕方 (Re: IDS、実体参照)

守岡知彦 / MORIOKA Tomohiko tomo @ kanji.zinbun.kyoto-u.ac.jp
2002年 12月 26日 (木) 21:24:20 JST


>>>>> In [chise-ja : No.00099] 
>>>>>	"江渡さん" = Kouichirou Eto <2002 @ eto.com> wrote:

江渡さん> あるchar-idの文字オブジェクトを画面表示させる際に、XEmacs
江渡さん> UTF-2000ではどのように対応するフォントを探しているのでしょう
江渡さん> か?
江渡さん> 以下のようなアルゴリズムを考えてみたのですが、こんな感じでしょ
江渡さん> うか。
江渡さん> 1. ucs, ->ucs, =>ucs があれば、Unicodeのフォントとして表示
江渡さん> 2. ideograph-daikanwa があれば、文字鏡フォントとして表示
江渡さん> (この部分、みんなには内緒にしなければならないのはつらいです
江渡さん> ね…。)

1. まず、変数 default-coded-charset-priority-list で指定した優先順位に
   従って、文字オブジェクトを font-CCS と code-point に分解します。こ
   れは関数 split-char が行っていることと基本的には同じですが、現状の
   X の font の仕組では 16 bit を越える font encoding は使えないので、
   charset-dimension が 3 以上だったらスキップします。

2. font-CCS が 1 だったら XDrawString, 2 だったら XDrawString16 で描画
   します。

実際には連続して同じ font-CCS を用いる文字列をパックして行います。

ところで、現在(というか、当初から ideograph-daikanwa に対しては e漢字
大漢和フォントを使っており、文字鏡フォントは使ってません。

なお、=>ucs は font には無関係です。また、->ucs は全部 =>ucs に書き換
え、このほど廃止されました。


;; 文字鏡機能を追加する elisp package も個人的に作ってあったりしますが、
;; これは mojikyo という coded-charset を使うためのものです。

;;; 外部データベース機能がある現在なら、私以外の第3者が XEmacs
;;; UTF-2000 で文字鏡を使うパッケージを GPL に抵触しないでかつ文字鏡研
;;; 究会の要請を満たすように実現できるのではないかという気もします。つ
;;; まり、問題の場所をプログラムではなくデータにするという訳です。

-- 
守岡 知彦 (MORIOKA Tomohiko) <tomo @ kanji.zinbun.kyoto-u.ac.jp>




More information about the CHISE-ja mailing list