Límites de grafemas Unicode

HPDFUnicodeTextBoundary implementa los clusters de grafemas extendidos por defecto de Unicode 17.0.0 usando las propiedades Grapheme_Cluster_Break, Indic_Conjunct_Break y Extended_Pictographic incluidas en el repositorio

La implementación Pascal portable maneja marcas combinantes, Hangul, secuencias de enlazadores índicos, secuencias emoji con ZWJ e indicadores regionales emparejados sin necesitar una GUI ni una DLL de segmentación

Los offsets cuentan unidades de código UTF-16 desde cero e incluyen tanto el inicio como el final del texto; el texto vacío devuelve el único offset cero

La entrada debe contener surrogates UTF-16 emparejados, y el código llamante proporciona un presupuesto positivo de unidades de código de hasta 1048576; el valor por defecto es 65535

La cancelación se comprueba antes de la asignación y mientras se consume cada valor escalar, incluso con entrada vacía

Wrapping de campos rich

Una palabra demasiado ancha en un campo rich multilínea con wrapping se divide en clusters de grafemas extendidos completos y se mide con la fuente y el espaciado seleccionados

Cada fragmento conserva los valores V y RV originales, los mapeos Unicode reales y la alineación del párrafo; un cluster indivisible más ancho que el rectángulo se mantiene intacto y se recorta

Las anchuras de los fragmentos se comprueban tras el shaping, incluidas las formas de unión que se ensanchan al darle forma por separado; los desbordamientos divisibles se parten de nuevo en clusters completos

El dibujado de scripts complejos sigue usando HarfBuzz y FriBidi; la segmentación de grafemas no aporta shaping de glifos ni layout bidireccional de párrafos

Oportunidades de salto de línea Unicode por defecto están disponibles en la misma unidad portable; partir palabras entre límites de estilo y el bidi de párrafos con estilos mixtos siguen siendo objetivos activos independientes

Conformidad

Ejecuta Tests/Linux/Run-UnicodeGraphemeAcceptance.sh o el runner de tests portable de Windows con HotPDFUnicodeGraphemeTests y Tests/Linux/resources

Los tests consumen los 766 casos oficiales del GraphemeBreakTest de Unicode 17 y comparan cada límite publicado en unidades UTF-16

Build-UnicodeTextBoundaryTables.py reconstruye de forma determinista las tablas de rangos compiladas a partir de los datos UCD fijados existentes

Reglas de segmentación de texto de Unicode 17 · Función de límites · Comportamiento de campos rich