typst / typst/typst

Unexpected breaking across pages for `stack(dir: ltr, ...)`

Open
#6,770 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug layout
Dominant language
Rust
Stars
56.1k
Forks
1.7k
Avg merge
3d 10h
Merged PRs (30d)
22

Description

Description

stack(dir: ltr, ...) exhibits some weird behavior when breaking across pages. The following example is from catte on Discord:

#set page(height: 10cm)

#let col = stack(dir: ttb, ..(red, orange, yellow, green, blue, purple).map(c => rect(fill: c, height: 2cm)))

#stack(dir: ltr, col, col)

which produces

Image

A user would expect that if this pagebreaks at all, it would page break like a grid. I think it would also be reasonable for horizontally-stacked items to be treated as if they were in a non-breakable block.

Reproduction URL

No response

Operating system

Linux

Typst version
  • I am using the latest version of Typst

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Run the provided Typst reproduction with the 10cm page height and inspect the stack layout and page-breaking behavior. Done means the horizontal stack no longer breaks unexpectedly, following an agreed grid-like or non-breakable-block interpretation.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.