diff --git a/materials/global.typ b/materials/global.typ index 7f32698fa21862aa8e255f285fce809ea6331849..35333e6648a6bbb0299ed9c344ac10a98b3e81eb 100644 --- a/materials/global.typ +++ b/materials/global.typ @@ -31,6 +31,8 @@ ) ] +#let tc = counter("task") + #let info(content) = gitbox("icons/Info_steel_blue.svg")[ *Info*: #content @@ -39,15 +41,27 @@ *Verständnisfrage*: #content ] + +#let update-task-counter() = context { + let heading-value = counter(heading).get() + let task-heading-value = tc.get() + if heading-value.at(0) > task-heading-value.at(0) { + tc.update((heading-value.at(0), 0)) + } + tc.step(level: 2) +} + #let task(content) = gitbox("icons/Task.svg")[ - *Aufgabe*: + #update-task-counter() + *Aufgabe #context tc.display()*: #content ] #let optional-task(content) = gitbox("icons/OptionalTask.svg")[ - *Aufgabe (optional)*: + #update-task-counter() + *Aufgabe #context tc.display() (optional)*: #content ] #let warning(content) = box(stroke: color.rgb("FEC601"), gitbox("icons/Warning.svg")[ *Warnung*: #content -]) \ No newline at end of file +])