diff --git a/library/src/layout/mod.rs b/library/src/layout/mod.rs index e93b2e028..d12ce158e 100644 --- a/library/src/layout/mod.rs +++ b/library/src/layout/mod.rs @@ -466,8 +466,12 @@ impl<'a> FlowBuilder<'a> { self.0.push(spacing.pack(), styles); } - let above = BlockElem::above_in(styles); - let below = BlockElem::below_in(styles); + let (above, below) = if let Some(block) = content.to::() { + (block.above(styles), block.below(styles)) + } else { + (BlockElem::above_in(styles), BlockElem::below_in(styles)) + }; + self.0.push(above.pack(), styles); self.0.push(content.clone(), styles); self.0.push(below.pack(), styles); diff --git a/tests/ref/layout/block-spacing.png b/tests/ref/layout/block-spacing.png new file mode 100644 index 000000000..d73abac02 Binary files /dev/null and b/tests/ref/layout/block-spacing.png differ diff --git a/tests/typ/layout/block-spacing.typ b/tests/typ/layout/block-spacing.typ new file mode 100644 index 000000000..2c6366764 --- /dev/null +++ b/tests/typ/layout/block-spacing.typ @@ -0,0 +1,9 @@ +// Test block spacing. + +--- +#set block(spacing: 10pt) +Hello + +There + +#block(spacing: 20pt)[Further down]