Well, the easiest way would be to just change the paper size to the landscape double sheet, because there is no multipage wide table layout feature.
#set page(
paper: "a3",
height: 380mm,
flipped: true,
margin: (top: 15mm, rest: 5mm),
background: {
align(center, line(angle: 90deg, length: 100%, stroke: (dash: "dashed")))
},
header: context {
set align(horizon)
let page = here().page() * 2
let next-page = page + 1
grid(
columns: (1fr, 1fr),
align: center,
{
upper[research institute]
place(top + left)[#page \]]
// place(top + left, box(width: 1em, align(right)[#page]) + "]")
},
{
upper[catalogue of skt. mss. pt. #numbering("I", 7)]
place(top + right)[\[ #next-page]
// place(top + right, "[" + box(width: 1em, align(left)[#next-page]))
},
)
// grid(
// columns: (1cm, 1fr, 1fr, 1cm),
// align: (auto, center, center, auto),
// stroke: 1pt,
// [#page \]],
// upper[research institute],
// upper[catalogue of skt. mss. pt. #numbering("I", 7)],
// [\[ #next-page],
// )
},
)
#set text(13pt)
#set smartquote(enabled: false)
#let data = (
(
[Upanisad],
..([],) * 13,
),
(
[19869],
[22094],
[Kṛṣṇa tāpanī [Upanīṣat]],
[],
[],
[P],
[D],
// [29.5x14],
[29.5 #sym.times 14],
// $29.5 times 14$,
[1],
[14],
[50],
[Inc.],
[Poor],
[In praise of lord Kṛṣṇa; begnning missing; colophon reads "Tatsaditi
ityatharvaṇi lti śri Kṛṣṇa tāpanisampūrṇā"],
),
(
[19870],
[23367],
[Gārudopaniṣad],
[],
[],
[P],
[D],
[17.3 #sym.times 10.5],
[2],
[9],
[23],
[C],
[Poor],
[From Atharvaṇa Veda.],
),
(
[19871],
[23996],
align(center)["],
[],
[],
[P],
[D],
[14.5 #sym.times 20],
[1],
[21],
[20],
[C],
[Fair],
["#h(5em)"],
),
)
#let colspan-start = 8
#let colspan = 4
#let header = (
range(1, colspan-start),
table.cell(colspan: colspan)[#colspan-start],
range(colspan-start + 1, data.first().len() + 1 - colspan + 1),
)
// columns: (1fr,) * data.first().len(),
// columns: (4.5em, 4em, 11em, 5em, 4em, 2em, 2em, ..(1fr,) * 7),
// columns: (22mm, 19mm, 54mm, 24mm, 19mm, 9mm, 9mm, ..(1fr,) * 7),
// columns: (28mm, 25mm, 60mm, 30mm, 25mm, 15mm, 15mm, ..(1fr,) * 7),
// @typstyle off
#let columns = (
25mm, 25mm,
380mm / 2 - (25, 25, 33, 23, 15, 15).sum() * 1mm - 5mm,
33mm, 23mm, 15mm, 15mm,
31mm, 12mm, 13mm, 15mm, 25mm, 26mm, 1fr,
)
#table(
columns: columns,
inset: (x: 5pt, y: 0.8em),
align: (_, y) => if y == 0 { center } else { auto },
stroke: (x, y) => if y == 0 {
if x == 0 { (y: 1pt) } else { (right: none, rest: 1pt) }
} else {
if x == 0 { (:) } else { (right: none, left: 1pt) }
},
table.header(..header.flatten().map(n => [#n])),
..data.flatten() * 15 * 3,
table.hline(stroke: 1pt),
)