From d9d2c021d62abb4fe6d12b994334bd211e462cde Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sun, 29 Jan 2023 20:44:33 +0100 Subject: Fix inline math bounding box --- library/src/math/mod.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'library/src') diff --git a/library/src/math/mod.rs b/library/src/math/mod.rs index 65baf7ac..f24b8078 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)) } } -- cgit v1.2.3