#let raster( paper: "a4", grid: 6mm, show-grid: false, body: 11pt, scale-base: 1.2, rest, ) = { let scale(l) = body * calc.pow(scale-base, 4 - l) let gridsize(l) = ( size: scale(l), top-edge: calc.ceil(scale(l).mm() / grid.mm()) * grid, ); set page( paper: paper, margin: ( inside: grid * 6, rest: grid * 4, ), ); set page( background: rect( width: 100%, height: 100%, fill: tiling(size: (grid, grid), { place(line(start: (0%, 0%), end: (100%, 0%), stroke: 2pt + rgb("#ccc"))); place(line(start: (0%, 0%), end: (0%, 100%), stroke: 2pt + rgb("#ccc"))); }), ), ) if show-grid; set text( font: "TeX Gyre Schola", ..gridsize(4) ); set par( justify: true, leading: 0pt, spacing: 0pt, first-line-indent: grid, ); set block( above: grid, below: 0pt, ); set heading( numbering: "1.1", ); show heading: it => block( above: grid, below: 0pt, text( baseline: grid / -4, ..gridsize(it.level), )[ #counter(heading).display() #sym.dot #it.body ] ); rest }