typst/tests/suite/layout/grid/subfooters.typ
2025-06-28 22:39:35 -03:00

183 lines
3.2 KiB
Typst

--- grid-subfooters-demo ---
#set page(height: 15.2em)
#table(
columns: 2,
align: center,
table.header(
table.cell(colspan: 2)[*Regional User Data*],
),
table.header(
level: 2,
table.cell(colspan: 2)[*Germany*],
[*Username*], [*Joined*]
),
[john123], [2024],
[rob8], [2025],
[joe1], [2025],
[joe2], [2025],
[martha], [2025],
[pear], [2025],
table.footer(
level: 2,
[*Mode*], [2025],
table.cell(colspan: 2)[*Totals*],
),
// TODO: Why does it overflow here?
table.header(
level: 2,
table.cell(colspan: 2)[*United States*],
[*Username*], [*Joined*]
),
[cool4], [2023],
[roger], [2023],
[bigfan55], [2022],
table.footer(
level: 2,
[*Mode*], [2023],
table.cell(colspan: 2)[*Totals*],
),
table.footer(
table.cell(colspan: 2)[*Data Inc.*],
),
)
--- grid-subfooters-basic ---
#grid(
[a],
grid.footer(level: 2, [b]),
grid.footer([c]),
)
--- grid-subfooters-basic-non-consecutive ---
#grid(
[x],
grid.footer(level: 2, [a]),
[y],
grid.footer([b]),
)
--- grid-subfooters-basic-replace ---
#grid(
[x],
grid.footer(level: 2, [a]),
[y],
grid.footer(level: 2, [b]),
[z],
grid.footer([c]),
)
--- grid-subfooters-basic-with-header ---
#grid(
grid.header([a]),
[b],
grid.footer(level: 2, [c]),
grid.footer([d]),
)
--- grid-subfooters-basic-non-consecutive-with-header ---
#grid(
grid.header([a]),
[x],
grid.footer(level: 2, [b]),
[y],
grid.footer([f])
)
--- grid-subfooters-repeat ---
#set page(height: 8em)
#grid(
..([a],) * 10,
grid.footer(level: 2, [b]),
grid.footer([c]),
)
--- grid-subfooters-repeat-non-consecutive ---
#set page(height: 8em)
#grid(
..([y],) * 10,
grid.footer(level: 2, [b]),
[x],
grid.footer([a]),
)
--- grid-subfooters-repeat-with-header ---
#set page(height: 8em)
#grid(
grid.header([a]),
..([b],) * 10,
grid.footer(level: 2, [c]),
[m],
grid.footer([f])
)
--- grid-subfooters-repeat-gutter ---
// Gutter above the footer is also repeated
#set page(height: 8em)
#grid(
inset: (top: 0.5pt),
stroke: (top: 1pt),
gutter: (1pt,) * 9 + (6pt, 1pt),
..([a],) * 10,
grid.footer(level: 2, [b]),
grid.footer([c]),
)
--- grid-subfooters-repeat-replace ---
#set page(height: 8em)
#grid(
..([x],) * 10,
grid.footer(level: 2, [a]),
..([y],) * 10,
grid.footer(level: 2, [b]),
[z],
grid.footer([c]),
)
--- grid-subfooters-repeat-replace-multiple-levels ---
// TODO: This is overflowing
#set page(height: 8em)
#grid(
..([x],) * 6,
grid.footer(level: 2, [a]),
..([y],) * 10,
grid.footer(level: 3, [b]),
grid.footer(level: 2, [c]),
[z],
grid.footer([d]),
)
--- grid-subfooters-repeat-replace-gutter ---
#set page(height: 8em)
#grid(
gutter: 3pt,
..([x],) * 3,
grid.footer(level: 2, [a]),
..([y],) * 8,
grid.footer(level: 2, [b]),
[z],
grid.footer([c]),
)
--- grid-subfooters-repeat-replace-widow ---
#set page(height: 8em)
#grid(
..([x],) * 14,
grid.footer(level: 2, [a]),
..([y],) * 8,
grid.footer(level: 2, [b]),
[z],
grid.footer([c]),
)
--- grid-subfooters-repeat-replace-double-widow ---
#set page(height: 8em)
#grid(
..([x],) * 12,
grid.footer(level: 3, [a]),
grid.footer(level: 2, [b]),
..([y],) * 11,
grid.footer(level: 2, [c]),
[z],
grid.footer([d]),
)