Fronteiras de graphemes Unicode

HPDFUnicodeTextBoundary implementa os extended grapheme clusters default do Unicode 17.0.0 usando as propriedades Grapheme_Cluster_Break, Indic_Conjunct_Break e Extended_Pictographic embarcadas no repositório

A implementação Pascal portátil lida com combining marks, Hangul, sequências de linkers índicos, sequências de emoji com ZWJ e regional indicators pareados sem exigir GUI nem DLL de segmentação

Os offsets contam code units UTF-16 a partir de zero e incluem tanto o início quanto o fim do texto; texto vazio retorna o único offset zero

A entrada precisa conter surrogates UTF-16 pareados, e o chamador fornece um orçamento positivo de code units de até 1048576; o default é 65535

O cancelamento é checado antes da alocação e enquanto cada scalar é consumido, inclusive para entrada vazia

Wrapping de campos rich

Uma palavra larga demais num campo rich multilinha com wrapping é dividida em extended grapheme clusters completos e medida com a fonte e o spacing selecionados

Cada fragmento preserva os valores V e RV originais, os mapeamentos Unicode reais e o alinhamento do parágrafo; um cluster indivisível mais largo que o retângulo permanece intacto e é clipado

As larguras dos fragmentos são checadas após o shaping, incluindo formas de junção que alargam quando o shaping é feito separadamente; overflows divisíveis são divididos de novo em clusters completos

A pintura de scripts complexos continua usando HarfBuzz e FriBidi; a segmentação de graphemes não fornece shaping de glyphs nem layout bidirecional de parágrafos

Oportunidades default de line breaking Unicode estão disponíveis na mesma unit portátil; quebrar palavras através de fronteiras de estilo e o bidi de parágrafos com estilos mistos permanecem alvos ativos separados

Conformidade

Execute Tests/Linux/Run-UnicodeGraphemeAcceptance.sh ou o runner portátil de testes do Windows com HotPDFUnicodeGraphemeTests e Tests/Linux/resources

Os testes consomem todos os 766 casos oficiais do GraphemeBreakTest do Unicode 17 e comparam cada fronteira publicada em unidades UTF-16

Build-UnicodeTextBoundaryTables.py reconstrói deterministicamente as tabelas de faixas compiladas a partir dos dados UCD fixados existentes

Regras de segmentação de texto do Unicode 17 · Função de fronteiras · Comportamento de campos rich