summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Biedert <github@ericbiedert.de>2024-10-07 10:13:09 +0200
committerGitHub <noreply@github.com>2024-10-07 08:13:09 +0000
commit20ce48dc36978e0995a03d7f97975deff99834b3 (patch)
tree1e8c6c5c48f1e1c19f49a8e4532fa4a268d2f3a0
parent60f9f66950f1fbef3d6042533e768b9ee933dd24 (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)