diff --git a/coursework_example.pdf b/coursework_example.pdf index cb5abd8..5f797d9 100644 Binary files a/coursework_example.pdf and b/coursework_example.pdf differ diff --git a/coursework_example.typ b/coursework_example.typ index 35a8ea0..cf70371 100644 --- a/coursework_example.typ +++ b/coursework_example.typ @@ -77,20 +77,14 @@ ], ) -#let appendices = ( - ( - title: "Приклад звіту 1", - content: [test], - ), - ( - title: "Приклад звіту 2", - content: [test], - ), - ( - title: "Приклад звіту 3", - content: [test], - ), -) +#let appendices = [ + = Приклад звіту 1 + test + = Приклад звіту 2 + test + = Приклад звіту 3 + test +] #show: cw-template.with( title: "Інформаційна система «Помічник класного керівника». Керування класом", diff --git a/template.typ b/template.typ index 5cad7ca..22934fc 100644 --- a/template.typ +++ b/template.typ @@ -88,6 +88,8 @@ } // Styling {{{1 +/// NOTE: may be wrong +#let ua_alpha_numbering = "абвгдежиклмнпрстуфхцшщюя".split("") // 0 = "", 1 = "а" // general outlook {{{2 // spacing between lines @@ -115,16 +117,7 @@ set par(leading: spacing) // enums and lists {{{2 - let ua_alph_numbering() = { - // INFO: This alphabet is not full, maybe it should be extended or maybe not. - // I cant remember nor find proper formatting rules. - // "абвгґдеєжзиіїйклмнопрстуфхцчшщьюя" (full alphabet) - - let alphabet = "абвгдежиклмнпрстуфхцшщюя".split("") - i => { alphabet.at(i) + ")" } - } - - set enum(numbering: ua_alph_numbering(), indent: 1.25cm, body-indent: 0.5cm) + set enum(numbering: i => { ua_alpha_numbering.at(i) + ")" }, indent: 1.25cm, body-indent: 0.5cm) show enum: it => { set enum(indent: 0em, numbering: "1)") it @@ -237,7 +230,7 @@ /// - calendar_plan ( plan_table: (content | str), approval_date: datetime): Calendar plan object. /// - abstract (keywords: (str, ), text: (content | str)): Abstract object. /// - bib_path path: Path to the bibliography yaml file. -/// - appendices ((title: str, content: content, ): List of appendices objects. +/// - appendices (content): Content with appendices. #let cw-template( doc, title: "NONE", @@ -579,26 +572,39 @@ { counter(heading).update(0) - for (i, appendix) in appendices.enumerate() [ - #set heading( - numbering: i => [ - Додаток #"АБВГДЕЖИКЛМНПРСТУФХЦШЩЮЯ".split("").at(i) - ], - ) + set heading( + numbering: (i, ..nums) => { + let char = upper(ua_alpha_numbering.at(i)) + if nums.pos().len() == 0 { char } else { + char + "." + nums.pos().map(str).join(".") + } + }, + ) - #show heading: it => { - set align(center) - set text(size: 14pt, weight: "regular") + show heading.where(level: 1): it => { + set align(center) + set text(size: 14pt, weight: "regular") - pagebreak(weak: true) - bold(upper(counter(heading).display(it.numbering))) - linebreak() - it.body - v(spacing * 2, weak: true) - } - #heading(appendix.title) - #appendix.content - ] + pagebreak(weak: true) + bold("ДОДАТОК " + counter(heading).display()) // TODO: should it.numbering be passed? + linebreak() + it.body + v(spacing * 2, weak: true) + } + + show heading.where(level: 2): it => { + set text(size: 14pt, weight: "regular") + + v(spacing * 2, weak: true) + block(width: 100%, spacing: 0em)[ + #h(1.25cm) + #counter(heading).display() // TODO: should it.numbering be passed? + #it.body + ] + v(spacing * 2, weak: true) + } + + appendices } }