diff --git a/doc/gitlab-markdown.gpp b/doc/gitlab-markdown.gpp
index 08a6c7616cfd3c67c7a84b8b0e86c7c0cc055ee3..99ea8c9f918f989ca11737dcc98dc39d63c63872 100644
--- a/doc/gitlab-markdown.gpp
+++ b/doc/gitlab-markdown.gpp
@@ -1,5 +1,15 @@
 !!define{!!svg{description}{filename}}{![!!description](!!filename.png)}
 
+!!define{!!svgref{ref_id}{description}{filename}}{
+<figure>
+<a name="!!ref_id"/>
+!!svg{description}{filename}
+<figcaption>!!description</figcaption>
+</figure>
+}
+
+!!define{!!ref{ref_id}}{![ci-dessous](#!!ref_id)}
+
 !!define{!!video{description}{filename}}{![!!description](!!filename)}
 
 !!define{!!tableofcontents}{
diff --git a/doc/markdown.gpp b/doc/markdown.gpp
index 57033d0e0d010df700a4c27722834e78ed5c386f..d6c70cf626ec37b6b54f4d84bb1f84640ca3e5a5 100644
--- a/doc/markdown.gpp
+++ b/doc/markdown.gpp
@@ -1,3 +1,7 @@
+!!ifndef{MARKDOWN_GPP_INCLUDED}
+
+!!define{MARKDOWN_GPP_INCLUDED}
+
 !!ifdef{PANDOC_PDF}
     !!include{pandoc-pdf-markdown.gpp}
 !!endif
@@ -16,3 +20,10 @@ EOF-DEFACRONYM-GPP-MACRO
 )" >> ./acronyms.md}}!!tmp}
 
 !!define{!!listofacronyms}{!!defeval{tmp}{!!includemd{acronyms.md}}!!tmp}
+
+!!define{!!comment}{}
+!!else
+
+!!warning{markdown.gpp has been included more than once. Ignoring second include.}
+
+!!endif
\ No newline at end of file
diff --git a/doc/pandoc-pdf-markdown.gpp b/doc/pandoc-pdf-markdown.gpp
index c470f4e0a98818896b84b34d21843cc2ab1072cf..9304201f0c365cdac442381ffad153e45120b02a 100644
--- a/doc/pandoc-pdf-markdown.gpp
+++ b/doc/pandoc-pdf-markdown.gpp
@@ -1,5 +1,9 @@
 !!define{!!svg{description}{filename}}{![!!description](!!filename.svg)}
 
+!!define{!!svgref{ref_id}{description}{filename}}{!!svg{!!description\label{!!ref_id}}{!!filename}}
+
+!!define{!!ref{ref_id}}{\ref{!!ref_id}}
+
 !!define{!!video{description}{filename}}{[!!description](!!filename)}
 
 !!define{!!tableofcontents}{\tableofcontents}
@@ -20,4 +24,4 @@
   ~ !!description
 }
 
-!!define{!!acronym{short}}{[!!short](#acronym__!!short)}
\ No newline at end of file
+!!define{!!acronym{short}}{[!!short](#acronym__!!short)}
diff --git a/doc/rapport.gpp.md b/doc/rapport.gpp.md
index b6e0cf218bd52a119eb4c99ec82d99b845f13fea..39a10fb23677e048353ce9b87b93bdacbc12c751 100644
--- a/doc/rapport.gpp.md
+++ b/doc/rapport.gpp.md
@@ -1,6 +1,8 @@
 !!include{markdown.gpp}
 !!ifdef{PANDOC_PDF}
----
+!!comment{
+```yaml
+}---
 documentclass: memoir
 lang: fr-CH
 title: Travail de bachelor
@@ -54,7 +56,9 @@ header-includes: |
 abstract: |
     TODO: Abstract + illustration
 ---
-
+!!comment{
+```
+}
 !!endif
 
 !!initacronyms
@@ -143,7 +147,10 @@ les postes clients, le serveur, les images, les configurations. Le
 diagramme doit décrire les aspects fonctionnels du système (quoi) sans
 détailler les aspects techniques (comment).**
 
-!!svg{Diagramme des cas d'utilisation}{images/diagram_usecases}
+L'aspect fonctionnel du système à réaliser est décrit avec un diagramme
+de cas d'utilisations dans la figure !!ref{diagram_usecases}.
+
+!!svgref{diagram_usecases}{Diagramme des cas d'utilisation du système.}{images/diagram_usecases}
 
 # État de l'art
 
@@ -349,20 +356,22 @@ d'effectuer ces actions:
 
 ### Diagramme des composants du serveur 
 
-Le diagramme ci-dessous détaille les différents composants et leurs
-interactions:
+La figure !!ref{diagram_components} est un diagramme qui détaille les
+différents composants et leurs interactions.
 
-!!svg{Composants du système}{images/diagram_components}
+!!svgref{diagram_components}{Composants du système}{images/diagram_components}
 
 ## Processus de déploiement initial
 
 **TODO: décrire pas à pas les différentes étapes du processus de
 déploiement telles que montrées sur le diagramme.**
 
-Le diagramme ci-dessous détaille les différentes étapes du processus de
-déploiement d'images:
+Les différentes étapes du processus de déploiement d'images sont décites
+dans la figure !!ref{diagram_activity_deployment} qui est un diagrame
+d'activité détaillant les différentes étapes du processus de déploiement
+d'images.
 
-!!svg{Processus de déploiement initial}{images/diagram_activity_deployment}
+!!svgref{diagram_activity_deployment}{Diagramme d'activité du processus de déploiement initial}{images/diagram_activity_deployment}
 
 ## Architecture réseau initiale
 
@@ -398,10 +407,10 @@ manière suivante:
 2. L'interface `eth1` de la machine virtuelle est ratachée à l'interface
    `eth0` de la machine hôte en utilisant le mode `bridged`.
 
-Le diagramme suivant détaille la configuration réseau décrite ci-dessus:
+La figure !!ref{diagram_home_network} illustre les détails de la
+configuration réseau décrite ci-dessus.
 
-!!svg{Configuration des équipements réseaux pour le test du système
-initial}{images/diagram_home_network}
+!!svgref{diagram_home_network}{Diagramme montrant la configuration des équipements réseaux utilisée pendant le test du système initial.}{images/diagram_home_network}
 
 ## Mise en opération du projet initial
 
diff --git a/doc/rapport.md b/doc/rapport.md
index 86b8d2691d488237a89eab1b17d338072a000eeb..0768c62d652fc1633123a3fcfef883ad7ca7d887 100644
--- a/doc/rapport.md
+++ b/doc/rapport.md
@@ -95,7 +95,16 @@ les postes clients, le serveur, les images, les configurations. Le
 diagramme doit décrire les aspects fonctionnels du système (quoi) sans
 détailler les aspects techniques (comment).**
 
-![Diagramme des cas d'utilisation](images/diagram_usecases.png)
+L'aspect fonctionnel du système à réaliser est décrit avec un diagramme
+de cas d'utilisations dans la figure ![ci-dessous](#diagram_usecases).
+
+
+<figure>
+<a name="diagram_usecases"/>
+![description](filename.png)
+<figcaption>Diagramme des cas d'utilisation du système.</figcaption>
+</figure>
+
 
 # État de l'art
 
@@ -301,20 +310,34 @@ d'effectuer ces actions:
 
 ### Diagramme des composants du serveur 
 
-Le diagramme ci-dessous détaille les différents composants et leurs
-interactions:
+La figure ![ci-dessous](#diagram_components) est un diagramme qui détaille les
+différents composants et leurs interactions.
+
+
+<figure>
+<a name="diagram_components"/>
+![description](filename.png)
+<figcaption>Composants du système</figcaption>
+</figure>
 
-![Composants du système](images/diagram_components.png)
 
 ## Processus de déploiement initial
 
 **TODO: décrire pas à pas les différentes étapes du processus de
 déploiement telles que montrées sur le diagramme.**
 
-Le diagramme ci-dessous détaille les différentes étapes du processus de
-déploiement d'images:
+Les différentes étapes du processus de déploiement d'images sont décites
+dans la figure ![ci-dessous](#diagram_activity_deployment) qui est un diagrame
+d'activité détaillant les différentes étapes du processus de déploiement
+d'images.
+
+
+<figure>
+<a name="diagram_activity_deployment"/>
+![description](filename.png)
+<figcaption>Diagramme d'activité du processus de déploiement initial</figcaption>
+</figure>
 
-![Processus de déploiement initial](images/diagram_activity_deployment.png)
 
 ## Architecture réseau initiale
 
@@ -350,10 +373,16 @@ manière suivante:
 2. L'interface `eth1` de la machine virtuelle est ratachée à l'interface
    `eth0` de la machine hôte en utilisant le mode `bridged`.
 
-Le diagramme suivant détaille la configuration réseau décrite ci-dessus:
+La figure ![ci-dessous](#diagram_home_network) illustre les détails de la
+configuration réseau décrite ci-dessus.
+
+
+<figure>
+<a name="diagram_home_network"/>
+![description](filename.png)
+<figcaption>Diagramme montrant la configuration des équipements réseaux utilisée pendant le test du système initial.</figcaption>
+</figure>
 
-![Configuration des équipements réseaux pour le test du système
-initial](images/diagram_home_network.png)
 
 ## Mise en opération du projet initial
 
@@ -506,32 +535,6 @@ de personnalisation, avec un exemple type simple.**
 
 
 
-    
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 
 
 
@@ -3197,8 +3200,6 @@ I tried to make a Dockerfile that creates the deployment OS with `multistrap`
 but I found out that this tool only created a root file system and it's not bootable "as-is".
 I still have to install a kernel generate an initrd.
 
-## 2020-06-10
-
 I created a script to configure debian packages and clean up the file system in chroot.
 
 ## 2020-06-24
diff --git a/doc/rapport.pdf b/doc/rapport.pdf
index 07252ab5aca4cddc8a8512c8eac6a54b29ad82fb..1ee30e20c8d83bb207c07d29c1fe0eee08b8d342 100644
Binary files a/doc/rapport.pdf and b/doc/rapport.pdf differ