#let table-header(..headers) = { table.header( ..headers.pos().map(h => strong(text(fill: white, h))) ) } #set table( stroke: black, inset: .5em, align: center, ) #let abrechnung(meta, days) = { set page(paper: "a4") [= Abrechnung Arbeitszeit -- #meta.employee-name] [Zeitraum: #meta.Zeitraum Arbeitszeit: #user.Arbeitszeit Überstunden: #user.Überstunden ] table( columns: (1fr, 1fr, 1fr, 1fr, 1fr, 1fr, 1.25fr), fill: (x, y) => if y == 0 { gray }, align: center, table-header( [Datum], [Kommen], [Gehen], [Arbeitsart], [Stunden], [Pause], [Überstunden] ), .. for day in days { ( [#day.Date], table.cell(colspan: 3, inset: 0em)[ #table( columns: (1fr, 1fr, 1fr), gutter: 0em, stroke: black, .. for Zeit in day.Zeiten { ( [#Zeit.Kommen], [#Zeit.Gehen], [#Zeit.Art], ) }, ) ], [#day.Arbeitszeit], [#day.Pause], [#day.Überstunden], ) } ) }