複雑なスクリプトについて
複雑なスクリプトは、SCRIPT_PROPERTIESの fComplex メンバーが TRUE に設定されているスクリプトです。 このトピックでは、複雑なスクリプトが持つ可能性があるプロパティについて詳しく説明します。
双方向レンダリング
双方向レンダリングは、左から右と右から左の両方を読み取るテキストを処理します。 たとえば、アラビア語の双方向レンダリングでは、テキストの既定の読み取り方向は右から左ですが、一部の数値では左から右になります。 複雑なスクリプトを処理するには、論理 (キーストローク) 順序とグリフの視覚的順序の違いを考慮する必要があります。 さらに、処理はキャレットの動きとヒット テストに適切に対処する必要があります。 画面の位置と文字インデックスの間のマッピングには、特定のディスプレイのレイアウト アルゴリズム (テキストやキャレット表示の選択など) を理解する必要があります。
コンテキスト シェイプ
コンテキスト シェイプでは、スクリプト文字は、それらを囲む文字に応じて図形を変更します。 このような整形は、小文字の "l" が前の文字 ("l" に低く接続) や "o" (高) など、その前の文字に応じて図形を変更するときに、英語の筆記体で行われます。 たとえば、アラビア語はコンテキストシェイプを示すスクリプトです。
文字の組み合わせ
"合字" とも呼ばれる文字を組み合わせることは、一緒に配置されるときに 1 つの文字に結合する文字です。 アラビア語は、多くの組み合わせ文字を持つスクリプトです。 文字の組み合わせの使用例の 1 つは、レンダリングされた表現が "à" である "a" の後に "combining grave" が続く場合です。 Unicode ストリーム "U+0061 U+0300" では、"combining grave" が "a" の上に正しく配置されていることを確認するために、何らかの処理が必要です。
特殊なWordの中断と理由
一部のスクリプト (タイ語など) には、単語を行間で分割したり、行のテキストを正当化したりするための複雑なルールがあります。
無効な文字の組み合わせのフィルター処理
タイ語などの複雑なスクリプトでは、言語で特定の文字の組み合わせが許可されていない場合に、無効な文字の組み合わせを除外できます。
フォント フォールバック
フォント フォールバックは、ユーザーが選択したフォント以外のフォントの自動選択です。 Uniscribe では、テキストのすべてまたは一部がユーザーが選択したフォントがサポートしていないスクリプト内にある場合 、ScriptStringAnalyse 関数によってフォント フォールバックが適用されます。 詳細については、「 フォント フォールバックの使用」を参照してください。
関連トピック