mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-31 21:27:00 -06:00
Type: Optical Margin Alignment hangs punctuation in right-to-left paragraphs
Optical Margin Alignment and Roman Hanging Punctuation left every right-to-left paragraph of point and area type, and type on a path whose first paragraph runs right to left, as it was: the quotation marks, full stops and commas at the ends of its lines stayed inside the margins. A right-to-left line now hangs at the margins its alignment places it against, as a left-to-right line does. Auto aligns a right-to-left line at its right, so it hangs there. The line is read from right to left: where it hangs at its left margin, a full stop and the quotation mark after it that end the line hang together. In vertical type, where the characters of a right-to-left paragraph run from the top down, the pair is read from the top. Type on a path whose first paragraph runs right to left hangs at its brackets by the same rule. In horizontal type, Auto places it at the end bracket, so it hangs there. On a closed path, its hang at the end bracket gets the space between the end and start brackets before its hang at the start bracket does, as in right-aligned type. A justified right-to-left line of one word is spread between its letters as they are drawn. The gap after each letter went to the letter that follows it in the text, so the two leftmost letters touched and the word ended one gap short of the right margin. Docs: docs/mcp.md, docs/type-parity.md, docs/target-app-parity.md.
This commit is contained in:
@@ -1329,9 +1329,8 @@ pub struct TextObject {
|
||||
pub wrap: Vec<WrapShape>,
|
||||
/// Type › Optical Margin Alignment: in every paragraph, Latin punctuation and the slanted
|
||||
/// sides of letters such as A and W at a line's start or end hang outside the margin there
|
||||
/// (point and area type of left-to-right paragraphs, and left-to-right type on a path at its
|
||||
/// brackets; see the layout's `optical_hangs`). Off for new type and for documents from before
|
||||
/// it, and saved only when on.
|
||||
/// (point and area type, and type on a path at its brackets; see the layout's `optical_hangs`).
|
||||
/// Off for new type and for documents from before it, and saved only when on.
|
||||
#[serde(default, rename = "opticalMarginAlignment", skip_serializing_if = "crate::skip::is_default")]
|
||||
pub optical_margin: bool,
|
||||
/// Cached layout bounds in text space, filled in by the layout engine (not serialized).
|
||||
|
||||
Reference in New Issue
Block a user