summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--crates/typst-library/src/layout/mod.rs10
-rw-r--r--crates/typst-library/src/math/ctx.rs2
2 files changed, 11 insertions, 1 deletions
diff --git a/crates/typst-library/src/layout/mod.rs b/crates/typst-library/src/layout/mod.rs
index d31f6841..77e62dd3 100644
--- a/crates/typst-library/src/layout/mod.rs
+++ b/crates/typst-library/src/layout/mod.rs
@@ -637,7 +637,15 @@ impl<'a> ParBuilder<'a> {
fn finish(self) -> (Content, StyleChain<'a>) {
let (children, shared) = self.0.finish();
- (ParElem::new(children.to_vec()).pack(), shared)
+
+ // Find the first span that isn't detached.
+ let span = children
+ .iter()
+ .map(|(cnt, _)| cnt.span())
+ .find(|span| !span.is_detached())
+ .unwrap_or_else(Span::detached);
+
+ (ParElem::new(children.to_vec()).spanned(span).pack(), shared)
}
}
diff --git a/crates/typst-library/src/math/ctx.rs b/crates/typst-library/src/math/ctx.rs
index 2637921c..789bd332 100644
--- a/crates/typst-library/src/math/ctx.rs
+++ b/crates/typst-library/src/math/ctx.rs
@@ -252,7 +252,9 @@ impl<'a, 'b, 'v> MathContext<'a, 'b, 'v> {
// because it will be placed somewhere probably not at the left margin
// it will overflow. So emulate an `hbox` instead and allow the paragraph
// to extend as far as needed.
+ let span = elem.span();
let frame = ParElem::new(vec![Prehashed::new(elem)])
+ .spanned(span)
.layout(
self.vt,
self.outer.chain(&self.local),