Uniscribe 用語集
この用語集には、Uniscribe ドキュメントで使用される用語の定義が含まれています。
ABC の幅
ABC 幅は、GDI ABC 構造体によって定義される複合値です。 構造体には、グリフまたは実行の "A"、"B"、および "C" の幅に対応するメンバー abcA、abcB、abcC が含まれています。
"A" の幅は、グリフまたは実行を表すインクと同等の画面の左側に、 アンダーハング (正、"パディング" とも呼ばれます) または オーバーハング (負) です。 "B" 幅は黒の幅で、左端のインクから右端のインクまでの幅です。 "C" 幅はインクの右側に張り出しています。
次の図は、左と右の両方に張り出した斜体の小文字 F を示しています。 つまり、ここでの "A" 幅と "C" 幅はどちらも負です。 正の "A" と "C" の幅の図については、 下張り を参照してください。
2 つ以上のグリフが 1 つの単位として表示される場合、通常は左端のグリフのみが実行の "A" 幅に寄与し、右端のグリフのみが実行の "C" 幅に寄与します。 ただし、これは厳密な規則ではありません。 たとえば、実行の最初のグリフが狭い文字で、2 番目のグリフが広いダイアクリティカル マークであり、それらが個別のグリフとして処理される場合、diacritical マークは実際には文字を超えて拡張される可能性があります。
幅を進める
グリフの高度な幅は、 そのグリフ をレンダリングするための開始点から次のグリフをレンダリングするための開始点までの書き込み方向の移動です。
双方向スタック
双方向スタックは、左から右と右から左のテキストの間の入れ子レベルを追跡する 5 ビットの整数です。 常に、左から右の場合は 0 から始まります。 したがって、偶数のすべての値は左から右のテキストを表し、奇数のすべての値は右から左のテキストを表します。 双方向スタックは、SCRIPT_STATE構造体の uBidiLevel メンバーで表されます。
双方向テキスト
双方向テキストには左から右と右から左の両方の部分が含まれますが、この用語は純粋な右から左へのテキストにも緩やかに適用される場合があります。 既定の埋め込みレベル 0 は左から右のテキストを意味するため、右から左へのテキストはすべて双方向スタックを使用する必要があります。
セルの幅
アプリケーションでは、特定のグリフのセル幅を調整することで、行に合わせてテキストを両端揃えできます。 修正されていないテキストの場合、グリフのセルの幅は 、その前の幅と同じです。
cluster
クラスターは、整形できる最小の言語単位です。 アラビア語やインド言語の多くなどの言語では、各文字 (Unicode コード ポイント) を表すために使用されるグリフは、クラスターを構成する周囲のコード ポイントに強く依存します。 これらの言語では、アプリケーションはクラスターを調べることによってのみ、コード ポイントを適切なグリフに変換できます。 Devanagari などの一部のスクリプトでは、クラスター内のグリフの順序が、対応する Unicode コード ポイントの順序と異なる場合があります。 詳細については、Microsoft の文字体裁サイトの Windows グリフ処理 に関するページを参照してください。
複雑なスクリプト
複雑なスクリプトは、次のいずれかのプロパティを持つ スクリプト です。
- 双方向レンダリングを許可します。
- コンテキスト シェイプがあります。
- 文字を組み合わせています。
- 特殊な単語区切りと正当な理由のルールを持っています。
- 無効な文字の組み合わせを除外します。
- コア Windows フォントではサポートされていないため、 フォント フォールバックが必要になる場合があります。
一部の複雑なスクリプトでは、グリフの順序が、それらが表す基になる Unicode 文字の順序とは大きく異なる場合があります。 詳細については、「 複雑なスクリプトについて 」を参照してください。
Note
文字体裁のコンテキストでは、英語を記述する際に使用されるラテン文字を複雑なスクリプトとして処理することが望ましい場合があります。 たとえば、 OPENTYPE_FEATURE_RECORDのドキュメントで説明されているスタイル代替機能、または "fi" などの合字が含まれます。1 つのグリフは 2 つ以上の連続する文字を表します。
埋め込みレベル
双方向テキストでは、埋め込みレベルは双方向スタックのインデックスです。
フォント フォールバック
フォント フォールバックは、アプリケーションでユーザーが選択したフォント以外のフォントを自動的に選択することです。 Uniscribe では、テキストの全部または一部が、ユーザーが選択したフォントがサポートしていないスクリプト内にある場合 、ScriptStringAnalyse 関数によってフォント フォールバックが適用されます。
グリフ
グリフは、フォントでの表示の 1 つの単位です。 OpenType の場合、この単位はアウトラインによって定義されます。 他の種類のフォントの場合は、ビットマップ、一連のグラフィック コマンドなどで定義できます。 グリフは必ずしも 1 文字に対応するとは限りません。 たとえば、"fi" 合字 ("fi") は、"f" と "i" の 2 文字を表します。 circumflex とチルダ ("ỗ") を含むベトナム語の小文字 "o" は、通常、複数のグリフから構成されます。
item
項目には、1 つの スクリプト と方向があります。 ScriptItemize 関数または ScriptItemizeOpenType 関数は、段落を項目に分析できます。 アイテムは必ずしも 実行とは限りません。 複数のスタイルの文字を含めることができます。 項目と実行情報を組み合わせて 範囲を決定する必要があります。
LRM
LRM は、LEFT-TO-RIGHT MARK (Unicode コード ポイント U+200E) を示します。 このマークは、その後の文字を論理的な順序で左から右にレンダリングすることを指定します。
LTR
LTR は左から右を示します。
range
範囲は、 実行の特殊なケースです。 これは完全に 1 つの項目内に含 まれます。 したがって、項目が実行に分割された場合、それらの各実行は範囲になります。
Rlm
RLM は、右から左にマーク (Unicode コード ポイント U+200F) を示します。 このマークは、その後の文字を論理的な順序で右から左にレンダリングする必要があることを示します。
RTL
RTL は右から左を示します。
[実行]
ランは、Uniscribe がレンダリングするテキストの一節です。 フォント、サイズ、色という 1 つのスタイルが必要ですが、さまざまな スクリプトから描画できます。 実行には、左から右と右から左の両方のコンテンツを含めることができます。
NADS
NADS は NATIONAL DIGIT SHAPES (Unicode コード ポイント U+206E) を示します。 この用語は、ヨーロッパ数字 (U+0030 から U+0039) を国内数字としてレンダリングすることを指定します。 各国 の数字 の詳細については、「Digit Shapes」を参照してください。
うなずく
NODS は、NOMINAL DIGIT SHAPES (Unicode コード ポイント U+206F) を示します。 この用語は、ヨーロッパ数字 (U+0030 から U+0039) を国の数字としてではなく、通常どおりにレンダリングすることを指定します。
オーバー ハング
オーバーハングは、グリフの 事前幅 を超えるグリフのインクの部分です。 ほとんどのグリフ ("H" など) は、隣接するグリフから分離するために両側に少し空白があるため、オーバーハングはありません。 オーバーハングのあるグリフの例としては、このトピックで ABC 幅を示すために使用される斜体 "f" があります。 斜体 "f" の上と下の両方が、隣接するグリフを張り出します。 オーバーハングは、負の "A" または "C" 幅に対応します。
パディング (padding)
下張りを参照してください。
script
スクリプトは、ラテン語スクリプト、アラビア語スクリプト、中国語スクリプトなど、記述された言語のシステムです。 1 つのスクリプトを 1 つまたは複数の人間の言語に適用できます。 このスクリプトは、フォントと特に関係がありません。 たとえば、ラテン文字は、Times New Roman または Arial フォントで均等にレンダリングできます。
underhang
アンダーハングは、グリフのソリッド部分の左右の空白の幅です。 アンダーハングは、ABC 幅に関する説明に従って、正の "A" または "C" の幅に対応します。 アンダーハングは"埋め込み" と呼ばれることもあります。 次の図は、小文字 n のアンダーハングを示しています。
関連トピック