diff --git a/crates/typst-library/src/layout/grid/resolve.rs b/crates/typst-library/src/layout/grid/resolve.rs index 0fc2cc13d..d25dc949a 100644 --- a/crates/typst-library/src/layout/grid/resolve.rs +++ b/crates/typst-library/src/layout/grid/resolve.rs @@ -226,7 +226,7 @@ impl ResolvableCell for Packed { let breakable = cell.breakable.get(styles).unwrap_or(breakable); let fill = cell.fill.get_cloned(styles).unwrap_or_else(|| fill.clone()); - let kind = cell.kind.unwrap_or_default().or(kind); + let kind = cell.kind.get(styles).or(kind); let cell_stroke = cell.stroke.resolve(styles); let stroke_overridden = @@ -271,7 +271,7 @@ impl ResolvableCell for Packed { }), ); cell.breakable.set(Smart::Custom(breakable)); - cell.kind = Some(kind); + cell.kind.set(kind); Cell { body: self.pack(), locator, diff --git a/crates/typst-library/src/model/table.rs b/crates/typst-library/src/model/table.rs index 7a638083d..578397b58 100644 --- a/crates/typst-library/src/model/table.rs +++ b/crates/typst-library/src/model/table.rs @@ -688,7 +688,7 @@ pub struct TableCell { pub stroke: Sides>>>, #[internal] - #[synthesized] + #[parse(Some(Smart::Auto))] pub kind: Smart, /// Whether rows spanned by this cell can be placed in different pages. diff --git a/crates/typst-pdf/src/tags/table.rs b/crates/typst-pdf/src/tags/table.rs index b1137820e..0bde00c94 100644 --- a/crates/typst-pdf/src/tags/table.rs +++ b/crates/typst-pdf/src/tags/table.rs @@ -60,7 +60,7 @@ impl TableCtx { let y = cell.y.get(StyleChain::default()).unwrap_or_else(|| unreachable!()); let rowspan = cell.rowspan.get(StyleChain::default()); let colspan = cell.colspan.get(StyleChain::default()); - let kind = cell.kind.expect("kind to be set after layouting"); + let kind = cell.kind.get(StyleChain::default()); // Extend the table grid to fit this cell. let required_height = y + rowspan.get();