Ω/CHISE

守岡知彦 / MORIOKA Tomohiko tomo @ kanji.zinbun.kyoto-u.ac.jp
2003年 6月 27日 (金) 17:53:37 JST


昨日、苫米地さんと宮崎さんの御力を借りてついに Ω/CHISE で PDF 作成ま
でこぎつけることができました。そこで、それ以前にやったことも含めて幾つ
かメモみたいなものを書いてみたいと思います。

* Ω/CHISE の入手

cvs.m17n.org:/cvs/chise の omega module を checkout します。私は ssh
経由で commiter 用 account で checkout しましたが、一般ユーザーの場合、
pserver 経由の anonymous で行うことになると思います。

;; この具体的方法は CHISE 頁群の omega/ に書いておいた方が良いと思いま
;; す。


* 説明書を読む

omega/INSTALL.txt に書いてあります。基本的には大変判りやすいく、後述の
問題点を除けば、この通りにやって行けばちゃんとインストールできると思い
ます。

;; 私も lambda を動かす部分までは独力でできました。

ところで、ファイル名は、英語版やその他言語版説明書を作成することを考慮
するならば、INSTALL.txt.ja にするのが良いのではないかと思います。


* 設定の書き換え

Debian GNU/Linux sid 上の私の環境に合わせて附属のファイルを変更します。

** makefonts.pl

my $t1asm = "/usr/local/bin/t1asm"; # point to 't1asm' executable.

を

my $t1asm = "/usr/bin/t1asm"; # point to 't1asm' executable.

に、

my $pfaedit="/usr/local/bin/pfaedit"; # point to 'pfaedit' executable.

を

my $pfaedit="/usr/bin/pfaedit"; # point to 'pfaedit' executable.

にします。

;; こういうの、default では、env とかを使って、path に依存しないように
;; できないもんでしょうか?

また、

my $dbpath="$HOME/.chise/glyph.db"; # Set to your DB path.

は

my $dbpath="/usr/local/lib/chise/omega/glyph.db"; # Set to your DB path.

としました。

;; グリフ情報の格納の仕方に関しては、CHISE 環境全体での共有を前提に再
;; 検討するのが良いのではないかと思います。

また、KAGE サーバーの場所を指定するために

my $kageaddr="kage2.fonts.jp:80"; # Specify port number!

というのを入れたんですがうまく聞かないみたいだったので、

***************
*** 155,160 ****
--- 155,161 ----
  		     $location=$1;
  		 }
  		 close($kageserver);
+ 		 $location="kage2.fonts.jp:80";
  		 print STDERR "Connecting $location...\n";
  		 if($location
  		    and $kageserver=IO::Socket::INET->new($location)){

という野蛮な書き換えを行いました。

;; Perl よく判ってないもので。

なお、現在はこのサーバーは利用できないようです。


** outCMAP

$omegadb_home="/Users/izumi/.chise";

を

$omegadb_home="/usr/local/lib/chise/omega/db";

としました。


* dvipdfmx の設定

説明書には

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

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

と書かれているのですが、Debian でそれをやって、将来 dvipdfm に CMap
が含まれるようになったらちょっと恐いなあと思ったので、
/usr/share/texmf/dvipdfm/ に CMap/ ディレクトリを作成し、その中に
/usr/share/ghostscript/CMap/ の中身に対する symbolic link を張りました。


また、説明書には

  また、dvipdfmx.cfg に

  f chise.map
  f mulambda.map
  f gt.map

  を書き加える。

  * gt.map は必ずしも必要ない。
  * chise.map は KAGE サーバからグリフをもらって来る時に必要。

とあります。今試したら、これでうまくいくみたいなのですが、当初は何故か 
dvipdfmx がセグメンテイション・フォールトを起こし、原因不明で悩みまし
た。苫米地さんにお尋ねした所、これは、map が足りないことによって起こる
そうです。このことは -vv (Be more verbose) を指定すれば判るのですが、
ちょっと不親切だよねということです。で、何かを付け加えたのですが、それ
が何だったか忘れました。(^_^;;; という訳で、この項目はあんまり意味がな
いのですが、もしdvipdfmx のセグメンテイション・フォールト問題ではまっ
た場合は、/etc/texmf/dvipdfm/dvipdfmx.cfg をチェックすると良いかも知れ
ません。


以上でサンプルの test.tex を PDF に変換できました。説明書にあるように、
台湾中央研究院 CDP 外字および漢字庫の TrueType フォントのPSフォント名
を dvipdfmx が見つけられない問題とか、KAGE サーバーの問題などフォント
の問題があり、まだ完全という訳ではないのですが、JIS, GB, CNS のフォン
ト切替えや IDS による文字結合(前にやった時の cache が残っていた分は)
や GT の利用はうまく動いています。

あと、どうも実体参照もどきがうまく動いてない気がします。


現状では JIS X0208 + GB 2312 + GT の組合せの範囲なら、XEmacs CHISE で
見たままに自然に印刷できそうです。

今後の課題としては、やはり font 環境の整備でしょうか。


それから TeX での記述形式に関してなんですが、実体参照を ampU+20000; み
たいに書くのはちょっとやかなあと思います。苫米地さん、宮崎さんによれば
Ω が & を食っちゃうので &foo; は難しいということで、また、\foo{} みた
いなのも ΩTP ではかえって難しいということだそうです。何か良い方法・形
式はないものですかね。あるいは、いっそ omega/lambda では実体参照風を渡
すのは断念して、Ω の前に実体参照を展開するフィルターをかます方がまし
かなと思ったりもしました。

また、現状では単に IDS を書くと自動的にそれに対応する文字として組版し
てくれるのですが、個人的趣味としては、\ids{IDS} という風な macro で囲
んだ部分だけ展開する方が良いかなと思います。まあ、IDS 文字列そのものを
表示できるように quote する手段があればそれで良いのだと思いますが。

あと、BDF フォントを使う手段もあると良いなあと思います。


それはともかく、Ω/CHISE によって、現状でも数万字の漢字を XEmacs CHISE 
で見えるように TeX で印刷できるようになったのは素晴しいと思います。ま
た、説明書もなかなか良いと思います。苫米地さん、宮崎さんのご尽力に感謝
します。

今後、グリフ整備、特に KAGE を中心としたグリフ環境の整備が進めば、本当
に欲しい字をすぐに自由に印刷できる環境ができる見通しが見えて来たと思う
ので、今後この方面の整備を進めて行きたいなあと思います。

また、簡単にインストールできる CHISE パッケージを用意して行くことも重
要だと思います。この点でも、宮崎さんが XEmacs CHISE の fink パッケージ
を作ってたりして素晴しいと思います。


脈絡なく長々書いてしまいましたが、皆さんも是非 Ω/CHISE をお試しくださ
い。

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




More information about the CHISE-ja mailing list