From b469f30c83f50a5728888c7a800d31321e160e5d Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sun, 2 Apr 2023 19:45:53 +0200 Subject: Fix block spacing --- library/src/layout/mod.rs | 8 ++++++-- tests/ref/layout/block-spacing.png | Bin 0 -> 1868 bytes tests/typ/layout/block-spacing.typ | 9 +++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 tests/ref/layout/block-spacing.png create mode 100644 tests/typ/layout/block-spacing.typ diff --git a/library/src/layout/mod.rs b/library/src/layout/mod.rs index e93b2e02..d12ce158 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 00000000..d73abac0 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 00000000..2c636676 --- /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] -- cgit v1.2.3