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

  1. Use a finite spacing value on both axes
  2. 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.