mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-11 23:32:14 +00:00
A centred or right-aligned line of tracked type was measured with the tracking after its last character, so it sat half that tracking (centred) or the whole tracking (right-aligned) left of where the page of users' .ai files draws it. That page aligns a line as wide as its characters without that tracking. Shaping now records the tracking each glyph's advance holds (SGlyph::tracking), and a line that isn't justified leaves its last character's out of the width it is aligned by. The last character is the last one the line draws before a paragraph's end, a forced line break or the spaces a wrap leaves; spaces or a tab typed before a paragraph's end or a forced line break keep the letter's tracking, as the page does. Forced line breaks and wraps aren't in the files: they follow the rule so that turning a wrap into a paragraph or a forced line break keeps the line in place. Hyphenated lines, lines whose last character hangs, vertical and right-to-left lines and type on a path keep it. The tracking stays in the glyph's advance, so the caret, selections, line breaking and Fit Headline are unchanged. LineInfo::trailing gives the amount. Right-aligned area type sets the text after its last tab the same way. What aligns by line widths follows. Convert To Area Type makes its frame end where the lines are aligned, with room for the tracking, so tracked type converted either way stays in place. Affinity import lines up differently aligned paragraphs of artistic text by the aligned widths. SVG import moves a centred or right-aligned letter-spaced line back by its share of the last letter spacing, so it stays where a reader draws it and SVG export, which anchors lines at the end of their advances, reads back unchanged. Centred and right-aligned tracked type lays out differently than before in every document. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>