Fix space collapsing for explicit paragraphs (#5749)

This commit is contained in:
Laurenz 2025-01-24 13:31:03 +01:00 committed by GitHub
parent 26e65bfef5
commit 176b070c77
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 32 additions and 9 deletions

View File

@ -729,8 +729,8 @@ fn finish(s: &mut State) -> SourceResult<()> {
}
})?;
// In math, spaces are top-level.
if let RealizationKind::Math = s.kind {
// In paragraph and math realization, spaces are top-level.
if matches!(s.kind, RealizationKind::LayoutPar | RealizationKind::Math) {
collapse_spaces(&mut s.sink, 0);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 B

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 B

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 920 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 932 B

View File

@ -215,14 +215,16 @@ Welcome \ here. Does this work well?
#set text(hyphenate: false)
Lorem ipsum dolor #metadata(none) nonumy eirmod tempor.
--- par-show ---
// This is only slightly cursed.
#let revoke = metadata("revoke")
--- par-show-children ---
// Variant 1: Prevent recursion by checking the children.
#let p = counter("p")
#let step = p.step()
#let nr = context p.display()
#show par: it => {
if bibliography.title == revoke { return it }
set bibliography(title: revoke)
let p = counter("p")
par[#p.step() §#context p.display() #it.body]
if it.body.at("children", default: ()).at(0, default: none) == step {
return it
}
par(step + [§#nr ] + it.body)
}
= A
@ -235,6 +237,27 @@ C #parbreak() D
#block[F #parbreak() G]
--- par-show-styles ---
// Variant 2: Prevent recursion by observing a style.
#let revoke = metadata("revoke")
#show par: it => {
if bibliography.title == revoke { return it }
set bibliography(title: revoke)
let p = counter("p")
par[#p.step()§#context p.display() #it.body]
}
= A
B
C
--- par-explicit-trim-space ---
A
#par[ B ]
--- issue-4278-par-trim-before-equation ---
#set par(justify: true)
#lorem(6) aa $a = c + b$