summaryrefslogtreecommitdiff
path: root/crates/typst-library/src/math
diff options
context:
space:
mode:
authorSébastien d'Herbais de Thun <sebastien.d.herbais@gmail.com>2023-10-03 19:31:02 +0200
committerGitHub <noreply@github.com>2023-10-03 19:31:02 +0200
commita4e357fb37d76d32d06ad8cc21e47bb2cc064cfd (patch)
tree52e118513218d961cc5e8c713575049cd75a2e95 /crates/typst-library/src/math
parent6b1233e127d815b38fea9ab909dd4081cdf76ca2 (diff)
Gradient Part 2 - Linear gradients (#2279)
Diffstat (limited to 'crates/typst-library/src/math')
-rw-r--r--crates/typst-library/src/math/accent.rs2
-rw-r--r--crates/typst-library/src/math/attach.rs6
-rw-r--r--crates/typst-library/src/math/cancel.rs2
-rw-r--r--crates/typst-library/src/math/frac.rs2
-rw-r--r--crates/typst-library/src/math/fragment.rs4
-rw-r--r--crates/typst-library/src/math/matrix.rs4
-rw-r--r--crates/typst-library/src/math/root.rs2
-rw-r--r--crates/typst-library/src/math/row.rs4
-rw-r--r--crates/typst-library/src/math/stretch.rs2
-rw-r--r--crates/typst-library/src/math/underover.rs4
10 files changed, 16 insertions, 16 deletions
diff --git a/crates/typst-library/src/math/accent.rs b/crates/typst-library/src/math/accent.rs
index c92f9585..a542111b 100644
--- a/crates/typst-library/src/math/accent.rs
+++ b/crates/typst-library/src/math/accent.rs
@@ -88,7 +88,7 @@ impl LayoutMath for AccentElem {
let base_ascent = base.ascent();
let baseline = base_pos.y + base.ascent();
- let mut frame = Frame::new(size);
+ let mut frame = Frame::soft(size);
frame.set_baseline(baseline);
frame.push_frame(accent_pos, accent);
frame.push_frame(base_pos, base.into_frame());
diff --git a/crates/typst-library/src/math/attach.rs b/crates/typst-library/src/math/attach.rs
index c33b58e4..5d1e477e 100644
--- a/crates/typst-library/src/math/attach.rs
+++ b/crates/typst-library/src/math/attach.rs
@@ -106,7 +106,7 @@ impl LayoutMath for PrimesElem {
// Custom amount of primes
let prime = ctx.layout_fragment(&TextElem::packed('′'))?.into_frame();
let width = prime.width() * (count + 1) as f64 / 2.0;
- let mut frame = Frame::new(Size::new(width, prime.height()));
+ let mut frame = Frame::soft(Size::new(width, prime.height()));
frame.set_baseline(prime.ascent());
for i in 0..count {
@@ -260,7 +260,7 @@ fn layout_attachments(
return Ok(());
}
- let mut frame = Frame::new(Size::new(
+ let mut frame = Frame::soft(Size::new(
pre_width_max + base_width + post_max_width + scaled!(ctx, space_after_script),
ascent + descent,
));
@@ -331,7 +331,7 @@ fn attach_top_and_bottom(
let base_pos = Point::new((width - base.width()) / 2.0, base_offset);
let delta = base.italics_correction() / 2.0;
- let mut frame = Frame::new(Size::new(width, height));
+ let mut frame = Frame::soft(Size::new(width, height));
frame.set_baseline(base_pos.y + base.ascent());
frame.push_frame(base_pos, base.into_frame());
diff --git a/crates/typst-library/src/math/cancel.rs b/crates/typst-library/src/math/cancel.rs
index d27031b9..4b87117c 100644
--- a/crates/typst-library/src/math/cancel.rs
+++ b/crates/typst-library/src/math/cancel.rs
@@ -171,7 +171,7 @@ fn draw_cancel_line(
let start = Axes::new(-mid.x, mid.y).zip_map(scales, |l, s| l * s);
let delta = Axes::new(width, -height).zip_map(scales, |l, s| l * s);
- let mut frame = Frame::new(body_size);
+ let mut frame = Frame::soft(body_size);
frame.push(
start.to_point(),
FrameItem::Shape(Geometry::Line(delta.to_point()).stroked(stroke), span),
diff --git a/crates/typst-library/src/math/frac.rs b/crates/typst-library/src/math/frac.rs
index 6a296203..93819184 100644
--- a/crates/typst-library/src/math/frac.rs
+++ b/crates/typst-library/src/math/frac.rs
@@ -110,7 +110,7 @@ fn layout(
let denom_pos = Point::new((width - denom.width()) / 2.0, height - denom.height());
let baseline = line_pos.y + axis;
- let mut frame = Frame::new(size);
+ let mut frame = Frame::soft(size);
frame.set_baseline(baseline);
frame.push_frame(num_pos, num);
frame.push_frame(denom_pos, denom);
diff --git a/crates/typst-library/src/math/fragment.rs b/crates/typst-library/src/math/fragment.rs
index 5ac1f2dd..71d8d237 100644
--- a/crates/typst-library/src/math/fragment.rs
+++ b/crates/typst-library/src/math/fragment.rs
@@ -148,7 +148,7 @@ impl MathFragment {
Self::Glyph(glyph) => glyph.into_frame(),
Self::Variant(variant) => variant.frame,
Self::Frame(fragment) => fragment.frame,
- _ => Frame::new(self.size()),
+ _ => Frame::soft(self.size()),
}
}
@@ -309,7 +309,7 @@ impl GlyphFragment {
}],
};
let size = Size::new(self.width, self.ascent + self.descent);
- let mut frame = Frame::new(size);
+ let mut frame = Frame::soft(size);
frame.set_baseline(self.ascent);
frame.push(Point::with_y(self.ascent + self.shift), FrameItem::Text(item));
frame.meta_iter(self.meta);
diff --git a/crates/typst-library/src/math/matrix.rs b/crates/typst-library/src/math/matrix.rs
index 68f7f438..1dee5434 100644
--- a/crates/typst-library/src/math/matrix.rs
+++ b/crates/typst-library/src/math/matrix.rs
@@ -396,7 +396,7 @@ fn layout_mat_body(
let ncols = rows.first().map_or(0, |row| row.len());
let nrows = rows.len();
if ncols == 0 || nrows == 0 {
- return Ok(Frame::new(Size::zero()));
+ return Ok(Frame::soft(Size::zero()));
}
// Before the full matrix body can be laid out, the
@@ -431,7 +431,7 @@ fn layout_mat_body(
heights.iter().map(|&(a, b)| a + b).sum::<Abs>() + gap.y * (nrows - 1) as f64;
// Width starts at zero because it can't be calculated until later
- let mut frame = Frame::new(Size::new(Abs::zero(), total_height));
+ let mut frame = Frame::soft(Size::new(Abs::zero(), total_height));
let mut x = Abs::zero();
diff --git a/crates/typst-library/src/math/root.rs b/crates/typst-library/src/math/root.rs
index 03d0a212..49ceb75f 100644
--- a/crates/typst-library/src/math/root.rs
+++ b/crates/typst-library/src/math/root.rs
@@ -109,7 +109,7 @@ fn layout(
let line_pos = Point::new(radicand_x, radicand_y - gap - (thickness / 2.0));
let radicand_pos = Point::new(radicand_x, radicand_y);
- let mut frame = Frame::new(size);
+ let mut frame = Frame::soft(size);
frame.set_baseline(ascent);
if let Some(index) = index {
diff --git a/crates/typst-library/src/math/row.rs b/crates/typst-library/src/math/row.rs
index cf3a8af2..70813598 100644
--- a/crates/typst-library/src/math/row.rs
+++ b/crates/typst-library/src/math/row.rs
@@ -156,7 +156,7 @@ impl MathRow {
}
let AlignmentResult { points, width } = alignments(&rows);
- let mut frame = Frame::new(Size::zero());
+ let mut frame = Frame::soft(Size::zero());
for (i, row) in rows.into_iter().enumerate() {
let sub = row.into_line_frame(&points, align);
@@ -179,7 +179,7 @@ impl MathRow {
fn into_line_frame(self, points: &[Abs], align: FixedAlign) -> Frame {
let ascent = self.ascent();
- let mut frame = Frame::new(Size::new(Abs::zero(), ascent + self.descent()));
+ let mut frame = Frame::soft(Size::new(Abs::zero(), ascent + self.descent()));
frame.set_baseline(ascent);
let mut next_x = {
diff --git a/crates/typst-library/src/math/stretch.rs b/crates/typst-library/src/math/stretch.rs
index 910f7a81..e9bf6890 100644
--- a/crates/typst-library/src/math/stretch.rs
+++ b/crates/typst-library/src/math/stretch.rs
@@ -161,7 +161,7 @@ fn assemble(
baseline = full / 2.0 + axis;
}
- let mut frame = Frame::new(size);
+ let mut frame = Frame::soft(size);
let mut offset = Abs::zero();
frame.set_baseline(baseline);
frame.meta_iter(base.meta);
diff --git a/crates/typst-library/src/math/underover.rs b/crates/typst-library/src/math/underover.rs
index 3e8dba1a..5d010c28 100644
--- a/crates/typst-library/src/math/underover.rs
+++ b/crates/typst-library/src/math/underover.rs
@@ -89,7 +89,7 @@ fn layout_underoverline(
let size = Size::new(width, height);
let content_class = content.class().unwrap_or(MathClass::Normal);
- let mut frame = Frame::new(size);
+ let mut frame = Frame::soft(size);
frame.set_baseline(baseline);
frame.push_frame(content_pos, content.into_frame());
frame.push(
@@ -295,7 +295,7 @@ pub(super) fn stack(
.collect();
let mut y = Abs::zero();
- let mut frame = Frame::new(Size::new(
+ let mut frame = Frame::soft(Size::new(
width,
rows.iter().map(|row| row.height()).sum::<Abs>()
+ rows.len().saturating_sub(1) as f64 * gap,