# Diaporama CodiMD CodiMD d'apps.education.fr permet de faire des présentations basées sur [reveal.js](https://github.com/hakimel/reveal.js/). 🚨 Lisez ce diaporama en [mode présentation](https://codimd.apps.education.fr/p/OjyyDtqbZ#/) * Naviguez avec la barre espace, les flèches du clavier <i class="fa fa-arrows" aria-hidden="true"></i> ou en *swipant* sur écran tactile. * La touche *Echap* permet de voir et naviguer dans le plan du diaporama. * touche ❔ pour les raccourcis clavier. --- ## Pourquoi utiliser CodiMD pour une présentation de maths ? Parce que c'est beau 🤩 et que cela permet : * <i class="fa fa-usd" aria-hidden="true"></i> écrire des mathématiques en $\LaTeX$ * <i class="fa fa-code" aria-hidden="true"></i> intégrer des iFrames (<i class="fa fa-youtube-play" aria-hidden="true"></i>, GeoGebra...) * 🐍 écrire du code Python. * :chart_with_upwards_trend: graphiques élaborés avec Vega * <i class="fa fa-font-awesome" aria-hidden="true"></i> icones [FontAwesome](https://fontawesome.com/v4/icons/) --- ### Intégrer une vidéo Exemple : un cours de Jean-Yves Labouche : <iframe width="560" height="315" src="https://www.youtube.com/embed/kURSugqacdg?si=zQzfc8Uf7q7ZEi5V" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe> --- ### Intégrer une animation GeoGebra On peut imbriquer un applet GeoGebra en ligne sur GeoGebra.org par exemple en intégrant son iFrame que l'on obtient via le menu trois points en haut à droite : <i class="fa fa-info-circle" aria-hidden="true"></i> infos / <i class="fa fa-share-alt" aria-hidden="true"></i> partager / <i class="fa fa-code" aria-hidden="true"></i> imbriquer. Exemples ci-dessous [<i class="fa fa-chevron-down" aria-hidden="true"></i>](#/3/1) ---- #### Applet GeoGebra interactif : Pythagore <iframe scrolling="no" title="Démonstration du théorème de Pythagore" src="https://www.geogebra.org/material/iframe/id/rtcqjszh/width/853/height/579/border/888888/sfsb/true/smb/false/stb/false/stbh/false/ai/false/asb/false/sri/true/rc/false/ld/false/sdz/false/ctl/false" width="750px" height="579px" style="border:0px;"> </iframe> ---- #### Applet GeoGebra interactif : Dérouler le cercle <iframe scrolling="no" title="Applet GeoGebra" src="https://www.geogebra.org/material/iframe/id/x64svszb/width/924/height/577/border/888888/sfsb/true/smb/false/stb/false/stbh/false/ai/false/asb/false/sri/false/rc/false/ld/false/sdz/false/ctl/false" width="924px" height="577px" style="border:0px;"> </iframe> ---- #### Applet GeoGebra interactif : Algorithme des k plus proches voisins <iframe scrolling="no" title="Algorithme des k plus proches voisins - Iris KNN" src="https://www.geogebra.org/material/iframe/id/wdw7r3ev/width/742/height/562/border/888888/sfsb/true/smb/false/stb/false/stbh/false/ai/false/asb/false/sri/true/rc/true/ld/false/sdz/true/ctl/false" width="742px" height="562px" style="border:0px;"> </iframe> --- ### Intégration d'iFrames Les iFrames permettent d'intégrer beaucoup d'objets interactifs : vidéos, applet GeoGebra, learning apps... Ou une page internet quelconque. Exemples ci-dessous [<i class="fa fa-chevron-down" aria-hidden="true"></i>](#/11/1) ---- #### LearningApps <iframe src="https://learningapps.org/watch?app=9847906" style="border:0px;width:100%;height:500px" allowfullscreen="true" webkitallowfullscreen="true" mozallowfullscreen="true"></iframe> ---- #### Insertion d'une page Wikipedia. <iframe src="https://fr.wikipedia.org/wiki/%C3%89l%C3%A9ment_HTML#Jeu_de_cadres" style="border:0px;width:900px;height:500px" ></iframe> ---- Si la page a pour url : ``` https://www.urltruc.fr ``` On colle : `<iframe src="https://www.urltruc.fr"` `style="border:0px;` `width:700px;` `height:500px">` `</iframe>` --- ### Ecrire des mathématiques en $\LaTeX$ Le langage Markdown (MD de CodiMD) supporte le $\LaTeX$. Il suffit d'utiliser les balises dollar habituelles. $\displaystyle \sum_{k=1}^{+\infty} \frac{1}{k^2} =\frac{\pi^2}{6}$ ---- #### Ecrire en $\LaTeX$ - commandes personnelles. ![](https://minio.apps.education.fr/codimd-prod/uploads/upload_d061b449772247f2a3a70e7755f5724d.png) $\newcommand{\R}{\mathbb{R}} \newenvironment{systeme}{\begin{cases}}{\end{cases}} \newcommand{\Exo}{\textbf{Exercice -}}$ $\Exo$ Résoudre dans $\R$ : $x^2+x\sqrt5 +\frac12=0$ $\Exo$ Résoudre ce système : $\begin{systeme} 2x+3y=5\\ -x+2y=1 \end{systeme}$ --- ### 🐍 Ecrire du code en Python Du code peut être mis en forme entre deux &#96; ou deux triples &#96;&#96;&#96; suivi éventuellement du nom du langage, = pour la numérotation des lignes ![](https://minio.apps.education.fr/codimd-prod/uploads/upload_77716263abfa3719d168b15dc19e9b83.png) donne : ``` python= print("Hello World") ``` Plus <i class="fa fa-chevron-down" aria-hidden="true"></i> ---- #### Une fonction en Python ``` python= def diviseurs(n): L = [] for k in range(1, n+1): if n%k == 0 : L.append(k) return L ``` --- ### Graphiques avec Vega Vega est un langage de programmation qui permet d'intégrer des graphiques complexes dans un document en Markdown. On écrit le code vega entre les balises ` ```vega <code vega> ``` ` https://vega.github.io/vega-lite/examples/ Une sélection ci-dessous pour les matheux (courbes, camemberts, histogrammes...) <i class="fa fa-chevron-down" aria-hidden="true"></i> ---- #### Camembert avec Vega ```vega { "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "description": "Reproduction et françisation de http://robslink.com/SAS/democd91/pyramid_pie.htm", "width": 400, "height": 350, "data": { "values": [ {"category": "Ciel", "value": 75, "order": 3}, {"category": "Face à l'ombre de la pyramide", "value": 10, "order": 1}, {"category": "Face ensoleillée de la pyramide", "value": 15, "order": 2} ] }, "mark": {"type": "arc", "outerRadius": 120}, "encoding": { "theta": { "field": "value", "type": "quantitative", "scale": {"range": [2.35619449, 8.639379797]}, "stack": true }, "color": { "field": "category", "type": "nominal", "scale": { "domain": ["Ciel", "Face à l'ombre de la pyramide", "Face ensoleillée de la pyramide"], "range": ["#79b2ef", "#674028", "#DEAC58"] }, "legend": { "orient": "none", "title": null, "columns": 1, "legendX": 150, "legendY": 0 } }, "order": { "field": "order" } } } ``` ---- #### Histogramme avec Vega ```vega { "data": { "values": [ {"a": "A", "b": 28}, {"a": "B", "b": 55}, {"a": "C", "b": 43}, {"a": "D", "b": 91}, {"a": "E", "b": 81}, {"a": "F", "b": 53}, {"a": "G", "b": 19}, {"a": "H", "b": 87}, {"a": "I", "b": 52} ] }, "mark": "bar", "encoding": { "x": {"field": "a", "type": "nominal", "axis": {"labelAngle": 0}}, "y": {"field": "b", "type": "quantitative"} } } ``` ---- #### Deux courbes avec Vega ```vega { "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "description": "Plots two functions using a generated sequence.", "width": 300, "height": 150, "data": { "sequence": { "start": 0, "stop": 12.7, "step": 0.1, "as": "x" } }, "transform": [ { "calculate": "sin(datum.x)", "as": "sin(x)" }, { "calculate": "cos(datum.x)", "as": "cos(x)" }, { "fold": ["sin(x)", "cos(x)"] } ], "mark": "line", "encoding": { "x": { "type": "quantitative", "field": "x" }, "y": { "field": "value", "type": "quantitative" }, "color": { "field": "key", "type": "nominal", "title": null } } } ``` ---- #### Diagrammes en boîte avec Vega ```vega { "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "title": "Masse de pingouins (g)", "data": { "values": [{ "Species": "Adelie", "lower": 2850, "q1": 3350, "median": 3700, "q3": 4000, "upper": 4775, "outliers": [] },{ "Species": "Chinstrap", "lower": 2700, "q1": 3487.5, "median": 3700, "q3": 3950, "upper": 4800, "outliers": [2700,4800] },{ "Species": "Gentoo", "lower": 3950, "q1": 4700, "median": 5000, "q3": 5500, "upper": 6300, "outliers": [] }] }, "encoding": {"y": {"field": "Species", "type": "nominal", "title": null}}, "layer": [ { "mark": {"type": "rule"}, "encoding": { "x": {"field": "lower", "type": "quantitative","scale": {"zero": false}, "title": null}, "x2": {"field": "upper"} } }, { "mark": {"type": "bar", "size": 14}, "encoding": { "x": {"field": "q1", "type": "quantitative"}, "x2": {"field": "q3"}, "color": {"field": "Species", "type": "nominal", "legend": null} } }, { "mark": {"type": "tick", "color": "white", "size": 14}, "encoding": { "x": {"field": "median", "type": "quantitative"} } }, { "transform": [{"flatten": ["outliers"]}], "mark": {"type": "point", "style": "boxplot-outliers"}, "encoding": { "x": {"field": "outliers", "type": "quantitative"} } } ] } ``` ---- #### Sphère avec Vega ```vega { "width": 200, "height": 200, "projection": { "type": "orthographic", "rotate": [ 0, -45, 0 ] }, "data": { "graticule": { "step": [ 15, 15 ] } }, "mark": { "type": "geoshape" } } ``` ---- #### Graphique dynamique avec Vega Jouer avec les paramètres des courbes. ```vega { "$schema": "https://vega.github.io/schema/vega-lite/v5.json", "width": 300, "height": 200, "params": [ { "name": "interpolate", "value": "linear", "bind": { "input": "select", "options": [ "basis", "cardinal", "catmull-rom", "linear", "monotone", "natural", "step", "step-after", "step-before" ] } }, { "name": "tension", "value": 0, "bind": {"input": "range", "min": 0, "max": 1, "step": 0.05} }, { "name": "strokeWidth", "value": 2, "bind": {"input": "range", "min": 0, "max": 10, "step": 0.5} }, { "name": "strokeCap", "value": "butt", "bind": {"input": "select", "options": ["butt", "round", "square"]} }, { "name": "strokeDash", "value": [1, 0], "bind": { "input": "select", "options": [[1, 0], [8, 8], [8, 4], [4, 4], [4, 2], [2, 1], [1, 1]] } } ], "data": { "values": [ {"u": 1, "v": 28}, {"u": 2, "v": 55}, {"u": 3, "v": 42}, {"u": 4, "v": 34}, {"u": 5, "v": 36}, {"u": 6, "v": 48} ] }, "mark": { "type": "line", "interpolate": {"expr": "interpolate"}, "tension": {"expr": "tension"}, "strokeWidth": {"expr": "strokeWidth"}, "strokeDash": {"expr": "strokeDash"}, "strokeCap": {"expr": "strokeCap"} }, "encoding": { "x": {"field": "u", "type": "quantitative"}, "y": {"field": "v", "type": "quantitative"} } } ``` --- ## Cadres colorés :::success Divers cadres colorés sont intégrés à CodiMD. On tape `:::` et différents mots clefs sont proposés. ::: :::info Vert avec `success`, ici c'est `info`, il y a aussi `warning`, `danger` et `spoiler` pour un cadre dépliant : ::: :::spoiler Cliquer pour déplier <i class="fa fa-chevron-circle-down" aria-hidden="true"></i> 🎉 Surprise ! 🎁 ::: Note: Ceci est une note pour le présentateur : Il faut cliquer pour voir le *spoiler* se déplier. --- ## Vue présentateur - Notes Il y a une vue de présentation. Elle inclut un minuteur, une pré-visualisation de la diapo suivante et des notes. Appuyez sur la touche _S_ (comme Speaker) pour ouvrir le mode présentation dans une nouvelle fenêtre et voir la note cachée. *Aperçu de la vue présentateur* <i class="fa fa-chevron-down" aria-hidden="true"></i> Note: Ceci est une note visible uniquement pour la personne qui présente. Dans le code il y a juste écrit : `Note:` *saut de ligne* `Contenu de la note` ---- #### Aperçu de la vue présentateur ![](https://minio.apps.education.fr/codimd-prod/uploads/upload_9e1e2ef8d0670a75484a30e3815b5504.png) --- ## Comment passer CodiMD en mode diaporama ? ![](https://minio.apps.education.fr/codimd-prod/uploads/upload_54fd6d5e8338a2658fca4cdf192b3017.png) Voici quelques explications : --- ### Tout commence par une déclaration Il faut déclarer en en-tête du fichier qu'il s'agit d'une présentation. Pour cela on commence par : ``` --- type: slide --- ``` --- ### Les séparateurs de diapo Il y a deux séparateurs de diapos pour gérer les deux dimensions: * 3 tirets `---` pour passer à la diapo à droite, * 4 tirets `----` pour passer à la diapo en dessous. Ces séparateurs doivent avoir par une ligne **vide** avant et après. C'est tout pour commencer ! Exemple d'organisation [<i class="fa fa-chevron-down" aria-hidden="true"></i>] ---- #### Les branches Le diaporama n'est pas forcément linéaire grâce aux branches. Voici un exemple d'organisation des diapos selon les séparateurs : ![](https://minio.apps.education.fr/codimd-prod/uploads/upload_6dccd89158478f23da6fb0bed130d7d6.png) La touche Echap permet de voir le plan du diaporama et d'y naviguer. --- ### Des options ``` slideOptions: transition: slide / zoom / none / convex / concave ``` Ici l'effet de transition par défaut est "concave". Visualiser les effets de transition ci-dessous [<i class="fa fa-chevron-down" aria-hidden="true"></i>] ---- # Transition *none* ``` slideOptions: transition: none ``` Pas de transition <!-- .slide: data-transition="none" --> ---- # Transition *zoom* ``` slideOptions: transition: zoom ``` Zoom <!-- .slide: data-transition="zoom" --> ---- # Transition *convex* ``` slideOptions: transition: convex ``` convex <!-- .slide: data-transition="convex" --> ---- # Transition *concave* ``` slideOptions: transition: concave ``` concave <!-- .slide: data-transition="concave" --> ---- ## Autres paramètres de transition - vitesse : data-transition-speed="fast" default / fast / slow - suffixe in/out, par exemple convex-out --- ### Des thèmes Changer la couleur du fond ? Le thème se déclare en haut du document : ![](https://minio.apps.education.fr/codimd-prod/uploads/upload_8462a4246938f55dede1948911bfd868.png) black (défaut) - white - league - sky - beige - simple - serif - blood - night - moon - solarized Quelques exemples de rendu des thèmes <i class="fa fa-chevron-down" aria-hidden="true"></i> ---- #### Thème moon ![](https://minio.apps.education.fr/codimd-prod/uploads/upload_fccf7c51e2be4cd1ffb90d8aa0d46747.png) ---- #### Thème sky ![](https://minio.apps.education.fr/codimd-prod/uploads/upload_12ff5ac312f05913b869e8a52e7ead83.png) ---- #### Thème blood ![](https://minio.apps.education.fr/codimd-prod/uploads/upload_a0e7cacb569fd143729ffeee9da3d8c0.png) ---- #### Thème solarized ![](https://minio.apps.education.fr/codimd-prod/uploads/upload_502e2b99fc4b7df94dd2aacf361dbf5f.png) ---- #### Tous les thèmes Voir la documentation sur reveal.js pour un aperçu de tous les thèmes. Certains comme dracula ne sont pas intégrés à CodiMD. https://revealjs.com/themes/ --- ### Changer le fond d'une diapo Avec la structure : ``` <!-- .slide: data-background="TRUC" --> ``` où `TRUC` est une couleur ou une url ---- <!-- .slide: data-background="#ffc423" --> ## Changer la couleur d'une diapo Le code couleur peut être donné en hexadécimal ou avec son nom en anglais (red, blue, ..., darkmagenta, papayawhip,... ) [voir cette page pour les couleurs du web](https://fr.wikipedia.org/wiki/Couleur_du_Web). Ici le fond jaune est "#ffc423" ``` <!-- .slide: data-background="#ffc423" --> ``` ---- <!-- .slide: data-background="lightsteelblue" --> ## Changer la couleur d'une diapo Le code couleur peut être donné en hexadécimal ou avec son nom en anglais (red, blue, ..., darkmagenta, papayawhip,... ) [voir cette page pour les couleurs du web](https://fr.wikipedia.org/wiki/Couleur_du_Web). Ici le fond bleu-gris est "lightsteelblue" ``` <!-- .slide: data-background="lightsteelblue" --> ``` ---- <!-- .slide: data-background="https://upload.wikimedia.org/wikipedia/commons/thumb/0/0a/A_few_isometries_and_repetitive_zones_relative_to_a_wallpaper_V1.svg/1024px-A_few_isometries_and_repetitive_zones_relative_to_a_wallpaper_V1.svg.png"--> ### Une image comme fond de page ? L'image doit être sur internet. ``` <!-- .slide: data-background="http://urldelimage.png"--> ``` Par défaut elle remplit toute la page. ---- ### Une petite image de fond Avec `data-background-size` et `data-background-position` on peut réduire et positionner l'image de fond. Ici le logo de l'[académie d'Orléans-Tours](https://www.ac-orleans-tours.fr/). <!-- .slide: data-background="https://www.ac-orleans-tours.fr/sites/ac_orleans_tours/files/site_logo/2021-03/logo---quadri---academie-orleans-tours-web.svg" ; data-background-size="15%" ; data-background-position="top left" --> ``` <!-- .slide: data-background="http://urldelimage.png"; data-background-size="15%" ; data-background-position="top left"--> ``` Pour en savoir plus : [revealjs.com/backgrounds](https://revealjs.com/backgrounds/) ---- <!-- .slide: data-background="https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExOHFudnR6MnhjZGY3dGg0NzUyNHQ3ZGF6cjYxczRnZW13aTFmNHppZiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xT0xeJpnrWC4XWblEk/giphy-downsized-large.gif"--> ### Un GIF animé comme fond de page ? # 🤯 --- ### Les fragments <span>Pour régler l'affichage des éléments d'une diapo ...<!-- .element: class="fragment" data-fragment-index="1" --></span> <span>afin de contrôler le déroulement.<!-- .element: class="fragment" data-fragment-index="2" --></span> <span>![](https://minio.apps.education.fr/codimd-prod/uploads/upload_8d3bc1f41adf582e6055114724205b2d.png)<!-- .element: class="fragment" data-fragment-index="3" --></span> ---- ### Des fragments en couleur Colorier le texte <span><!-- .element: class="fragment highlight-red" -->Rouge</span> <span><!-- .element: class="fragment highlight-blue" -->Bleu</span> <span><!-- .element: class="fragment highlight-green"-->Vert</span> --- ### Liens entre diapos Les diapositives sont numérotées à partir de zéro, en deux dimensions comme `4.2` sur les diapos et `#/3/1` dans l'url. On peut faire un hyperlien vers une diapositive : ![](https://minio.apps.education.fr/codimd-prod/uploads/upload_cfeab9071cac63408bed1fd152552c7f.png) - vers la [diapo numéro 3](#/2). - vers la [diapo 4.2](#/3/1). - [retour au début](#/0). --- ### Pour se lancer Voici un lien vers un diaporama minimal : * Mode diaporama (theme: moon) : https://codimd.apps.education.fr/p/nxw0jnH5H#/ * Le même du côté visualisation du fichier source : https://codimd.apps.education.fr/VhDEDa0nRA6AZewiASF3kw?both Copier le code de ce dernier ficher, créer un nouveau fichier CodiMD et coller le code. --- <!-- .slide: data-background="https://media.giphy.com/media/lD76yTC5zxZPG/giphy.gif"--> . . . . [🔁 au début](#/0). <style> /* Ne pas effacer ce qui est ci-dessous. C'est du code CSS pour définr le style du diaporama */ /* Utiliser la police Marianne */ .reveal { font-family: 'Marianne' ; font-size: 2.5em; } /* Aligner le texte à gauche */ .reveal p, .reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { text-align: left; } /* Aligner les listes à puce à gauche avec une marge de 15px */ .reveal ul { list-style-position: outside; margin-left: 10px; } /* Aligner les titres de diapositives à gauche */ .reveal .slides section { text-align: left; margin-top: 30px; } /* Numéro de diapositive en bas à gauche avec le titre du diaporama */ .reveal .slide-number { position: fixed; bottom: 10px; left: 15px; color: #888; /* Couleur grise */ font-size: 0.5em; background: none; /* Pas de fond */ z-index: 1000; } /* Barre de progression plus épaisse en rouge avec fond gris */ .reveal .progress { height: 8px; /* Hauteur de la barre */ background: #ccc; /* Fond gris */ } .reveal .progress span { background: #ff0000; /* Couleur rouge */ } /* Changer la couleur de survol des liens */ .reveal a:hover { color: #ff0000; /* Couleur rouge lors du survol */ } /* Ajouter une bordure grise très fine autour des images */ .reveal .slides img { border: 1px solid #ccc; /* Bordure grise de 1 pixel */ /* box-shadow: none; /*Supprimer l'ombre (si elle est appliquée) */ } </style>
{"type":"slide","tags":"diapo, tuto, exemple","title":"Tuto/démo de diaporama avec CodiMD","description":"Pourquoi utiliser CodiMD pour une présentation de maths ? Démonstration de quelques fonctionnalités de CodiMD en mode diaporama (slide)","slideOptions":{"transition":"concave","theme":"white","author":"Vincent Pantaloni"}}