« 2006年10月28日 | メイン | 2006年10月30日 »

2006年10月29日

Unicode Line Breaking Properties (2)その動向

Uncode Line Breaking Properties (UAX #14)は、Unicodeの付録として分類されていますが、Unicode仕様の一部であり重要な仕様です。

1999年8月に第5版の段階でUnicodeのテクニカルレポートとして、初めて正式な仕様になっています。

・1999年8月 第5版 http://www.unicode.org/unicode/reports/tr14-5(Unicode 3.0)

その後、次の時期に改訂版が出ています。正式仕様版の間に、提案書としての版があります。

・1999年11月 第6版 http://www.unicode.org/unicode/reports/tr14/tr14-6.html(Unicode 3.0)
・2000年8月 第7版 http://www.unicode.org/reports/tr14/tr14-7.html(Unicode 3.0.1)
・2000年2月 第10版 http://www.unicode.org/reports/tr14/tr14-10.html(Unicode 3.1.0)
・2002年3月 第12版 http://www.unicode.org/reports/tr14/tr14-12.html(Unicode 3.2.0)
・2003年4月 第14版 http://www.unicode.org/reports/tr14/tr14-14.html(Unicode 4.0.0)
・2004年3月 第15版 http://www.unicode.org/reports/tr14/tr14-15.html(Unicode 4.0.1)
・2005年8月 第17版 http://www.unicode.org/reports/tr14/tr14-17.html(Unicode 4.1.0)

そして昨日お話しました通り今年の8月に最新版として第19版(Unicode5.0.0)が出ています。

日本語では、一つ一つの文字を書く(表示、印刷する)毎に、横書きなら文字の幅、縦書きなら文字の高さ分だけ一文字づつ書き進めていき、一行の最後にきたら改行するのが、原理的な改行規則です。漢字やかななどの間ではどこでも改行できますが、例外として、行の先頭に来てはいけない、または、行の最後に来てはいけない禁則文字があります。

これに対して、英語は、単語の区切り、空白の位置で改行します。ドイツ語やフランス語なども基本は同じです。ただし、昨日述べましたようないくつかの例外があります。

実際に各言語を書いたり、表示したりする処理の際には、アルファベットやかな・漢字だけではなく、記号類、数字、さまざまな空白が混在しますので、ある文字の前後で改行することができるかどうか判断するのはかなり難しい場合があります。

UAX #14は、これを文字の改行特性と、いくつかの規則で統一的に判断しようということですので、多言語組版を行うためには、非常に重要な仕様のひとつです。

一方において、言語に関する知識なしに、UAX #14のような文字に関する規則だけから、その文字の位置で改行できるのかどうか、本当に正しい判断が可能なのだろうか?という疑問もわきますね。

ちなみに、XSL Formatterは、各言語の組版で(原則として)UAX #14に基づいて改行位置を決定しています。古いバージョン(V2の時)のことなのですが、米国の有力パートナーから、「お前のところのソフトは、米国人が絶対受け入れないような位置で改行している。それを直さないなら商談ストップする!」といって、えらく叱られました。

そこで、UAX#14の著者のAsmus Freytag氏に、「UAX#14がおかしいから、お客さんに叱られたので仕様を直して欲しい」とメールでクレームを投稿したことがあります。

他にも文句を言う人がいるためなのでしょうか、UAX#14は比較的頻繁に細かい点が変更になっているようです。UAX#14のような仕様を完璧につくるのは恐ろしく難しいと思います。

投票をお願いいたします

投稿者 koba : 08:00 | コメント (0) | トラックバック