ApplyIndicReorder

Signature

function ApplyIndicReorder(const Wide: UnicodeString): UnicodeString;

Objectif

Aiguille le texte d’écriture Indic vers l’aide de réordonnancement enregistrée pour chaque écriture. Il parcourt Wide, segmente les plages d’écriture, garde le texte non Indic stable octet par octet et prépare les segments pour cmap et GSUB

Couverture

Le dispatcher couvre les écritures enregistrées ci-dessous et sépare le chemin conservateur de réordonnancement du façonnage GSUB complet

  • 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

Exemple

var
  Wide: UnicodeString;
begin
  Wide:= Doc.ApplyIndicReorder('Hello '+ #$0915#$093F+ ' world.');
  // Result: 'Hello ' + I-matra + KA + ' world.'
  // (Latin segments unchanged; Devanagari segment reordered.)
end;

Voir aussi

Normes

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

Historique des versions

  • v2.119.69-v2.120.10 - infrastructure de réordonnancement Indic et lot d'écritures enregistrées