#import "@local/template-thesis-matisse:0.0.1": *

#import "jury.typ": jury-content
#import "abstract.typ": keywords-en, keywords-fr, abstract-en, abstract-fr
#import "0_preamble/notations.typ": *

#let draft = if "draft" in sys.inputs {
  assert(
    sys.inputs.draft == "true" or sys.inputs.draft == "false",
    message: "If --input draft=<val> is set, <val> must be 'true', or 'false'"
  )
  sys.inputs.draft == "true"
} else {
  true
}

#let abstract-only = if "abstract-only" in sys.inputs {
  assert(
    sys.inputs.abstract-only == "true" or sys.inputs.draft == "false",
    message: "If --input abstract-only=<val> is set, <val> must be 'true', or 'false'"
  )
  sys.inputs.abstract-only  == "true"
} else {
  false
}

#show: matisse-thesis.with(
  title-fr: "Lorem Ipsum Fr",
  title-en: "Lorem Ipsum",
  author: "Anne ONYME",
  affiliation: "Inria",
  defense-place: "Rennes",
  defense-date: datetime.today().display(),
  jury-content: jury-content,
  university: "UR",
  keywords-en: keywords-en,
  keywords-fr: keywords-fr,
  abstract-en: abstract-en,
  abstract-fr: abstract-fr,
  draft: draft,
  abstract-only: abstract-only,
)

// Preamble
#{
  set heading(numbering: none, outlined: false)
  set page(numbering: "i")
  counter(page).update(0)

  include("0_preamble/acknowledgements.typ")

  // https://ed-matisse.doctorat-bretagne.fr/fr/soutenance-de-these#p-151
  // > Le manuscrit est normalement rédigé en français (Loi relative à l'emploi de la langue française, 1994). 
  // > Toutefois, il est accepté de bâtir le manuscrit sur la base d'un résumé substantiel en français 
  // > (au moins 4 pages), le reste du manuscrit étant considéré comme des annexes et étant alors rédigé en 
  // > langue étrangère.
  // >
  // > Dans le cas d'une thèse qui ne serait pas rédigée en français, il est conseillé de bien distinguer le 
  // > résumé substantiel des chapitres de la thèse pour éviter d'essuyer un refus de la part de 
  // > l'administration de l'établissement d'inscription (par exemple en l'intitulant résumé en français et 
  // > en ne lui affectant aucun numéro de chapitre).
  //
  include("0_preamble/french_summary.typ")

  outline(title: "Table of Contents", indent: auto)
  show outline.entry: it => {
    v(5mm, weak: true)
    it
  }

  outline(title: "Index of Figures", target: figure.where(supplement: [Figure]))
  outline(title: "Index of Tables", target: figure.where(supplement: [Table]))
  outline(title: "Index of Listings", target: figure.where(supplement: [Listing]))
 
  [= List of Acronyms and Notations]

  notation_table

}

#counter(page).update(1)

= Introduction <sec:intro>

#todo[Write an introduction]

#note(stroke: aqua + 3pt)[Something to comment about][a note]

#lorem(200)

#figure(
  circle(radius: 50pt),
  caption: [A circle],
) <fig:intro>

#lorem(200)

= Background <sec:bg>

#todo[Present your field background]

#lorem(200)

#figure(
  table(
    columns: (20pt, 20pt, 20pt),
    align: center+horizon,
    table.header(
      table.cell(colspan:3)[Play]
    ),
    emoji.crossmark, [], emoji.circle.stroked,
    [], emoji.circle.stroked, [],
    emoji.crossmark, [], emoji.crossmark,
  ),
  caption: [A tic tac toe game],
) <tab:tic-tac-toe>

== Something

#lorem(200)

== Something Else

#lorem(200)

= Related Work

#todo[Do the State of the Art]

#lorem(200)

#figure([
  ```python
  for _ in range(10):
    print("Hello Void")
  ```
], caption: [Some code],
) <alg:hello-void>

= Contribution 1

#todo[Contribute to science]

#lorem(500)

= Contribution 2

#lorem(500)

= Contribution n

#lorem(500)

= Conclusion <sec:conclusion>

#todo[Conclude]

#lorem(500)

#bibliography("bibliography.bib")
