typst/typst · error

length must be negative or zero

Error message

length must be negative or zero

What it means

Raised by Limit::checked_min for Length: a limit expecting a non-positive value (e.g. par spacing collapse bounds) received a length with a positive abs or em component.

Source

Thrown at crates/typst-library/src/model/par.rs:594

    }
}

impl<T> Fold for Limits<T> {
    fn fold(self, _: Self) -> Self {
        self
    }
}

/// Validation for limit components.
trait Limit: Sized {
    fn checked_min(self) -> StrResult<Self>;
    fn checked_max(self) -> StrResult<Self>;
}

impl Limit for Length {
    fn checked_min(self) -> StrResult<Self> {
        if self.abs > Abs::zero() || self.em > Em::zero() {
            bail!("length must be negative or zero");
        }
        Ok(self)
    }

    fn checked_max(self) -> StrResult<Self> {
        if self.abs < Abs::zero() || self.em < Em::zero() {
            bail!("length must be positive or zero");
        }
        Ok(self)
    }
}

impl Limit for Rel<Length> {
    fn checked_min(self) -> StrResult<Self> {
        if self.rel <= Ratio::zero() {
            bail!("ratio must be positive");
        }
        self.abs.checked_min()?;

View on GitHub (pinned to 35417aa769)

Solutions

  1. Use zero or negative values for this setting
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/typst-library/src/model/par.rs:594 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/da43d8bfff3757a7. Report an issue: GitHub.