You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tesi-triennale/src/prelude.typ

161 lines
3.6 KiB
Plaintext

#let kL = $L$
#let dotss = $space dots.c space$
// #let statement-style = (name, numbered: false) => it => {
// set align(start)
// block({
// strong({
// it.supplement
// if numbered and it.numbering != none {
// [ ]
// // current chapter and section
// [#(
// ..counter(heading).get().slice(0, 1).map(it => str(it)),
// numbering(it.numbering, ..it.counter.at(it.location())),
// ).join(".")]
// }
// if name != none {
// [ (#name)]
// }
// [.]
// })
// [ ]
// it.body
// })
// }
#let definition(body, name: none, numbered: false) = {
// show figure: statement-style(name, numbered: false)
figure(
//
body,
kind: "definition",
supplement: if name != none {
[#name]
},
numbering: if numbered {
"1"
},
)
}
#let fact(body, numbered: false, name: none) = {
// show figure: statement-style(name, numbered: false)
figure(body, kind: "fact", supplement: {
[Fatto]
if name != none {
[ -- ]
name
}
}, numbering: if numbered { "1" })
}
#let observation(body) = {
// show figure: statement-style(name, numbered: false)
figure(body, kind: "observation", supplement: [Osservazione], numbering: "1")
}
#let proposition(body, numbered: true) = {
// show figure: statement-style(name, numbered: numbered)
return figure(
body,
// kind: "proposition",
kind: "proposition",
supplement: [Proposizione],
numbering: if numbered { "1" },
)
}
#let lemma(body, numbered: true) = {
// show figure: statement-style(name, numbered: numbered)
figure(
body,
// kind: "lemma",
kind: "proposition",
supplement: [Lemma],
numbering: if numbered { "1" },
)
}
#let theorem(body, name: none, numbered: true) = {
// show figure: statement-style(name, numbered: numbered)
figure(body, kind: "theorem", supplement: {
[Teorema]
if name != none {
[ (#name) ]
}
}, numbering: if numbered { "1" })
}
#let proof(body) = block({
// v(-0.25em)
emph[Dimostrazione.]
[ ]
body
h(1fr)
// Add a word-joiner so that the proof square and the last word before the
// 1fr spacing are kept together.
sym.wj
// Add a non-breaking space to ensure a minimum amount of space between the
// text and the proof square.
sym.space.nobreak
$square$
})
#let ref-link(target, content) = {
show link: it => {
set text(luma(10%))
// remove underline for this
show underline: it => it.body
it
}
link(target, emph(content))
}
#let todo-color = color.mix((red, 10%), (yellow, 90%))
#let todo(content) = block(breakable: false, grid(
rows: 2,
align: left,
block(fill: todo-color.desaturate(60%), inset: (x: 0.5em, y: 0.35em), radius: (top: 0.25em), {
set text(fill: black.transparentize(15%), size: 8pt, font: "Open Sans")
[*TODO*]
}),
block(
width: 100%,
fill: todo-color.desaturate(75%),
inset: (x: 0.5em, y: 0.5em),
radius: (bottom: 0.25em, top-right: 0.25em),
{
set text(fill: black.transparentize(15%), size: 9pt, font: "Open Sans")
content
},
),
))
#let scr(it) = text(features: ("ss01",), box($cal(it)$))
#let blank = {
$#h(0.125em) #{
rect(width: 0.8em * 1.41, height: 0.8em, stroke: 0.5pt, place(dx: -0.2em, dy: -0.55em, {
set text(size: 10pt)
$dots$
}))
} #h(0.125em)$
}
#let marker(content) = metadata(("marker", content))
#let qquad = h(2em)
#let diff-add(body) = block(fill: green.mix(white), outset: (x: 2pt, y: 3pt), radius: 2pt, body)
#let diff-del(body) = block(fill: red.mix(white), outset: (x: 2pt, y: 3pt), radius: 2pt, body)