ここのディスカッショントピック
upLaTeX+mendexで索引作成時のトラブルでも話題になっていたように、
現在、Mendexでは、UTF-8の入力には対応しているものの、内部はEUC-JPのままです。
(e-)(u)pLaTeXのみならずXeLaTeX, LuaTeX-jaとの組み合わせでも
日英二か国語までは使えているはずですが、
文字コードのまま直接扱えるのはJIS第1,2水準までで、
鷗外の「鷗」などは直接扱えません。
(ptexencの機能で^^e9^^b7^^97に置き換えられる。)
では、何をどのくらいまで手に入れればよさそうか、ということを考え始めています。
もしよろしかったら議論におつきあいください。
まずは、MakeIndex, Mendex, Xindyの状況を
TeX Wikiの索引作成のツール比較の項で
簡単にまとめてみました。
誤認や不足があれば修正いただけると助かります。
以下は、今、私が考えていることです。
日本語の索引作成という観点では、Mendexの
「日本語のインデックスは、読みによるソートを行う」
「インデックスとして、表記+読みの組の入力が可能」
は、機能としてぜひほしいところ。
「辞書ファイルの利用により、読みの入力の軽減が可能」は、
あれば便利だが、無いとどうしようもないというほどではない。
Xindyは、多言語化を目指している点、カスタマイズ可能な開発方針や、
開発が活発な点で期待が大きい。
しかし、日本語の索引作成の面で
「日本語のインデックスは、読みによるソートを行う」
「インデックスとして、表記+読みの組の入力が可能」
のあたりの機能はまだ持っていないようだ。
大方針として、Xindyにそのような日本語向け機能を追加する、という案は、
将来性としてはよさそうだが、
中身がLispなので、私が改造したり、パッチを提案したりは難しそう。
Mendexは、日本語の索引作成機能としては、重要な点が押さえられており、
日本人にとって使いやすいことは間違いなさそう。
しかし、内部コードがEUC-JPべったりのハードコードになっており、
Unicode化へのハードルは高い。
現在の、入力コードにUTF-8が使える状態をゼロ段階として、
二段階のUnicode化を考えてみました。
[1] 表記+読みのうち、表記だけを内部Unicode(UTF-8)化する。
読みやソートのアルゴリズムは、現状のEUC-JPのまま。
読みにJIS第三水準の仮名(アイヌ語用の小仮名等)は使えない。
ハングル等の日英以外の言語は使えない。
表記にはUnicodeがフルに使えるようになるし、
ソートは現状でも実用レベルであるため、
日英二か国語の範囲ではかなり強力になるはず。
[2] 読みも内部Unicode化する。
ソートのアルゴリズムにICUを使う。
あわよくば、ソートの部分にギリシャ文字、キリル文字、ハングル等も使えるようになり、
多言語化が進められるようになるはず。
今後についてですが、
[1]の改造を少々試してみたところ、
もう一息でちゃんと動くところまで来ました。
アスキーメディアワークスさんのMendexのソースからかけ離れることなく実現出来そうです。
そこでMendexの修正という形でTeX Liveに入れさせてもらおうと考えています。
しかしTeX Live 2014のcomplete freezeまであとわずかしかないので、
安全性を考えてTeX Live 2015を目指そうと思っています。
[2]は、MendexのソースコードのEUC-JP依存のところをすべて書き換えることになり、
大きな改造になることは必至。
しかもEUC-JP依存の部分(後方互換性)を残したまま改造を進めるのはつらそう。
Mendexのソースを出発点にするにしても、抽象化を進めICU呼び出しを足していくイメージになりそう。
なので、「Mendex + パッチ」の形はあきらめてMendexとは別の名前で開発してみようかな、
と思っています。
以前は、大改造のイメージしかなく二の足を踏んでいたのですが、
ICUを使って多言語化の道も開けるならやってみようかな、と思い始めているところです。
Xindyとの位置関係が微妙ですが…。
調べていて疑問に思ったのですが、
中国語、韓国語などでは、MakeIndexの類のツールは作られたり利用されたりしていないのでしょうか?