Unicode grapheme sınırları

HPDFUnicodeTextBoundary, checked-in Grapheme_Cluster_Break, Indic_Conjunct_Break ve Extended_Pictographic property'lerini kullanarak Unicode 17.0.0 varsayılan genişletilmiş grapheme cluster'larını uygular

Portable Pascal uygulaması, bir GUI veya segmentation DLL gerektirmeden combining işaretlerini, Hangul'u, Indic linker dizilerini, emoji ZWJ dizilerini ve çift bölgesel göstergeleri işler

Offset'ler, sıfırdan UTF-16 code unit sayar ve metnin hem başını hem sonunu içerir; boş metin, tek offset sıfır döndürür

Girdi, çiftli UTF-16 surrogate'leri içermeli ve çağıran 1048576'ya kadar pozitif bir code-unit bütçesi sağlamalıdır; varsayılan 65535'tir

Cancellation, tahsisten önce ve her scalar tüketilirken denetlenir; boş girdi için dâhil

Zengin alan sarmalama

Çok satırlı sarılmış zengin bir alandaki aşırı geniş bir kelime, eksiksiz genişletilmiş grapheme cluster'larında bölünür ve seçilen yazı tipi ve spacing ile ölçülür

Her parça, orijinal V ve RV değerlerini, gerçek Unicode eşlemelerini ve paragraf hizalamasını korur; dikdörtgenden geniş bölünemez bir cluster sağlam kalır ve kırpılır

Parça genişlikleri, ayrı ayrı şekillendirildiğinde genişleyen birleştirme biçimleri dâhil shaping'den sonra denetlenir; bölünebilir taşmalar eksiksiz cluster'larda yeniden bölünür

Karmaşık-script boyaması HarfBuzz ve FriBidi kullanmaya devam eder; grapheme segmentasyonu glyph shaping veya paragraf çift yönlü layout sağlamaz

Varsayılan Unicode satır-kırma fırsatları aynı portable birimden erişilebilir; kelimeleri stil sınırları boyunca sarmalamak ve karma-stil paragraf bidi'si ayrı aktif hedefler olarak kalır

Uyumluluk

Tests/Linux/Run-UnicodeGraphemeAcceptance.sh veya HotPDFUnicodeGraphemeTests ve Tests/Linux/resources ile Windows portable test runner'ını çalıştırın

Testler, 766 resmi Unicode 17 GraphemeBreakTest durumunun tamamını tüketir ve yayımlanan her sınırı UTF-16 birimlerinde karşılaştırır

Build-UnicodeTextBoundaryTables.py, derlenmiş aralık tablolarını mevcut sabitlenmiş UCD verisinden deterministik olarak yeniden kurar

Unicode 17 metin segmentasyonu kuralları · Sınır fonksiyonu · Zengin alan davranışı