typst/typst · error · SourceDiagnostic
tile spacing must be finite
Error message
tile spacing must be finite
What it means
Raised in `Tiling::construct` after checking that the `spacing` argument is absolute (no `em` components): here the spacing length must also be finite. A user-supplied `spacing` of `inf` (or a computation yielding infinity, e.g. `1pt/0`) for either axis fails this guard, since a non-finite gap between tile cells cannot be laid out.
Source
Thrown at crates/typst-library/src/visualize/tiling.rs:257
// Ensure that sizes are non-zero and finite.
if size.x.is_zero()
|| size.y.is_zero()
|| !size.x.is_finite()
|| !size.y.is_finite()
{
bail!(size_span, "tile size must be non-zero and non-infinite");
}
}
// Ensure that spacing is absolute.
if !spacing.v.x.em.is_zero() || !spacing.v.y.em.is_zero() {
bail!(spacing.span, "tile spacing must be absolute");
}
// Ensure that spacing is finite.
if !spacing.v.x.is_finite() || !spacing.v.y.is_finite() {
bail!(spacing.span, "tile spacing must be finite");
}
// Ensure that offset is not font-relative.
if !offset.v.x.abs.em.is_zero() || !offset.v.y.abs.em.is_zero() {
bail!(offset.span, "tile offset must not be font-relative");
}
// Ensure that offset is finite.
if !offset.v.x.rel.get().is_finite()
|| !offset.v.x.abs.is_finite()
|| !offset.v.y.rel.get().is_finite()
|| !offset.v.y.abs.is_finite()
{
bail!(offset.span, "tile offset must be finite");
}
if !angle.v.is_finite() {
bail!(angle.span, "tile angle must be finite");View on GitHub (pinned to 35417aa769)
Solutions
- Use a finite spacing value on both axes
- Check spacing computations for division by zero or overflow
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/typst-library/src/visualize/tiling.rs:257 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of typst/typst@35417aa769 (2026-08-17).
Data as JSON: /api/errors/67d5e0a92a3a2c8d.
Report an issue: GitHub.