mirror of
https://github.com/typst/typst
synced 2025-05-14 04:56:26 +08:00
872 lines
12 KiB
Typst
872 lines
12 KiB
Typst
--- grid-subheaders-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.header(
|
|
level: 2,
|
|
table.cell(colspan: 2)[*United States*],
|
|
[*Username*], [*Joined*]
|
|
),
|
|
[cool4], [2023],
|
|
[roger], [2023],
|
|
[bigfan55], [2022]
|
|
)
|
|
|
|
--- grid-subheaders-colorful ---
|
|
#set page(width: auto, height: 12em)
|
|
#let rows(n) = {
|
|
range(n).map(i => ([John \##i], table.cell(stroke: green)[123], table.cell(stroke: blue)[456], [789], [?], table.hline(start: 4, end: 5, stroke: red))).flatten()
|
|
}
|
|
#table(
|
|
columns: 5,
|
|
align: center + horizon,
|
|
table.header(
|
|
table.cell(colspan: 5)[*Cool Zone*],
|
|
),
|
|
table.header(
|
|
level: 2,
|
|
table.cell(stroke: red)[*Name*], table.cell(stroke: aqua)[*Number*], [*Data 1*], [*Data 2*], [*Etc*],
|
|
table.hline(start: 2, end: 3, stroke: yellow)
|
|
),
|
|
..rows(2),
|
|
table.header(
|
|
level: 2,
|
|
table.cell(stroke: red)[*New Name*], table.cell(stroke: aqua, colspan: 4)[*Other Data*],
|
|
table.hline(start: 2, end: 3, stroke: yellow)
|
|
),
|
|
..rows(3)
|
|
)
|
|
|
|
--- grid-subheaders-basic ---
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
[c]
|
|
)
|
|
|
|
--- grid-subheaders-basic-non-consecutive ---
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
[y],
|
|
)
|
|
|
|
--- grid-subheaders-basic-replace ---
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
[y],
|
|
grid.header(
|
|
level: 2,
|
|
[c]
|
|
),
|
|
[z],
|
|
)
|
|
|
|
--- grid-subheaders-basic-with-footer ---
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
[c],
|
|
grid.footer(
|
|
[d]
|
|
)
|
|
)
|
|
|
|
--- grid-subheaders-basic-non-consecutive-with-footer ---
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
[y],
|
|
grid.footer(
|
|
[f]
|
|
)
|
|
)
|
|
|
|
--- grid-subheaders-repeat ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
..([c],) * 10,
|
|
)
|
|
|
|
--- grid-subheaders-repeat-non-consecutive ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
..([y],) * 10,
|
|
)
|
|
|
|
--- grid-subheaders-repeat-with-footer ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[m],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
..([c],) * 10,
|
|
grid.footer(
|
|
[f]
|
|
)
|
|
)
|
|
|
|
--- grid-subheaders-repeat-gutter ---
|
|
// Gutter below the header is also repeated
|
|
#set page(height: 8em)
|
|
#grid(
|
|
inset: (bottom: 0.5pt),
|
|
stroke: (bottom: 1pt),
|
|
gutter: (1pt, 6pt, 1pt),
|
|
grid.header(
|
|
[a]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
..([c],) * 10,
|
|
)
|
|
|
|
--- grid-subheaders-repeat-replace ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
..([y],) * 10,
|
|
grid.header(
|
|
level: 2,
|
|
[c]
|
|
),
|
|
..([z],) * 10,
|
|
)
|
|
|
|
--- grid-subheaders-repeat-replace-multiple-levels ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
grid.header(
|
|
level: 3,
|
|
[c]
|
|
),
|
|
..([y],) * 10,
|
|
grid.header(
|
|
level: 2,
|
|
[d]
|
|
),
|
|
..([z],) * 6,
|
|
)
|
|
|
|
--- grid-subheaders-repeat-replace-orphan ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
..([y],) * 12,
|
|
grid.header(
|
|
level: 2,
|
|
[c]
|
|
),
|
|
..([z],) * 10,
|
|
)
|
|
|
|
--- grid-subheaders-repeat-replace-double-orphan ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
..([y],) * 11,
|
|
grid.header(
|
|
level: 2,
|
|
[c]
|
|
),
|
|
grid.header(
|
|
level: 3,
|
|
[d]
|
|
),
|
|
..([z],) * 10,
|
|
)
|
|
|
|
--- grid-subheaders-repeat-replace-didnt-fit-once ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
..([y],) * 10,
|
|
grid.header(
|
|
level: 2,
|
|
[c\ c\ c]
|
|
),
|
|
..([z],) * 4,
|
|
)
|
|
|
|
--- grid-subheaders-repeat-replace-with-footer ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
grid.header(
|
|
level: 3,
|
|
[c]
|
|
),
|
|
..([y],) * 10,
|
|
grid.header(
|
|
level: 2,
|
|
[d]
|
|
),
|
|
..([z],) * 6,
|
|
grid.footer(
|
|
[f]
|
|
)
|
|
)
|
|
|
|
--- grid-subheaders-repeat-replace-with-footer-orphan ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
..([y],) * 10,
|
|
grid.header(
|
|
level: 2,
|
|
[c]
|
|
),
|
|
..([z],) * 10,
|
|
grid.footer(
|
|
[f]
|
|
)
|
|
)
|
|
|
|
--- grid-subheaders-repeat-replace-short-lived ---
|
|
// No orphan prevention for short-lived headers
|
|
// (followed by replacing headers).
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[c]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[d]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[e]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[f]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[g]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[h]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[i]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[j]
|
|
),
|
|
grid.header(
|
|
level: 3,
|
|
[k]
|
|
),
|
|
..([z],) * 10,
|
|
)
|
|
|
|
--- grid-subheaders-multi-page-row ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
columns: 2,
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
[y],
|
|
grid.header(
|
|
level: 3,
|
|
[c]
|
|
),
|
|
[a], [b],
|
|
grid.cell(
|
|
block(fill: red, width: 1.5em, height: 6.4em)
|
|
),
|
|
[y],
|
|
..([z],) * 10,
|
|
)
|
|
|
|
--- grid-subheaders-non-repeat ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a],
|
|
repeat: false,
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
repeat: false,
|
|
[b]
|
|
),
|
|
..([y],) * 10,
|
|
)
|
|
|
|
--- grid-subheaders-non-repeat-replace ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
grid.header(
|
|
level: 3,
|
|
[c]
|
|
),
|
|
..([y],) * 9,
|
|
grid.header(
|
|
level: 2,
|
|
[d],
|
|
repeat: false,
|
|
),
|
|
..([z],) * 6,
|
|
)
|
|
|
|
--- grid-subheaders-non-repeating-replace-orphan ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
..([y],) * 12,
|
|
grid.header(
|
|
level: 2,
|
|
repeat: false,
|
|
[c]
|
|
),
|
|
..([z],) * 10,
|
|
)
|
|
|
|
--- grid-subheaders-non-repeating-replace-didnt-fit-once ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
..([y],) * 10,
|
|
grid.header(
|
|
level: 2,
|
|
repeat: false,
|
|
[c\ c\ c]
|
|
),
|
|
..([z],) * 4,
|
|
)
|
|
|
|
--- grid-subheaders-multi-page-rowspan ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
columns: 2,
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
[y],
|
|
grid.header(
|
|
level: 3,
|
|
[c]
|
|
),
|
|
[z], [z],
|
|
grid.cell(
|
|
rowspan: 5,
|
|
block(fill: red, width: 1.5em, height: 6.4em)
|
|
),
|
|
[cell],
|
|
[cell]
|
|
)
|
|
|
|
--- grid-subheaders-multi-page-row-right-after ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
columns: 1,
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
grid.header(
|
|
level: 3,
|
|
[c]
|
|
),
|
|
grid.cell(
|
|
block(fill: red, width: 1.5em, height: 6.4em)
|
|
),
|
|
[done.],
|
|
[done.]
|
|
)
|
|
|
|
--- grid-subheaders-multi-page-rowspan-right-after ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
columns: 2,
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x], [y],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
grid.header(
|
|
level: 3,
|
|
[c]
|
|
),
|
|
grid.cell(
|
|
rowspan: 5,
|
|
block(fill: red, width: 1.5em, height: 6.4em)
|
|
),
|
|
[cell],
|
|
[cell],
|
|
grid.cell(x: 0)[done.],
|
|
grid.cell(x: 0)[done.]
|
|
)
|
|
|
|
--- grid-subheaders-multi-page-row-with-footer ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
columns: 2,
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
[y],
|
|
grid.header(
|
|
level: 3,
|
|
[c]
|
|
),
|
|
[a], [b],
|
|
grid.cell(
|
|
block(fill: red, width: 1.5em, height: 6.4em)
|
|
),
|
|
[y],
|
|
..([z],) * 10,
|
|
grid.footer(
|
|
[f]
|
|
)
|
|
)
|
|
|
|
--- grid-subheaders-multi-page-rowspan-with-footer ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
columns: 2,
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
[y],
|
|
grid.header(
|
|
level: 3,
|
|
[c]
|
|
),
|
|
[z], [z],
|
|
grid.cell(
|
|
rowspan: 5,
|
|
block(fill: red, width: 1.5em, height: 6.4em)
|
|
),
|
|
[cell],
|
|
[cell],
|
|
grid.footer(
|
|
[f]
|
|
)
|
|
)
|
|
|
|
--- grid-subheaders-multi-page-row-right-after-with-footer ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
columns: 1,
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
grid.header(
|
|
level: 3,
|
|
[c]
|
|
),
|
|
grid.cell(
|
|
block(fill: red, width: 1.5em, height: 6.4em)
|
|
),
|
|
[done.],
|
|
[done.],
|
|
grid.footer(
|
|
[f]
|
|
)
|
|
)
|
|
|
|
--- grid-subheaders-multi-page-rowspan-gutter ---
|
|
#set page(height: 9em)
|
|
#grid(
|
|
columns: 2,
|
|
column-gutter: 4pt,
|
|
row-gutter: (0pt, 4pt, 8pt, 4pt),
|
|
inset: (bottom: 0.5pt),
|
|
stroke: (bottom: 1pt),
|
|
grid.header(
|
|
[a]
|
|
),
|
|
[x],
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
[y],
|
|
grid.header(
|
|
level: 3,
|
|
[c]
|
|
),
|
|
[z], [z],
|
|
grid.cell(
|
|
rowspan: 5,
|
|
block(fill: red, width: 1.5em, height: 6.4em)
|
|
),
|
|
[cell],
|
|
[cell],
|
|
[a\ b],
|
|
grid.cell(x: 0)[end],
|
|
)
|
|
|
|
--- grid-subheaders-non-repeating-header-before-multi-page-row ---
|
|
#set page(height: 6em)
|
|
#grid(
|
|
grid.header(
|
|
repeat: false,
|
|
[h]
|
|
),
|
|
[row #colbreak() row]
|
|
)
|
|
|
|
|
|
--- grid-subheaders-short-lived-no-orphan-prevention ---
|
|
// No orphan prevention for short-lived headers.
|
|
#set page(height: 8em)
|
|
#v(5em)
|
|
#grid(
|
|
grid.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
grid.header(
|
|
level: 2,
|
|
[c]
|
|
),
|
|
[d]
|
|
)
|
|
|
|
--- grid-subheaders-repeating-orphan-prevention ---
|
|
#set page(height: 8em)
|
|
#v(4.5em)
|
|
#grid(
|
|
grid.header(
|
|
repeat: true,
|
|
level: 2,
|
|
[L2]
|
|
),
|
|
grid.header(
|
|
repeat: true,
|
|
level: 4,
|
|
[L4]
|
|
),
|
|
[a]
|
|
)
|
|
|
|
--- grid-subheaders-non-repeating-orphan-prevention ---
|
|
#set page(height: 8em)
|
|
#v(4.5em)
|
|
#grid(
|
|
grid.header(
|
|
repeat: false,
|
|
level: 2,
|
|
[L2]
|
|
),
|
|
grid.header(
|
|
repeat: false,
|
|
level: 4,
|
|
[L4]
|
|
),
|
|
[a]
|
|
)
|
|
|
|
--- grid-subheaders-alone ---
|
|
#table(
|
|
table.header(
|
|
[a]
|
|
),
|
|
table.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
)
|
|
|
|
--- grid-subheaders-alone-no-orphan-prevention ---
|
|
#set page(height: 5.3em)
|
|
#v(2em)
|
|
#grid(
|
|
grid.header(
|
|
// (
|
|
[L1]
|
|
),
|
|
grid.header(
|
|
// (
|
|
level: 2,
|
|
[L2]
|
|
),
|
|
)
|
|
|
|
--- grid-subheaders-alone-with-footer ---
|
|
#table(
|
|
table.header(
|
|
[a]
|
|
),
|
|
table.header(
|
|
level: 2,
|
|
[b]
|
|
),
|
|
table.footer(
|
|
[c],
|
|
)
|
|
)
|
|
|
|
--- grid-subheaders-alone-with-footer-no-orphan-prevention ---
|
|
#set page(height: 5.3em)
|
|
#table(
|
|
table.header(
|
|
[L1]
|
|
),
|
|
table.header(
|
|
level: 2,
|
|
[L2]
|
|
),
|
|
table.footer(
|
|
[a],
|
|
)
|
|
)
|
|
|
|
--- grid-subheaders-alone-with-gutter-and-footer-no-orphan-prevention ---
|
|
#set page(height: 5.5em)
|
|
#table(
|
|
gutter: 4pt,
|
|
table.header(
|
|
[L1]
|
|
),
|
|
table.header(
|
|
level: 2,
|
|
[L2]
|
|
),
|
|
table.footer(
|
|
[a],
|
|
)
|
|
)
|
|
|
|
--- grid-subheaders-too-large-non-repeating-orphan-before-auto ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header([1]),
|
|
grid.header(
|
|
[a\ ] * 2,
|
|
level: 2,
|
|
repeat: false,
|
|
),
|
|
grid.header([2], level: 3),
|
|
[b\ b\ b],
|
|
)
|
|
|
|
--- grid-subheaders-too-large-repeating-orphan-before-auto ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
grid.header([1]),
|
|
grid.header(
|
|
[a\ ] * 2,
|
|
level: 2,
|
|
repeat: true,
|
|
),
|
|
grid.header([2], level: 3),
|
|
rect(width: 10pt, height: 3em, fill: red),
|
|
)
|
|
|
|
--- grid-subheaders-too-large-repeating-orphan-before-relative ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
rows: (auto, auto, auto, 3em),
|
|
grid.header([1]),
|
|
grid.header(
|
|
[a\ ] * 2,
|
|
level: 2,
|
|
repeat: true,
|
|
),
|
|
grid.header([2], level: 3),
|
|
rect(width: 10pt, height: 3em, fill: red),
|
|
)
|
|
|
|
--- grid-subheaders-too-large-non-repeating-orphan-before-relative ---
|
|
#set page(height: 8em)
|
|
#grid(
|
|
rows: (auto, auto, auto, 3em),
|
|
grid.header([1]),
|
|
grid.header(
|
|
[a\ ] * 2,
|
|
level: 2,
|
|
repeat: false,
|
|
),
|
|
grid.header([2], level: 3),
|
|
rect(width: 10pt, height: 3em, fill: red),
|
|
)
|