120 lines
2.5 KiB
Typst
120 lines
2.5 KiB
Typst
#import "/metadata.typ": *
|
|
#import "/tail/bibliography.typ": *
|
|
#import "/tail/glossary.typ": *
|
|
|
|
#import "/resources/slides.typ": *
|
|
|
|
#show:make-glossary
|
|
#register-glossary(entry-list)
|
|
|
|
#let HANDOUT = true
|
|
#let NOTES = false
|
|
|
|
#show: metropolis-theme.with(
|
|
aspect-ratio: "16-9",
|
|
config-info(
|
|
title: title_style(doc.title),
|
|
subtitle: [
|
|
#doc.subtitle \
|
|
Specification presentation
|
|
],
|
|
author: enumerating-authors(items: doc.author, multiline: false ),
|
|
date: date.specification-submission,
|
|
institution: school.name,
|
|
),
|
|
footer: self => [#self.info.institution],
|
|
..get-config(),
|
|
config-common(
|
|
handout: HANDOUT,
|
|
show-notes-on-second-screen: if NOTES {right} else {none}
|
|
)
|
|
)
|
|
#set text(region: "gb")
|
|
|
|
#show: myglobals
|
|
|
|
#title-slide()
|
|
|
|
// = Intro
|
|
// ---
|
|
// #import "../../main/specifications/02-introduction.typ": *
|
|
|
|
= Context
|
|
---
|
|
#import "../../main/specifications/03-context.typ": *
|
|
|
|
= Objectives
|
|
---
|
|
#import "../../main/specifications/05-objectives.typ": *
|
|
#objectives
|
|
|
|
== Top level
|
|
//#top-level-architecture
|
|
|
|
= Constraint
|
|
---
|
|
#import "../../main/specifications/04-constraints.typ": *
|
|
#constraints
|
|
|
|
= Planned Tasks
|
|
---
|
|
#import "../../main/specifications/06-planned_tasks.typ" as pt
|
|
|
|
#let display-task(task) = if task != none {table(
|
|
columns: (4fr, 1fr),
|
|
rows: (1fr, 2fr),
|
|
stroke: none,
|
|
|
|
table.cell(stroke: (bottom: 1pt))[#task.at(0) - #task.at(1)],
|
|
str(task.at(4)),
|
|
table.cell(colspan: 2)[
|
|
#task.at(3)
|
|
],
|
|
)} else []
|
|
|
|
#for i in range(int(pt.workload.len()/4+1)) {
|
|
let task1 = if (i*4>=pt.workload.len()) {none} else {pt.workload.at((i*4))}
|
|
let task2 = if (i*4+1>=pt.workload.len()) {none} else {pt.workload.at((i*4)+1)}
|
|
let task3 = if (i*4+2>=pt.workload.len()) {none} else {pt.workload.at((i*4)+2)}
|
|
let task4 = if (i*4+3>=pt.workload.len()) {none} else {pt.workload.at((i*4)+3)}
|
|
grid(
|
|
columns: (1fr, 1fr),
|
|
rows: (1fr, 1fr),
|
|
column-gutter: 3em,
|
|
row-gutter: 2em,
|
|
|
|
if task1 != none [#display-task(task1)],
|
|
if task2 != none [#pause #display-task(task2)],
|
|
if task3 != none [#pause #display-task(task3)],
|
|
if task4 != none [#pause #display-task(task4)],
|
|
|
|
)
|
|
[---]
|
|
}
|
|
|
|
== Dispatching
|
|
#set text(size: 0.73em)
|
|
#grid(
|
|
columns: (1fr, 1fr, 1fr),
|
|
column-gutter: 1em,
|
|
row-gutter: 2em,
|
|
align: top+left,
|
|
pt.Djelal, pause,
|
|
pt.Adrien, pause,
|
|
pt.Rémi, pause,
|
|
pt.Dimitri, pause,
|
|
pt.Alison, pause,
|
|
pt.Ibrahima,
|
|
)
|
|
|
|
|
|
#focus-slide[
|
|
Questions?
|
|
]
|
|
|
|
#{
|
|
// set text(size: 0pt)
|
|
make_glossary(gloss:gloss, title:i18n("gloss-title"))
|
|
}
|
|
|