summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Biedert <github@ericbiedert.de>2024-10-07 10:13:09 +0200
committerLaurenz <laurmaedje@gmail.com>2024-10-15 15:06:36 +0200
commit32ce5cad22edd64c23ffd57ea0ff998696f8273c (patch)
treec1741d924112db49b1c982c40fc1fb6c5a29224f
parentd5b1f4a6f9b16166b4affe8c49d3f433a4b425c8 (diff)
Fix panic for empty breakable block equations (#5116)
-rw-r--r--crates/typst/src/math/equation.rs6
-rw-r--r--tests/suite/math/multiline.typ6
2 files changed, 11 insertions, 1 deletions
diff --git a/crates/typst/src/math/equation.rs b/crates/typst/src/math/equation.rs
index 83d3fc74..963a35c5 100644
--- a/crates/typst/src/math/equation.rs
+++ b/crates/typst/src/math/equation.rs
@@ -379,6 +379,12 @@ fn layout_equation_block(
equation_builder.size.y = height;
}
+ // Ensure that there is at least one frame, even for empty equations.
+ if equation_builders.is_empty() {
+ equation_builders
+ .push(MathRunFrameBuilder { frames: vec![], size: Size::zero() });
+ }
+
equation_builders
} else {
vec![full_equation_builder]
diff --git a/tests/suite/math/multiline.typ b/tests/suite/math/multiline.typ
index 3c0ed2f4..34e66b99 100644
--- a/tests/suite/math/multiline.typ
+++ b/tests/suite/math/multiline.typ
@@ -147,11 +147,15 @@ $ a + b $
Shouldn't overflow:
$ a + b $
+--- issue-5113-pagebreaking-empty ---
+// Test empty breakable equations.
+#show math.equation: set block(breakable: true)
+#math.equation(block: true, [])
+
--- issue-1948-math-text-break ---
// Test text with linebreaks in math.
$ x := "a\nb\nc\nd\ne" $
-
--- issue-4829-math-pagebreaking-wrong-number ---
// Test numbering of empty regions of broken equations.
#set page(height: 5em)