From 2fe549c1ec40681829b59f95a5a2f5db335ec3af Mon Sep 17 00:00:00 2001 From: Laurenz Date: Mon, 13 Jun 2022 14:06:41 +0200 Subject: [PATCH] Fix inline math formula frame size --- src/eval/raw.rs | 6 ++++++ src/library/math/mod.rs | 2 +- src/library/math/rex.rs | 15 ++++++++++----- src/model/layout.rs | 5 ++--- tests/ref/math/basic.png | Bin 6554 -> 6554 bytes tests/ref/text/par.png | Bin 30191 -> 30131 bytes 6 files changed, 19 insertions(+), 9 deletions(-) diff --git a/src/eval/raw.rs b/src/eval/raw.rs index 6545ea5ab..ee64b8c42 100644 --- a/src/eval/raw.rs +++ b/src/eval/raw.rs @@ -43,6 +43,12 @@ impl RawAlign { } } +impl From for RawAlign { + fn from(align: Align) -> Self { + Self::Specific(align) + } +} + impl Debug for RawAlign { fn fmt(&self, f: &mut Formatter) -> fmt::Result { match self { diff --git a/src/library/math/mod.rs b/src/library/math/mod.rs index 6ed759b7b..1eed89b12 100644 --- a/src/library/math/mod.rs +++ b/src/library/math/mod.rs @@ -56,7 +56,7 @@ impl Show for MathNode { }; Ok(if self.display { - Content::block(node) + Content::block(node.pack().aligned(Spec::with_x(Some(Align::Center.into())))) } else { Content::inline(node) }) diff --git a/src/library/math/rex.rs b/src/library/math/rex.rs index a8dbd764c..a17773726 100644 --- a/src/library/math/rex.rs +++ b/src/library/math/rex.rs @@ -58,19 +58,24 @@ impl Layout for RexNode { // Determine the metrics. let (x0, y0, x1, y1) = renderer.size(&layout); let width = Length::pt(x1 - x0); - let height = Length::pt(y1 - y0); - let size = Size::new(width, height); - let baseline = Length::pt(y1); + let mut top = Length::pt(y1); + let mut bottom = Length::pt(-y0); + if !self.display { + let metrics = face.metrics(); + top = styles.get(TextNode::TOP_EDGE).resolve(styles, metrics); + bottom = -styles.get(TextNode::BOTTOM_EDGE).resolve(styles, metrics); + }; // Prepare a frame rendering backend. + let size = Size::new(width, top + bottom); let mut backend = FrameBackend { frame: { let mut frame = Frame::new(size); - frame.set_baseline(baseline); + frame.set_baseline(top); frame.apply_role(Role::Formula); frame }, - baseline, + baseline: top, face_id, fill: styles.get(TextNode::FILL), lang: styles.get(TextNode::LANG), diff --git a/src/model/layout.rs b/src/model/layout.rs index 22797b482..4fa3fe202 100644 --- a/src/model/layout.rs +++ b/src/model/layout.rs @@ -19,10 +19,9 @@ use crate::Context; /// A node that can be layouted into a sequence of regions. /// -/// Layout return one frame per used region alongside constraints that define -/// whether the result is reusable in other regions. +/// Layouting return one frame per used region. pub trait Layout: 'static { - /// Layout this node into the given regions, producing constrained frames. + /// Layout this node into the given regions, producing frames. fn layout( &self, ctx: &mut Context, diff --git a/tests/ref/math/basic.png b/tests/ref/math/basic.png index ce95966205b2ffb4f6edacdd8ed737198a15a74a..902354df134c391ad6d0c2c2ba04841149255c1a 100644 GIT binary patch literal 6554 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 literal 6554 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 Sf&BC50#H|eu2cpw5B(4AQf3bT diff --git a/tests/ref/text/par.png b/tests/ref/text/par.png index 18908448917ac306b8af3f7dded2e5221e03b5cb..471437a04f4f668eda069f9376b487f9c8b5179e 100644 GIT binary patch delta 9372 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
fjeql2xs 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 WKd2mmb>S26aaZB~%^Z2-Xa56Z{&u4P