Repository navigation
fix(pdf-codec): start a text run where its first glyph is painted - #1725
Merged
Merged
Conversation
A TJ array that opens with a numeric adjustment moved the pen but not the start of the run that followed, so the run was reported from where the previous text ended and its advance absorbed the gap. A producer that starts a new text-showing operator with the word space expressed as an adjustment (a cross-reference set in a link colour inside prose) then had that word read as touching the one before it. An adjustment met before any glyph of a run now moves the run start with the pen. The interpreter test that pinned a leading adjustment inside the run is changed to the corrected position. Closes #1724
Mearman
marked this pull request as ready for review
October 30, 2026 20:50
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
This security review couldn’t start because the paying account has exhausted its Codex allowance and has insufficient available credits. The payer can check their balance and add credits in the Codex usage dashboard, then try again. If you do not manage the paying account, contact this repository's admins. |
Contributor
|
🎉 This PR is included in version 14.6.4 🎉 The release is available on: Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A
TJarray that opens with a numeric adjustment moved the pen but not the start of the run that followed, so the run was reported from where the previous text ended and its width swallowed the gap. Typesetters start a new text-showing operator with the word space as a leading adjustment whenever state changes between words (a cross-reference in a link colour inside prose is the usual case), and every such word came out joined to the one before: "inTable", "inFig", "2-2.Generators".showTextArraynow re-takes the run's start matrix after any adjustment met before the run's first glyph, which covers both a leading adjustment and the one that has just ended the previous run. The interpreter test that pinned a leading adjustment as part of the run is changed to expect the run at its first glyph, and two more pin a narrow leading adjustment and a kerning adjustment inside a run. ApdfToMarkdowntest builds a line from threeTJoperators, the later two opening with-250and the font scaled by the text matrix, with no space character in the stream; it read "shown inTable 2.Generators" before this change.Run against a whole typeset textbook that shows the fault, the count of lowercase-then-capital joins in the Markdown dropped from 431 to 24 (the rest are symbol-font equation text), the change only ever split tokens (no new words appeared), and a report already read correctly by the earlier
TJfix came out byte for byte the same.Closes #1724