How to repeat content on exactly one page?

So zero space between them? For printing, I think most printers won’t print more than a few millimeters near the paper sides.

#let fill-first-page(body) = {
  set page(margin: 5mm)
  set par(spacing: 0pt)
  layout(size => {
    let table-size = measure(body, ..size)
    let count = int(size.height / table-size.height)
    for _ in range(count) {
      body
    }
  })
  pagebreak(weak: true)
}

#let the-table = {
  set text(9pt)
  show table.cell.where(y: 0): strong
  let rows = 10
  let header = (
    [Date],
    [Assignment Name],
    [Points Earned],
    [Points Possible],
    [Total Earned],
    [Total Possible],
    [Current overall %],
    [Current Letter Grade],
  )
  table(
    columns: (15mm, 1fr) + (15mm,) * (header.len() - 2),
    align: center + horizon,
    table.header(..header),
    ..range(header.len() * rows).map(_ => [~]),
  )
}

#fill-first-page(the-table)

Second page

I haven’t seen a single example where repeat is used vertically. Maybe when CJK vertical layout will come. RFC: Vertical Writing Mode · Issue #5908 · typst/typst · GitHub

3 Likes