ApplyIndicReorder

시그니처

function ApplyIndicReorder(const Wide: UnicodeString): UnicodeString;

목적

Indic 텍스트를 각 문자 체계에 등록된 재정렬 도우미로 보냅니다. Wide를 스캔하고 script 범위를 나누며 비 Indic 텍스트를 바이트 단위로 안정적으로 유지한 뒤 cmap 및 GSUB를 준비합니다

범위

디스패처는 아래 등록된 script를 포함하며 보수적인 재정렬 경로를 전체 GSUB 셰이핑과 분리합니다

  • 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;

관련 항목

표준

  • Unicode 16.0 chapters 12 and 16
  • ISO 32000-1 §9.10
  • OpenType per-script shaping specifications

버전 기록

  • v2.119.69-v2.120.10 - 버전 기록