Typsastra Enhanced Unicode Engine v0.4.1¶
This patch release fixes duplicated logical text in PDFs when complex-script text follows a styled source span. It preserves v0.4.0's public API, visual positioning, compact glyph namespace, and standard two-byte PDF character codes.
Source identity¶
- Engine version:
0.4.1 - Typst CLI compatibility:
0.15.1 - Enhanced Typst revision:
e3a60d5aa897d718b465efc3de0031c7d74efb3b - Enhanced Krilla revision:
bb0873416484587814b9ecb682e262056f8effe2 - License: Apache-2.0
Changes since v0.4.0¶
- Normalize mixed-span text batches whose authoritative first item contains a separator prefix from a preceding styled span.
- Preserve the foreign prefix exactly once while assigning overlapping visual fragments to one logical source sequence.
- Reject ambiguous or non-contiguous mixed-span layouts so they continue through the ordinary text path.
- Preserve legitimate repeated text at distinct source positions.
The issue affected valid Khmer source such as:
In v0.4.0, the rendered PDF looked correct, but extraction could duplicate
parts of words—for example, ក្រសួង became ក្រសួសួង and គ្រប់គ្រង became
គ្រប់ប់គ្រង. The repaired batch keeps one semantic owner for each overlapping
source interval without deduplicating equal text from separate source offsets.
Regression validation¶
The fixed source revision was validated with static Noto Sans Khmer v2.004 Regular and Bold fonts. Poppler, PDFium, and pypdf extracted the authored UTF-8 text exactly, and PDFium search found the repaired words while retaining the expected count for legitimately repeated control text.
qpdf --check reported no syntax or stream-encoding errors. A combined
PDF/A-2b and PDF/UA-1 document passed both veraPDF profiles. Visual inspection
at 144 DPI found no layout, clipping, overlap, or legibility regression.
Platform packages¶
The release workflow builds ZIP packages for Windows x64, Linux x64, Linux
ARM64, macOS x64, and macOS ARM64. Each package contains the compatible typst
executable, the Apache-2.0 license, and exact source metadata. The generated
enhanced-unicode-manifest.json records each archive's byte length and SHA-256
digest for Typsastra's managed installer.
Release gate¶
Every platform build must:
- report the expected Typst 0.15.1 CLI version,
- compile Typsastra's multilingual Enhanced Unicode fixture,
- compile the wide repeated-fill regression fixture, and
- compile PDFs for every supported base PDF version, PDF/A profile, and PDF/UA-1 combination before the release is published.
The release gate covers PDF 1.4, 1.5, 1.6, 1.7, and 2.0; all eleven PDF/A profiles exposed by Typst; PDF/UA-1; and compatible PDF/A-2a+PDF/UA-1 and PDF/A-3a+PDF/UA-1 combinations. The Linux x64 artifacts are independently checked with pinned veraPDF 1.30.2. Publication is blocked unless every claimed PDF/A and PDF/UA profile is reported compliant.
Scope¶
This optional engine is used only for explicit PDF export. Tinymist remains the compiler and language service for live preview, autocomplete, diagnostics, and source synchronization.