ApplyIndicReorder
シグネチャ
function ApplyIndicReorder(const Wide: UnicodeString): UnicodeString;
目的
Indic テキストを各 script の登録済み並べ替えヘルパーへ送ります。Wide を走査し、script 範囲を分割し、非 Indic テキストをバイト単位で安定させたまま cmap と GSUB に備えます
対応範囲
ディスパッチャーは下記の登録済み script を対象にし、保守的な並べ替え経路を完全な GSUB shaping から分離します
- Devanagari (
deva, U+0900-U+097F) - R1-R5 with conjunct preservation - Bengali (
beng, U+0980-U+09FF) - R1, R2, R4, R5, and split-matra decomposition - Gujarati (
gujr, U+0A80-U+0AFF) - R1-R5 with no split matras - Tamil (
taml, U+0B80-U+0BFF) - R2-R5 with Tamil split-matra handling and no Repha - Telugu (
telu, U+0C00-U+0C7F) - R1, R3, R4, and Telugu split-matra handling - Kannada (
knda, U+0C80-U+0CFF) - R1, R3, R4, R5, and Kannada split-matra handling - Malayalam (
mlym, U+0D00-U+0D7F) - R1, R2, R4, R5, split matras, chillu letters, and DOT REPH - Sinhala (
sinh, U+0D80-U+0DFF) - R1-R5 with Sinhala pre-base and split-matra handling - Khmer (
khmr, U+1780-U+17FF) - independent South-East Asian syllable processing - Myanmar (
mymr, U+1000-U+109F and U+AA60-U+AA7F) - Kinzi, medial sorting, pre-base vowel, ASAT, and stacked-consonant handling
例
var
Wide: UnicodeString;
begin
Wide:= Doc.ApplyIndicReorder('Hello '+ #$0915#$093F+ ' world.');
// Result: 'Hello ' + I-matra + KA + ' world.'
// (Latin segments unchanged; Devanagari segment reordered.)
end;
関連項目
ApplyDevanagariReorder- DevanagariGetDevanagariCategory- Devanagari
標準
- Unicode 16.0 chapters 12 and 16
- ISO 32000-1 §9.10
- OpenType per-script shaping specifications
バージョン履歴
- v2.119.69-v2.120.10 - バージョン履歴