typst-lettre/lettre.typ

55 lines
1.0 KiB
Plaintext
Raw Normal View History

2024-10-19 13:57:23 +00:00
#let lettre(
de: "",
pour: "",
objet: "",
date: "",
lieu: "",
introduction: "",
cloture: "",
signature: "",
post: "",
doc
) = {
set page(margin: 1.5in)
set par(leading: 0.55em, first-line-indent: 2em, justify: true, spacing: 0.55em)
set text(font: "Libertinus Serif", size: 12pt)
set document(title: objet, author: signature)
show raw: set text(font: "Inconsolata")
show heading: set block(above: 1.4em, below: 1em)
grid(
columns: (2fr, 1fr, 2fr),
par(de),
text[],
text[
#lieu
#if date.trim().len() != 0 [, le #date ]
] + v(2em),
text[],
text[],
par(pour)
)
v(1em)
if objet.trim().len() > 0 {
heading(level: 3, text("Objet: " + objet))
v(1em)
}
par(first-line-indent: 0pt, text(introduction + ","))
v(1em)
doc
v(1em)
par(first-line-indent: 0pt, text(cloture))
v(.7em)
grid(
columns: (2fr, 1fr),
text[],
text(signature)
)
v(1em)
post
}
#let er = [#super[er]]
#let ème = [#super[ème]]
#let no(num) = { text([n°~] + num) }