Re: Opentypeを生かしたアプリは?(Re: Type1 と xdvi)

名前: anonymouse
日時: 2006-10-26 09:21:08
IPアドレス: 207.36.196.*

>>45641 > と言いながらですが。 > >UniScribeはチベット文字をサポートしていません > > という概念がうまく理解できていません。 > どこの言語であろうと、 > フォントを指定してあれば、ファイル上の文字コードと、コードに対応するグリフと > そこに定義されたGPOS、GSUBに従ったタイプセットを行う。 > というものかと思っていたのです。 まず、チベット文字には関係しませんが、テクストの文字列の配列と、表示する グリフ列の順序が一致しない文字と言うのがあります。これはユニコード規格で 並べ替えの方法を規定されていても、UniScribe等のレイアウトエンジンが、 一番最初のリリースからすべてを実装しているとは限りません。 以前にも(中途半端に)書きましたが、OpenTypeでは、ユニコード規格で 並べ替えの方法を規定されている以上、GSUB, GPOSにこのアルゴリズムを 実装してはいけません。レイアウトエンジンが、必要な知識を備えなければ なりません。これが、この部分を含めてフォントのmort/morxに実装しなければ、 正しく処理のできないMac OSの国際化対応との違いです。 TeXの場合はプリプロセッサをソースに掛けてからコンパイルしたり (Devanagari etc.)、マクロとTFMで並べ替えを実装したり(Telugu etc.) しなければなりません。ArabTeXも後者の例に入るでしょう。 一方、何度か言及している、XeTeXはこういった知識を備えたICUレイアウトエンジン をコンパイラに内蔵しています。IBMの開発したICUは文字レイアウト以外にも 様々な国際化対応機能を提供するライブラリでOpenOffice.orgやJAVAにも 組み込まれています。GNU libcのコレーションをはじめとするI18NデータもICUの データを流用しています。 次に、GPOS、GSUBのフィーチャーの中には、文字と言語の組合せにより、 適用が必須な物、適用が推奨されるが必須ではないもの、適用すべきかどうかは ユーザーの判断に委ねられる物といった温度差があります。 例えば、アラビア文字をレンダリングするのにfina, medi, initと言った 必須のフィーチャーを適用しなければ、読めた代物ではありません。 また、アラビア文字ではrligのみならず、ligaも必須と言って良いでしょうし、 dligも適用が推奨されています。ところが、ラテンアルファベットでは ligaは多くの場合、推奨されていても、必須ではありません。ポルトガル語や トルコ語では原則として、適用してはいけないフィーチャーです。実際、 GSUBテーブルでligaを定義する場合、トルコ語は通常例外扱いします。しかし、 一般には推奨されるフィーチャーと必須のフィーチャーの区別はレイアウト エンジン自身が知っていなければ判断できません。 通常の文字のdligやスタイルセット、漢字の異体字切替えなどは、あくまで、 ユーザーが適用すべきかどうか、状況に応じて判断するべきフィーチャーです。 先日、XeTeXがチベット文字のタイプセットルールを知らないので、 適用すべきフィーチャーを具体的に指示しなければならないと書いたのは これです。 通常のTeXでは、これはマクロで実現される訳ですから、使っている人が気が ついていなくても、必要な時には必要なスタイルファイルが読み込まれています。

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)