Skip to content

Typsastra Enhanced Unicode Engine v0.4.1

Choose a tag to compare

@github-actions github-actions released this 06 Sep 04:24
· 5 commits to main since this release

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:

#strong[ផ្នែក ក] ក្រសួងប្រៃសណីយ៍។
#strong[Label] ការគ្រប់គ្រងគម្រោង។

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:

  1. report the expected Typst 0.15.1 CLI version,
  2. compile Typsastra's multilingual Enhanced Unicode fixture,
  3. compile the wide repeated-fill regression fixture, and
  4. 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.