mirror of
https://github.com/typst/typst
synced 2025-07-16 00:52:54 +08:00
183 lines
3.2 KiB
Typst
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]),
|
|
)
|