From 1d2a222818991bcc3ade54fdd30480ce1fb8826f Mon Sep 17 00:00:00 2001 From: Laurenz Date: Mon, 7 Oct 2024 16:13:24 +0200 Subject: [PATCH] Error for parent-scoped figures without placement (#5151) --- crates/typst/src/model/figure.rs | 6 ++++++ tests/suite/model/figure.typ | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/crates/typst/src/model/figure.rs b/crates/typst/src/model/figure.rs index 00a9aafd1..1d3c9c957 100644 --- a/crates/typst/src/model/figure.rs +++ b/crates/typst/src/model/figure.rs @@ -351,6 +351,12 @@ impl Show for Packed { .with_float(true) .pack() .spanned(self.span()); + } else if self.scope(styles) == PlacementScope::Parent { + bail!( + self.span(), + "parent-scoped placement is only available for floating figures"; + hint: "you can enable floating placement with `figure(placement: auto, ..)`" + ); } Ok(realized) diff --git a/tests/suite/model/figure.typ b/tests/suite/model/figure.typ index feaf8d3bd..fbd0ab295 100644 --- a/tests/suite/model/figure.typ +++ b/tests/suite/model/figure.typ @@ -77,6 +77,11 @@ We can clearly see that @fig-cylinder and #lines(15) +--- figure-scope-without-placement --- +// Error: 2-27 parent-scoped placement is only available for floating figures +// Hint: 2-27 you can enable floating placement with `figure(placement: auto, ..)` +#figure(scope: "parent")[] + --- figure-theorem --- // Testing show rules with figures with a simple theorem display #show figure.where(kind: "theorem"): it => {