diff --git a/library/src/math/mod.rs b/library/src/math/mod.rs index 65baf7acd..f24b80788 100644 --- a/library/src/math/mod.rs +++ b/library/src/math/mod.rs @@ -223,7 +223,20 @@ impl Layout for FormulaNode { }; let mut ctx = MathContext::new(vt, styles, regions, &font, self.block); - let frame = ctx.layout_frame(self)?; + let mut frame = ctx.layout_frame(self)?; + + if !self.block { + let slack = styles.get(ParNode::LEADING) * 0.7; + let top_edge = styles.get(TextNode::TOP_EDGE).resolve(styles, font.metrics()); + let bottom_edge = + -styles.get(TextNode::BOTTOM_EDGE).resolve(styles, font.metrics()); + + let ascent = top_edge.max(frame.ascent() - slack); + let descent = bottom_edge.max(frame.descent() - slack); + frame.translate(Point::with_y(ascent - frame.baseline())); + frame.size_mut().y = ascent + descent; + } + Ok(Fragment::frame(frame)) } } diff --git a/tests/ref/math/simple.png b/tests/ref/math/simple.png index a0a864af0..60597c9ed 100644 Binary files a/tests/ref/math/simple.png and b/tests/ref/math/simple.png differ diff --git a/tests/ref/math/syntax.png b/tests/ref/math/syntax.png index 2f0a40b6a..54ec856de 100644 Binary files a/tests/ref/math/syntax.png and b/tests/ref/math/syntax.png differ