summaryrefslogtreecommitdiff
path: root/raster.typ
blob: c62d9bcff25265ee89d1a87ba7e4e2adf81b285e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#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
}