Ω/CHISE with book class

守岡知彦 / MORIOKA Tomohiko tomo @ kanji.zinbun.kyoto-u.ac.jp
2004年 1月 19日 (月) 22:25:53 JST


>>>>> In [chise-ja : No.00315] 
>>>>>	"宮崎さん" = Izumi MIYAZAKI <imiyazaki @ bun.kyoto-u.ac.jp> wrote:

宮崎さん> > utf8jis にするとアクサン付きのラテン文字やキリル文字などが
宮崎さん> > 呪われてしまうので。(^_^;(呪いが自分に帰って来るというか
宮崎さん> > (^_^;;。この手の『全角』

宮崎さん> ではなく、

宮崎さん> > % -*-coding: utf-8-jis -*-

宮崎さん> となっていたので、utf-8-jis をお使いだと思ったのですが、
宮崎さん> utf-8-mcs をお使いだったのですね。

というか、XEmacs CHISE では utf-8-jis で読み書きしつつ Ω/CHISE を
utf-8-mcs とだまして、アルファベット系の呪いを解こうとしてた訳です(で
も、なぜか、キリル文字の呪いは解けないみたいです。JIS X 0208 なものの
呪いは強くて、トラップが何重にもかかってるのかな?

宮崎さん> 確かに私もこの呪いには困っていて、早く呪いを解く呪文を教えて
宮崎さん> もらいたいと思ってます。でないと、別な呪いのかかった、
宮崎さん> utf-8-mcs のファイルがどんどん増えていくことに…

御意。

『全角』用 =ucs @ jis/fw(仮称)を導入したいと思います。

ただ、こうした場合、現状では

=ucs @ jis ->+- =ucs @ jis-1990 ->-- =ucs @ jis-1990/fw
	   |
	   +- =ucs @ jis-2000 ->-- =ucs @ jis-2000/fw

のように =ucs @ jis/fw にまとめて記述することは出来ず、=ucs @ jis-1990/fw 
と =ucs @ jis-2000/fw の両方を記述するはめになります。

それを避けるには

=ucs @ jis ->+- =ucs @ jis-1990 ->+- =ucs @ jis-1990/fw
	   |                  ↑
	   +- =ucs @ jis/fw --->+
           |                  ↓
           +- =ucs @ jis-2000 --+- =ucs @ jis-2000/fw

のように多重継承しないといけないのですが、これは新たな呪いを導入するこ
とになる気がします。

[例] 多重継承した coded-charset の decode を、

     親1 での decode を試し、失敗したら親2 で試し、…

     というアルゴリズムで実現した場合、=ucs @ jis-2000/fw の親である
     =ucs @ jis/fw と =ucs @ jis-2000 はともに共通する親 =ucs @ jis を持って
     いて、どちらも自分で把握しない符号位置に対して =ucs @ jis で decode
     し、それは対象とする全符号位置に対して成功するため、優先度が一番
     高い親での単一継承と同じ結果になってしまう。

     ;; 近親婚問題?

これを避けるには、先祖を辿れる親を一個だけに制限する(家制度方式?)か、
継承のグラフをチェックする(遺伝子チェック方式?)かしないといけないで
すが、多分、後者は CCS の decode には重すぎると思います。


宮崎さん> > また、Multifont 環境内で使用するフォントの優先順位の指定に
宮崎さん> > おいて、Unicode フォントも指定できると良いような気がします。

宮崎さん> これは Cyberbit.ttf のようなフォントも指定できるようにすると
宮崎さん> いうことでしょうか?

宮崎さん> そのフォントの中にどういう文字が入っているかという情報が 
宮崎さん> CHISE DB の中にあれば、すぐに使えるように出来ますが、現時点
宮崎さん> では無理だと思います。

なるほど。X と同様に、現状ではフォントにどんなグリフが入ってるか判んな
い訳ですね。

ところで、同様な問題だと思いますが、現状では J は Adobe-Japan1-5 相当
みたいなので、そんなに埋まってない日本語用フォントでは文字化けする(ヒ
ラギノなら大丈夫だけど)訳ですよね?思うに、これ、J4 とか J5 みたいに
実装水準?が指定できると良いような気がします。無論、CHISE 的には work
around なんですけど。

;; すべての情報を CHISE DB へ!


宮崎さん> > ところで、これは、つまり、UTF-8 の各バイトが1文字と見倣さ
宮崎さん> > れて、「大文字」に変換されていたということでしょうか。

宮崎さん> そのようです。

宮崎さん> > そうだとすると、抜本的にはΩの世界で1文字と見倣されるよう
宮崎さん> > にしないといけないということでしょうか。

宮崎さん> TeX の世界では、\lccode, \uccode を使って、uppercase,
宮崎さん> lowercase をコントロールしています。

宮崎さん> ちゃんと試したわけではないので、嘘かもしれませんが、今回の場
宮崎さん> 合、漢字には \lccode, \uccode がふられていないので、1バイト
宮崎さん> 毎に分解されてからuppercase にされてしまったのではないでしょ
宮崎さん> うか。

宮崎さん> だとすれば、同様なことを、漢字に対してやればうまくいくような
宮崎さん> 気がします。Ω付属のパッケージでは、16bit の character に対
宮崎さん> して、\lccode, \uccode をふっているものがありますので。

宮崎さん> ただ、pTeX 付属の jbook.cls などでは、今回問題になった 
宮崎さん> \chaptermark の中で \MakeUppercase を使ってませんし、章名な
宮崎さん> どが日本語であるならば、jbook.cls 風の \chaptermark,
宮崎さん> \sectionmark の定義を作るのが、現実的な解決策だと思います。

宮崎さん> あるいは、

宮崎さん> \def\MakeUppercase#1{#1}

宮崎さん> とすれば、\MakeUppercase 自体を殺してしまうことも出来ます。
宮崎さん> Babel のパッケージの中には、\MakeUppercase を再定義して、状
宮崎さん> 況に応じて\MakeUppercase を殺すようにしているものもあるよう
宮崎さん> です。

なるほど。とても参考になりました。


こんな風に苦労して Ω/CHISE を動かしてみた感想ですが、Ω/CHISE は動く
ようにするまでが結構大変ですが(それでも以前に比べるとだいぶ楽になった
と思います)、環境が出来ると XEmacs CHISE で見えるように印刷できるので
(とはいえ、フォントの問題はありますが。お願い上地さん(^_^;)なかなか
良い感じですね。

ただ、処理速度は激遅ですね。10 頁ぐらいなら我慢できますが、440 頁ぐら
いのファイルを P-III 1GHz dual で lambda にかけると2時間半ぐらいかか
るのはもう少し何とかならないだろうかと思います。これは Perl のせいなん
でしょうか?それとも CHISE DB へのアクセスが遅いんでしょうか?後者だと
すると、キャッシュを使えば少しは改善するのかも(libchise でキャッシュ
をサポートして、Perl からもlibchise を使うように出来ると綺麗かも)。ま
た、もしかして、Ω と OCP/OTP のやりとりが遅いんでしょうか?


ところで、Debian の場合、多分、

* 6. dvipdfmx の設定

  $TEXMF/dvipdfm/CMap にリンクをはるなどして CMap を dvipdfmx で使える
  ようにしておく。

  ex)
  ln -s $ADOBE_READER_CMAP_DIR/* $TEXMF/dvipdfm/CMap/

みたいにするよりも /etc/texmf/texmf.d/ に設定を追加するような形の方が
良いような気がします。まだちゃんと試してないし理解もしてないので自信は
ないのですが。

;; それから、libchise 対応 Ruby/CHISE が早く出ないかな?



また、そろそろ、いいかげん、異体字とか符号化されてない文字の表現・交換
形式が欲しいですね。IDS だけでなく部品自体の定義も欲しいし、部品(の集
合)の指定・置き換えや JIS とか GB 以外の各種プロファイルも欲しいです
ね。

なんかひとつ出来るようになると、また新たな欲望が出てきてしまうというか、
Chaon の道は険しいのですが、でも最初に XEmacs UTF-2000 を作った頃のよ
うな感動を感じられます。

本当にありがとうございます。

-- 
===『幾千億の分子に分かれても ========================================
     決して忘れない。    
     この宇宙が終るまで』              守岡 知彦 (MORIOKA Tomohiko)
====================== Email: <tomo @ kanji.zinbun.kyoto-u.ac.jp> ======




More information about the CHISE-ja mailing list