From 193a62a5e65ea19f5b300184d54219306a008eb0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Mon, 21 Jul 2025 18:14:02 +0200 Subject: [PATCH] =?UTF-8?q?Add=20Typst=20template=20for=20assembl=C3=A9e?= =?UTF-8?q?=20g=C3=A9n=C3=A9rale=20documents?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assemblee_generale.typ | 52 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 assemblee_generale.typ diff --git a/assemblee_generale.typ b/assemblee_generale.typ new file mode 100644 index 0000000..1a02052 --- /dev/null +++ b/assemblee_generale.typ @@ -0,0 +1,52 @@ +// This is a Typst template for general assembly meetings + + +#let assemblee_generale( + background: rgb("f4f1eb"), + company-details: none, + title: "", + margin: 2.1cm, + vertical-center-level: 2, + body +) = { + + let page_header = [ + #text(size: 9.2pt, company-details) + ] + + // accomodate for page header, can't measure? + let real_margin_top = margin + 2cm + + set page( + fill: background, + margin: (top: real_margin_top, rest: margin), + numbering: "1 / 1", + header: page_header, + ) + + // set quote(block: true) + + show quote: it => { + box(it.body, fill: rgb("#ccc"), inset: (x: 5pt, y: 0pt), outset: (x: 0pt, y: 5pt)) + } + + show heading.where(level: 1): set align(center) + + let body = [ + #set text(size: 11pt, weight: "medium") + #set par(spacing: 2em) + #body + ] + + heading(level: 1, title) + v(30pt) + body +} + +#let signatures(..signataires) = { + grid( + columns: (1fr, ) * calc.min(signataires.pos().len(), 4), + align: center, + ..signataires.pos().map(a => [#a \ #box(height: 100pt, fill: red)]) + ) +}