Author SHA1 Message Date
aziis98 e5fb9835f4 fixed minor typos 2025-07-06 21:38:22 +02:00
aziis98 edbabac625 finished first part of chapter 3 2025-07-06 20:59:46 +02:00
aziis98 a38c3754aa finished first part 2025-07-06 20:58:52 +02:00
aziis98 60567ce745 almost finished first part of chapter 3 2025-07-06 16:29:28 +02:00
aziis98 0a13243240 fixed a proof 2025-07-06 12:45:51 +02:00
aziis98 26fc1f769e completed first complete draft 2025-07-06 02:00:49 +02:00
aziis98 65c2506188 almost end of proof 2025-07-05 20:14:29 +02:00
aziis98 52087756d9 finita dimostrazione lemma con tante sommatorie e switch 2025-07-05 15:26:19 +02:00
aziis98 d855a22c7b many sums 2025-07-05 12:52:12 +02:00
aziis98 b9434226bb more work 2025-07-03 15:09:59 +02:00
7 changed files with 1055 additions and 587 deletions
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 KiB

+909 -343
View File
File diff suppressed because it is too large Load Diff
+50 -63
View File
@@ -27,37 +27,28 @@
#let definition(body, name: none) = {
// show figure: statement-style(name, numbered: false)
figure(
body,
kind: "definition",
supplement: {
[Definizione]
if name != none {
[ -- ]
name
}
},
)
figure(body, kind: "definition", supplement: {
[Definizione]
if name != none {
[ -- ]
name
}
})
}
#let fact(body, name: none) = {
// show figure: statement-style(name, numbered: false)
figure(
body,
kind: "fact",
supplement: {
[Fatto]
if name != none {
[ -- ]
name
}
},
)
figure(body, kind: "fact", supplement: {
[Fatto]
if name != none {
[ -- ]
name
}
})
}
#let proposition(body, numbered: true) = {
// show figure: statement-style(name, numbered: numbered)
return figure(
body,
// kind: "proposition",
@@ -80,17 +71,12 @@
#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" },
)
figure(body, kind: "theorem", supplement: {
[Teorema]
if name != none {
[ (#name) ]
}
}, numbering: if numbered { "1" })
}
#let proof(body) = block({
@@ -125,34 +111,35 @@
}
#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 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 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))
+18 -12
View File
@@ -4,16 +4,12 @@
import cetz.draw: *
// draw the white outline
set-style(..cetz.styles.resolve(
(stroke: (paint: white, thickness: size-factor * 0.75pt * 8, cap: "butt")),
base: style,
))
set-style(..cetz.styles.resolve((stroke: (paint: white, thickness: size-factor * 0.75pt * 8, cap: "butt")), base: style))
polyline
// draw the black line
set-style(..cetz.styles.resolve(style, base: (stroke: (paint: black, thickness: size-factor * 0.75pt, cap: "round"))))
polyline
// set-style(stroke: (paint: black, thickness: thickness, cap: "round"))
}
@@ -84,6 +80,14 @@
draw-strand({ hobby((-1.5, +1), (-1, +1), (0.5, 0), (0.1, -1), (0, -1)) })
draw-strand({ hobby((1.5, +1), (1, +1), (-0.5, 0), (-0.1, -1), (0, -1)) })
}),
//
// Medium
//
unit-medium: skein-canvas(size-factor: medium-scale-factor, {
import cetz.draw: *
circle((0, 0), radius: 1, stroke: (paint: black, thickness: 0.75pt))
}),
strand-medium: skein-canvas(size-factor: medium-scale-factor, {
import cetz.draw: *
rect((-1, -1), (1, 1), fill: white, stroke: none)
@@ -94,6 +98,14 @@
draw-strand(size-factor: medium-scale-factor, { hobby((1.5, +1), (1, +1), (-0.5, 0), (-0.1, -1), (0, -1)) })
draw-strand(size-factor: medium-scale-factor, { hobby((-1.5, +1), (-1, +1), (0.5, 0), (0.1, -1), (0, -1)) })
}),
under-twist-medium: skein-canvas(size-factor: medium-scale-factor, {
import cetz.draw: *
draw-strand(size-factor: small-scale-factor, { hobby((-1.5, +1), (-1, +1), (0.5, 0), (0.1, -1), (0, -1)) })
draw-strand(size-factor: small-scale-factor, { hobby((1.5, +1), (1, +1), (-0.5, 0), (-0.1, -1), (0, -1)) })
}),
//
// Small
//
strand-small: skein-canvas(size-factor: small-scale-factor, {
import cetz.draw: *
rect((-1, -1), (1, 1), fill: white, stroke: none)
@@ -111,13 +123,7 @@
}),
)
#let skein-generic(
kind: "over",
direction: (+1, +1),
arrows: (true, true),
styles: ((:), (:)),
) = {
#let skein-generic(kind: "over", direction: (+1, +1), arrows: (true, true), styles: ((:), (:))) = {
skein-canvas({
import cetz.draw: *
if kind == "over" {
+78 -169
View File
@@ -60,7 +60,6 @@
// top: 4.5cm,
// bottom: 3.5cm,
),
header-ascent: 1cm,
header: context {
let i = counter(page).get().first()
@@ -68,14 +67,10 @@
set text(size: script-size)
align(center, upper(page-title))
},
footer-descent: 1cm,
footer: context {
let i = counter(page).get().first()
align(
center,
[#i],
)
align(center, [#i])
},
)
@@ -90,19 +85,8 @@
let heading-size = heading-level-size(it.level)
set text(
size: heading-size,
fill: luma(10%),
weight: 600,
top-edge: "bounds",
bottom-edge: "baseline",
)
set par(
spacing: 0pt,
hanging-indent: 0pt,
first-line-indent: 0pt,
)
set text(size: heading-size, fill: luma(10%), weight: 600, top-edge: "bounds", bottom-edge: "baseline")
set par(spacing: 0pt, hanging-indent: 0pt, first-line-indent: 0pt)
if it.level == 1 {
if counter(heading).get() != (0,) {
@@ -111,20 +95,14 @@
stack(
dir: ttb,
..(
if counter(heading).get() != (0,) {
(
layout(size => v(size.height * 25%)),
{
set text(size: heading-level-size(3))
[Capitolo ]
set text(size: heading-level-size(2))
counter(heading).display("1")
},
v(heading-size * 0.61),
)
}
),
..(if counter(heading).get() != (0,) {
(layout(size => v(size.height * 25%)), {
set text(size: heading-level-size(3))
[Capitolo ]
set text(size: heading-level-size(2))
counter(heading).display("1")
}, v(heading-size * 0.61),)
}),
line(length: 100%),
v(heading-size * 0.61),
align(right, it.body),
@@ -169,10 +147,7 @@
show math.equation: set block(below: normal-size * 1.5, above: normal-size * 1.5)
show math.equation: set text(weight: 400)
set math.equation(
numbering: "(1)",
supplement: none,
)
set math.equation(numbering: "(1)", supplement: none)
show math.equation: it => {
if it.block and not it.has("label") [
@@ -194,33 +169,20 @@
show raw.where(block: false): it => {
set text(size: 7.25pt, fill: luma(7%))
box(
outset: (x: 2pt, y: 3pt),
fill: luma(92%),
radius: 3pt,
it,
)
box(outset: (x: 2pt, y: 3pt), fill: luma(92%), radius: 3pt, it)
}
show raw.where(block: true): it => block(
outset: (x: 2pt, y: 3pt),
fill: luma(92%),
radius: 4pt,
inset: 4pt,
it,
)
show raw.where(block: true): it => block(outset: (x: 2pt, y: 3pt), fill: luma(92%), radius: 4pt, inset: 4pt, it)
set std.bibliography(
style: "ieee",
title: none,
)
set std.bibliography(style: "ieee", title: none)
set figure(gap: 1em)
show figure: set block(above: 1.5em, below: 1.5em)
show figure: it => {
// Customize the figure's caption.
show figure.caption: caption => {
set text(size: small-size)
show figure.caption: caption => block(inset: (x: 1.4em), {
set align(left)
set text(size: 10.5pt)
smallcaps(caption.supplement)
if caption.numbering != none {
[ ]
@@ -228,7 +190,7 @@
}
[. ]
caption.body
}
})
// We want a bit of space around tables and images.
show selector.or(table, image): pad.with(x: 2em)
@@ -346,102 +308,66 @@
show ref: it => {
if it.element != none {
let el = it.element
if el == figure {
if el.kind == "proposition" or el.kind == "lemma" or el.kind == "theorem" {
link(
el.location(),
{
if it.supplement != auto { it.supplement } else { el.supplement }
[ ]
(
..counter(heading).at(el.location()).slice(0, 1).map(it => str(it)),
numbering(el.numbering, ..el.counter.at(el.location())),
).join(".")
},
)
}
if el.func() == figure and (el.kind == "definition" or el.kind == "proposition" or el.kind == "lemma" or el.kind == "theorem") {
link(el.location(), {
if it.supplement != auto { it.supplement } else { el.supplement }
[ ]
(
..counter(heading).at(el.location()).slice(0, 1).map(it => str(it)),
numbering(el.numbering, ..el.counter.at(el.location())),
).join(".")
})
} else if el.func() == metadata and type(el.value) == array and el.value.at(0) == "marker" {
link(el.location(), el.value.at(1))
} else {
it
repr(it)
}
} else if it.citation != none {
it
}
}
// show ref: it => {
// set text(fill: white)
// box(fill: red, outset: (y: 0.5em), it)
// }
// First thesis page
context {
set align(center + horizon)
set text(size: 14pt)
set page(
margin: 0pt,
header: none,
footer: none,
)
set page(margin: 0pt, header: none, footer: none)
// show text: it => box(stroke: 1pt + red, it)
// show grid: it => box(stroke: 1pt + red, it)
grid(
columns: 1,
image("assets/unipi.svg", width: 5cm),
v(2em),
{
set text(size: 18pt)
smallcaps[Università di Pisa]
},
grid(columns: 1, image("assets/unipi.svg", width: 5cm), v(2em), {
set text(size: 18pt)
smallcaps[Università di Pisa]
}, v(1em), {
line(length: 5.25cm)
}, v(1em), [
*Dipartimento di Matematica \ Corso di Laurea Triennale in Matematica*
], v(6em), {
[Tesi di Laurea]
}, v(1em), {
set text(size: 18pt)
strong(page-title)
}, v(15em), {
block(width: 12cm, grid(columns: (1fr, 1fr), {
set align(left)
v(1em),
{
line(length: 5.25cm)
},
[Relatore: \ *Prof. Paolo Lisca*]
}, {
set align(right)
v(1em),
[
*Dipartimento di Matematica \ Corso di Laurea Triennale in Matematica*
],
v(6em),
{
[Tesi di Laurea]
},
v(1em),
{
set text(size: 18pt)
strong(page-title)
},
v(15em),
{
block(
width: 12cm,
grid(
columns: (1fr, 1fr),
{
set align(left)
[Relatore: \ *Prof. Paolo Lisca*]
},
{
set align(right)
[Candidato: \ *Antonio De Lucreziis*]
},
),
)
},
v(6em),
{
line(length: 6cm)
},
v(1em),
[
*Anno Accademico 2024/2025*
],
)
[Candidato: \ *Antonio De Lucreziis*]
}))
}, v(6em), {
line(length: 6cm)
}, v(1em), [
*Anno Accademico 2024/2025*
])
pagebreak()
}
@@ -459,43 +385,26 @@
// },
// )
grid(rows: (auto, 1fr, 2fr), align: center + horizon, v(2em), {
if abstract != none {
pad(x: 2em, grid(columns: 1, {
set text(size: 16pt)
grid(
rows: (auto, 1fr, 2fr),
align: center + horizon,
v(2em),
{
if abstract != none {
pad(
x: 2em,
grid(
columns: 1,
{
set text(size: 16pt)
[*Abstract*]
}, v(1em), {
set align(start)
abstract
}))
}
}, {
set text(size: 16pt)
[*Indice*]
[*Abstract*]
},
v(1em),
{
set align(start)
abstract
},
),
)
}
},
{
set text(size: 16pt)
[*Indice*]
v(0.25em)
set text(size: 12pt)
outline(title: none, depth: 2, indent: 1em)
},
)
v(0.25em)
set text(size: 12pt)
outline(title: none, depth: 2, indent: 1em)
})
context { counter("fact").update(2) }