From 09fc15a8c91b87ac9eb244de1b2a8b42bfef45c7 Mon Sep 17 00:00:00 2001 From: Anton Bilous Date: Fri, 21 Feb 2025 15:06:28 +0200 Subject: [PATCH] reimplement appendices --- coursework_example.pdf | Bin 154056 -> 154089 bytes coursework_example.typ | 22 ++++++-------- template.typ | 64 ++++++++++++++++++++++------------------- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/coursework_example.pdf b/coursework_example.pdf index cb5abd8795b304a295de7f0e5c2e85507c46b2a4..5f797d99f5d7d8ffcdae84acccacf9c643003402 100644 GIT binary patch delta 2091 zcmZvcdo+~!AIHs8#9;Gde&w<>KSIXsd7hbPW*#xfl*^_x2F1FJ+)~kKGB(RpYMIgq zO|wKUWo>FU>o%6iovlT+M{PA|w2^f`LXB3d-LvP{&g}P}?>VpY{#?KB^X;kD7_Zhi zaT-$t{ARlbh9Qw`BW5#iD!(`G^X)okmgaFAH-u?2t`|-JX4i_n#k z$A$mK_m9tY5KkIN%MMk=>}v=h9-UZ>A3#IzRY5Bu>UK@)3nnSaN!7`38y`Eb$QNd& zWP<_;cYQq9K0Yb8YOrZ2g)7Nj+Ec4`MlH1xKO>y$xIB2{Msm~&Z(J^#n(iK4;x;<3 z$5bKTObfbiI7 zfpp5zk+~e$P`)%_L?NRoO;2Qf>5W%XSB?)qte;F~zh9ianz=mo__DsI#4xh)_#%?k z8fx5Z|M;1vE$$}If5<&_=2k$ry1%pI(5{)eHx0yl_&8jtY1aHZ>Fl$gt!aCcZR)>W z=A2N^JBSo!#dLHA){LwB#Rfh(Oe^(moqt+xb~9|E#&G^H9?f5(Is26{uG=^`&k{CU zTzZ9L9Jv`T;>mD$u+{#9n+Ku}SUHDs}Lfqu)UL0sC^>y9&b z9OZ`ycX*S&HyP+D^$4%P7fJ~ga?a_Eu>(Qj6~&StBj2l7Af9!2=8G-3!bCq{KM;`6P%6WD1SVBzi zmoFbMJj`l8Rc)?{^uO9B2&)*ClsHUgEOhJ&NH@;jsiz&c*7*{hZuy!&R_3-HOW)i%ges|`+Ilxa*1Y|-?!1e{~jwOf`ufl|LU@FrTq*OMJAwU^c^qReZ$^KoghlvF9wA58fZ~bfzUA%`^7ttZeC( zWbIEcEsG{JsAzqbwC&xeF;8{n*hCjq4I$mG)hpKX+70dGpyQ?@mBt4@jiqA}Ro1~$-6s`9Q>rU!?t2&6bBX5_x-o?xK zB`=tn!6@_^fL^R^J%#%bAH_#*72h#2c+<|$YJbU#j4_M3*spb1Wku%_9%E5}kMj6# zYhB!^qwBWC%@_6x^uHW&lC|nPRAiT&7o5NBiWiK+fR+kzK9a~&P z5LQwHkI~oca)+Ihci%8VRS=+e#Gtaz&r6Mrze^PsY^pmc)fN!gsha&p;{NsRD${}j z@3k(ugSxg_ht|C@&sUMGpUBfE*9UKdF(% zyVUxYlpae#V0MjO#OqGWjFe%U$)H~(mGP|Moo&r$QZ$!0EZY7}+GwAL2Di{y5$M6f z<+^w*9 zyuDjOB#Uz(K90`fMB=y59bgbfz}2r0LO>FTSc9-72>vPbj*s|vjmT>kV1pq^xVr#@ zHKL1q0M-WoFVOw$L)QMj_QyQKqqu$v-0IS5EDWiK#~K9i15CE{l`EO z=nGh404hn8#sm@>D2N9?9DJNM_QMU4C=^(UQ6UOhQAZ^cVMT_*6iD)!A3(zZC?q=P z4|MTRqN0cdfyxX6rxgL3YDx> zgi3^zbW{rEANhD6R*J$PqSzq{!%D#@Oj6ncN>W-g0+K c(rDPD999A+DIqcn3n4HC1hMAk+jsBy1J@NQP5=M^ delta 2037 zcmZvac~lcu6vmx_D#U_9kj1hD0g19?W|EmqQV6@CRMteObs!<6R=RRqe8|@h( z-#a{2aV)svsa1?nIr@4>Bf&(z<2Qay#;0bYxv7To-9MSO{62ldZS`ckFFoJYy!TQ3 zU%zy}lE|6+`h8?UeVarzwj*n&lv7Cp1OFcFyR&beOx7gtT79!j7+U&GiPOaR?8K_c zXQo7-Xw1Z!-5i|$+~Vr}wNJibrv8LSp+^sAc6OBTn69h8&xtyrP&;*>A24*eM(=0Tfg1XA6|hmX2|#9CnF zQx9h~WxF=(zPu{n@)TJbl*Y@w$Rpod4^s*_X_Fsi(`J)t{;=&b2)-?LB;gFC2x~h_8!mX|^vJOa3I@aYYuqm8q)-M;wI1hTO zzd74qV#xNKrB!6HMX$-fY%L|+-%`LK9yt&>7@7A%qPNuMkD1EQGo=r#0^eS>e0hRD z?3(4WQO~XVXpm`aHQ#r$r=&)CCz||9BLJ0u+!NwyscUmwD?Sa`j`wMp*15au9jdq| z)z+@p`R-7^i+AC3_t;PSG^{Jd?83aFj&*uRhjb8mS=xX{)t4eL#G|%#Ts|~&ZMlTg z;VJ99KDd(w7`XLX6tx*|d({)BnBaPzYK7N#eB0LMrjhAcQzyE4IL{+F(>%^Bq{(qS ztuao&-C{-m*a6m36Jd9c^l7M!rc?l}+aFyjA8WplLQ9yA6P7wGp`=@L>;je5!n;R| z4hRFnDO|@NFN=ysWynMATDT^#iRe{s&0e`kC2bnI*=X_YPG zF!G-4u2Sa}W{H($dU|b|=`D=B$71D@0b-Aqm+w=rT{5?%hVa~_x4Lw{Sb6)@fIHbm zvCZ7Em#jwCdS($;YSeq`G10b34GLW4M`E4H&k|4gS$-yzC~>yE4loR8TIHYXFs0vK zNhn(;>MO`H%(z%gzW7R#I&hGvgXJXXUN!V9DUe*hr$*T{v_z|Vw{dvB7boK{WeFdG zGMuA|Z7mCV#m04SiHwwlR6LhwXx0MXDYwp{>>%^^T@v$vHZbQSB2kk zeE-wC#3mO*4RSlbDB@HzsCL~#>@afK0avF==97>Vr8L?8r(5SRgD5QbnVEvSJ_5NKJh~LVDRBpS$X(w_y=wo{%QaK 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 } }