Skip to content

fix(pptx): apply paragraph-end font to the final physical line - #1585

Merged
developer0hye merged 1 commit into
mainfrom
fix/issue-1177-last-line-mark
Sep 6, 2026
Merged

fix(pptx): apply paragraph-end font to the final physical line#1585
developer0hye merged 1 commit into
mainfrom
fix/issue-1177-last-line-mark

Conversation

@developer0hye

Copy link
Copy Markdown
Owner

Summary

Seat automatically wrapped PowerPoint paragraphs using the paragraph-end font
only on the final physical line. The startup fixture's first text line and
bullet move from 142pt to 143pt (native: 143.04pt), while its final line keeps
the mark's font seat. Typst retains responsibility for shaping, wrapping and
layout height; completed-frame adjustments keep links and underlines with
their text. Centered and bottom-anchored stories use their local origin.

Native one-factor width and mark-font probes isolate the cause: changing only
the width makes the first baseline 143.04pt when wrapped or 142.08pt when
unwrapped; changing only the end-mark face moves the final wrapped line.
Explicit hard breaks retain their existing line-stack path. Scripted runs
retain their existing behavior until logical lines can be distinguished from
superscript/subscript baselines.

Related issue

Related: #1177. Remaining independent defects: #1581, #1582, #1583, #1584.

Testing

  • cargo test --locked --workspace --no-fail-fast: passed (3484 tests; 15 ignored).
  • cargo clippy --locked --workspace --all-targets -- -D warnings: passed.
  • cargo fmt --all -- --check and git diff --check: passed.
  • RED/GREEN regressions for final-line mark seating, centered Korean paragraphs,
    all three wrapped list markers, and link/underline positions. An embedded-font
    regression checks the same behavior without depending on installed Office fonts.
  • Fresh native PowerPoint exports and all four comparison axes on eleven pages.
    Searchable text matches (1,608 normalized codepoints; identical codepoint census).

Visual impact

  • No rendered PDF change
  • Rendered PDF change or visual evidence added

Visual audit

Visual comparison

Each image contains the eleven full pages in collection order.

GT Before After
GT Before After

Required inspection

  • Rendered all evidence at 150 DPI or higher
  • Stored progressive JPEG quality 86 assets with metadata stripped
  • Used Codex/Claude vision to inspect the full GT/output pages, diff, and matched crops
  • Inspected matched region crops at full resolution
  • Ran compare_layout.py --audit --fine-shift PT and dispositioned every fine/large text-instance shift, rectangle geometry deviation, painted-text visibility mismatch, and visible-fill occlusion
  • Ran compare_render.py --cluster-report PATH --strict-clusters and dispositioned every material 5% fuzz diff cluster by explicit ID
  • Inventoried hairlines and border dash styles
  • Inventoried font weight, italic, and underline emphasis

Deviation audit

Check Result
Page count/order Matches GT: all eleven pages in the documented fixture order.
Element presence Matches GT: text, markers, shapes and pictures remain present.
Position/size Remaining: #1581, #1582, #1583, #1584; advance-grid, cross-space kerning, story-origin rounding and continuation-line rounding respectively.
Rotation/flip Matches GT.
Fill Matches GT: covers, cards, chart fills and Korean panel.
Stroke/border Matches GT: thin axes, ticks, legend outlines and bar edges remain present.
Shape outline geometry Matches GT.
Text content Matches GT: normalized searchable text and codepoint census agree.
Font family/weight/style Matches GT: same title/body weights and Korean emphasis in full-scale crops.
Text color Matches GT.
Alignment Fixed: first wrapped line and bullet use the nonfinal font seat.
Line/paragraph spacing Remaining: #1583, #1584; fractional origin and continuation-line rounding.
Clipping/overflow Matches GT on the original eleven-page fix collection.

Checklist

  • Commits include a Signed-off-by line
  • PR scope contains one root cause
  • Remaining converter or harness deviations each reference an open issue

Signed-off-by: Yonghye Kwon <developer.0hye@gmail.com>
@developer0hye
developer0hye merged commit 006bcb3 into main Sep 6, 2026
18 checks passed
@developer0hye
developer0hye deleted the fix/issue-1177-last-line-mark branch September 6, 2026 01:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant