class: center, middle, inverse, title-slide .title[ # LaTeX et R Markdown ] .subtitle[ ## Pratiques de la Recherche en Économie ] .author[ ### Florentine Oliveira ] .date[ ### 2024-11-15 ] --- layout: true --- # Format d'un article de recherche Les articles académiques en économie empirique suivent un format très **standardisé** : - **Plan**: - *Introduction*: motivation, présentation de la question de recherche, revue de littérature, contributions - *Contexte historique/institutionnel*: contexte spécifique au sujet, cadre économique et institutionnel - *Données*: description des sources de données, échantillon, statistiques descriptives - *Stratégie empirique modèle*: stratégie et hypothèses d'identification - *Résultats*: présentation des résultats principaux - *Tests de robustesse*: vérification de la validité des résultats - *Conclusion*: synthèse des contributions et implications - **Bibliographie**: références précises et standardisées, intégrées dans le texte - **Mise en page très sobre**: - Pas de couleur, sauf pour les graphiques - Police de caractère standardisée (Computer Modern ou Palatino) - Marges et interligne standards - Titres de sections apparents --- # Pourquoi ne pas rédiger en Word ? - **Mise en page**: - Word est moins adapté aux documents longs et complexes - `\(\LaTeX\)` et R Markdown permettent un contrôle plus précis et **automatisé** de la mise en page et la typographie - **Gestion des références et bibliographies**: gestion de la bibliographie automatisée et directement intégrée sur `\(\LaTeX\)` et R Markdown - **Collaboration**: `\(\LaTeX\)` et R Markdown sont compatibles avec les outils de contrôle de version comme Git, ce qui facilite le suivi des modifications et la collaboration - **Intégration des analyses de données**: R Markdown permet d'intégrer du code directement dans le document --- # LaTeX ? .center[ `\(\LaTeX\)` est un **langage** et un **système de composition de documents** (Wikipédia) ] **<span style="color:#dd0747;">Deux attributs principaux</span>** - **Mise en page automatique** et conforme à des normes typographiques - **Mode Maths**: permet d'écrire des formules mathématiques complexes **<span style="color:#dd0747;">Fonctionnement</span>** - **Syntaxe en texte brut** : le contenu et la mise en forme sont définis par des commandes `\(\LaTeX\)` - **Compilation** : le code est *compilé* pour générer un PDF **<span style="color:#dd0747;">Modes d'édition</span>** - **Éditeurs locaux**: travailler hors ligne avec *TeXworks*, *TeXShop*, *MiKTeX* - **Éditeur en ligne: Overleaf** - Éditeur en ligne collaboratif permettant de créer, compiler et partager des documents `\(\LaTeX\)` sans installation - Particulièrement utile pour les projets en équipe --- # Cette séance .pull-left[ <span>1. Overleaf</span> 1.1. Présentation 1.2. Structure de base d'un document 1.3. Formattage du texte 1.4. Math mode 1.5. Figures 1.6. Bibliographie 1.7. Commentaires, compilation, téléchargement 1.8. Avantages et inconvénients ] .pull-right[ <span>2. R Markdown</span> 2.1. Présentation 2.2. Syntaxe Markdown 2.3. Chunks 2.4. Figures 2.5. Bibliographie 2.6. Commentaires, compilation, téléchargement 2.7. Avantages et inconvénients ] --- layout: false class: center, middle, inverse # 1. Overleaf --- background-image: url(imgs/Overleaf_Logo.png) background-position: 95% 10% background-size: 7% # 1. Overleaf ## 1.1. Présentation - Selon le site internet d'Overleaf, - "an online `\(\LaTeX\)` editor that's easy to use. No installation, real-time collaboration, version control, hundreds of LaTeX templates, and more." - **Éditeur Latex** en ligne, collaboratif en temps réel - Principe identique à *google docs*, mais syntaxe `\(\LaTeX\)` --- # Interface <img src="imgs/preview.png" width="100%" style="display: block; margin: auto;" /> Console, compilation fichier PDF, téléchargement, collaboration, fichiers, structure du document --- # 1. Overleaf ## 1.2. Structure de base d'un document **Préambule** Le préambule est la partie du document LaTeX avant la commande `\begin{document}`. Il inclut: 1. La définition de la classe de document : `\documentclass{...}` - `article` : pour les articles académiques ou de courts rapports - `report` : pour les rapports plus longs, avec chapitres - `book` : pour les livres, thèses, etc - `beamer` : pour les présentations 2. Les packages ajoutent des fonctionnalités supplémentaires: - `\usepackage{amsmath}` : pour des formules mathématiques avancées - `\usepackage{graphicx}` : pour inclure des images - `\usepackage{xcolor}` : pour utiliser des couleurs 3. Les commandes spécifiques pour configurer le document --- # 1. Overleaf ## 1.2. Structure de base d'un document <img src="imgs/overleaf1.png" width="90%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.3. Formatage du texte : saut de ligne <img src="imgs/overleaf2.png" width="90%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.3. Formatage du texte : indentation <img src="imgs/overleaf3.png" width="90%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.3. Formatage du texte : section et sous-section <img src="imgs/overleaf4.png" width="90%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.3. Formatage du texte : texte en italique, gras et couleur <img src="imgs/overleaf5.png" width="90%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.3. Formatage du texte : listes à puces et numerotées <img src="imgs/overleaf6.png" width="90%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.4. Math mode Pour écrire une équation, il suffit de mettre l'expression mathématique entre `$...$`. Pour des équations centrées et numérotées, utilisez l'environnement `equation`. .pull-left[ | Opérateur **arithmétiques** | Description | |------------------------------|---------------------------| | `+` / `-` | Addition / Soustraction | | `*` | Multiplication | | `\frac{num.}{denum.}` | Fraction | | `^` | Exposant | | `_` | Indice | ] .pull-right[ | Opérateur **logiques** | Description | |-------------------------|--------------------------------------| | `<` / `>` | Strictement inférieur / supérieur à | | `\ge` / `\le` | Supérieur / inférieur ou égal à | | `=` | Égal à | | `\neq` | Différent de | ] **NB1: l'environnement `equation` est un environnement mathématique, il n'y a donc pas besoin de mettre des `$`** **NB2: Pour ne pas numéroter les équations de l'environnement `equation`, utiliser `\begin{equation*}` au lieu de `\begin{equation}`** --- # 1. Overleaf ## 1.4. Math mode <img src="imgs/mathmode.png" width="90%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.5. Figures et Subfigures Pour insérer une figure, on utilise l'environnement `figure`. Plusieurs éléments: - `\caption{Titre de la figure}`: titre de la figure - 🚨 les figures sont numérotées automatiquement selon leur ordre d'apparition dans le document - `\label{fig1}`: nom de la figure pour référence dans le texte avec la commande `\ref{fig1}` - `\centering` pour centrer la figure sur la page - `\includegraphics[width=9cm]{fig1.png}`: commande qui charge le fichier image - entre `[ ]` est définie la taille de l'image - entre `{ }` le nom (ou chemin) de l'image --- # 1. Overleaf ## 1.5. **Figures** et Subfigures <img src="imgs/figure.png" width="90%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.5. Figures et **Subfigures** <img src="imgs/sufigure.png" width="90%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.5 Bibliographie Il existe différents packages qui permettent de mettre en page automatiquement une bibliographie et gérer les citations dans le corps du texte: `biblatex`, `natbib`. Aujourd'hui, utilisation du package `natbib` qui est préféré par les éditeurs et journaux. Quatre éléments indispensables: - charger le package: `\usepackage{natbib}` et définir un style de bibliographie - construire un fichier qui recence les références bibliographiques au format `.bib` - citer la référence dans le corps du texte à l'endroit voulu avec la commande `\cite{}` - afficher la bibliographie à l'endroit où l'on veut qu'elle apparaisse avec la commande `\bibliography{mybibliography}` 🚨 **Seules les références citées dans le texte apparaîtront dans la bibliographie** --- # 1. Overleaf ## 1.5 Bibliographie 1) Chercher le code de la référence souhaitée en ligne (par ex sur Google Scholar) `\(\rightarrow\)` Cliquer sur **Citer** <img src="imgs/cite1.png" width="80%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.5 Bibliographie 1) Chercher le code de la référence souhaitée en ligne (par ex sur Google Scholar) `\(\rightarrow\)` Cliquer sur **BibTex** <img src="imgs/cite2.png" width="80%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.5 Bibliographie 2) Copier le code de la citation <img src="imgs/cite3.png" width="80%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.5 Bibliographie 3) Créer un fichier `.bib` <img src="imgs/bibfile.png" width="75%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.5 Bibliographie 4) Coller le code de la citation <img src="imgs/bibfilecontent.png" width="75%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.5 Bibliographie 5) Citer des références et afficher la bibliographie <img src="imgs/renducitation.png" width="75%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.6. **Commentaires**, compilation et téléchargement du fichier Pour ajouter un commentaire au texte, utiliser `%` suivi du commentaire en fin de ligne de code. <img src="imgs/comment.png" width="75%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.6. Commentaires, **compilation** et téléchargement du fichier Pour visualiser un apperçu du fichier pdf suite à chaque modification apportée au document, cliquer sur **Recompile** <img src="imgs/recompile.png" width="75%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.6. Commentaires, compilation et **téléchargement du fichier** Pour télécharger le document, cliquer sur le bouton **Download PDF** <img src="imgs/save.png" width="75%" style="display: block; margin: auto;" /> --- # 1. Overleaf ## 1.7. Avantages et inconvénients **Avantages** - Collaboration en temps réel - Facilité d'utilisation **Inconvénients** - Dépendance à internet: en cas de connexion instable, compliqué de travailler sur overleaf - Limites de la version gratuite - Peut être chronophage: en cas de mise à jour régulière des graphiques/tables --- layout: false class: center, middle, inverse # 2. R Markdown --- background-image: url(imgs/rmdlogo.png) background-position: 95% 10% background-size: 7% # 2. R Markdown ## 2.1. Présentation *`R Markdown` est une extension de `R` qui se présente sous la forme d’un **package**. `R Markdown` permet de **produire des documents texte en y intégrant nativement des morceaux de code `R` ** (pour le rendre public, pour générer des sorties…). `R Markdown` permet de fluidifier le processus de rédaction d’une publication, en réduisant fortement le nombre de gestes manuels nécessaires pour inclure des graphiques ou du code dans un document : plutôt qu’avoir un code SAS ou Stata ayant généré des sorties Excel/Calc intégrées dans un document Word ou transformées en table LaTeX, on dispose d’un unique document-source qui contient à la fois le texte et les codes qui produisent les sorties du document final. L’utilisation de `R Markdown` **facilite la production de publications reproductibles.** *<sup>1</sup> .footnote[ [1]: https://book.utilitr.org/03_Fiches_thematiques/Fiche_rmarkdown.html ] --- # 2. R Markdown ## 2.2. Structure de base d'un document Un document `R Markdown` comprend deux parties: - l'en-tête, ou **YAML header** qui définit le titre, le(s) auteur(s), et le format du document ``` r --- title: "Example" author: "Florentine Oliveira" date: "`r Sys.Date()`" output: pdf_document --- ``` - le contenu, composé à la fois - de blocks de texte respectant la syntaxe `markdown` - de blocks de code, appelés `chunks` --- # 2. R Markdown ## 2.3. Syntaxe `markdown` : sections et sous-sections Les sections et sous-sections peuvent-être facilement crées à l'aide de titres de différents niveaux: ` # Titre de niveau 1` ` ## Titre de niveau 2` ` ### Titre de niveau 3` --- # 2. R Markdown ## 2.3. Syntaxe `markdown` : texte en italique et gras Pour écrire un mot en *italique*, il faut encadrer le mot de `*`: `*italique*` Pour écrire un mot en **gras**, il faut encadrer le mot de `**`: `**gras**` Pour écrire un mot en ***gras italique***, il faut encadrer le mot de `***`: `***gras italique***` --- # 2. R Markdown ## 2.3. Syntaxe `markdown` : listes à puces Pour créer une liste à puces, il suffit de précéder chaque élément d'un `-`: `Exemple d'une liste à puces:` `- premier élément` `- deuxième élément` --- # Apperçu <img src="imgs/rmd.png" width="90%" style="display: block; margin: auto;" /> --- # 2. R Markdown ## 2.4. Code `Chunks` Le code contenu dans un document `R Markdown` est contenu dans des *chunks* délimités par des balises: ` ``` `. Chaque chunk a la structure suivante: ` ```{r chunk label, options } ` ` code ` ` ``` ` Exemple: <img src="imgs/chunk.png" width="70%" style="display: block; margin: auto;" /> --- # 2. R Markdown ## 2.4. Code `Chunks` ### Chunk options | Option | Défault | Effet | |----------------------|--------------------------------------| | `echo` | `TRUE` | Affiche le code dans le document compilé | | `error` | `FALSE` | `F`: arrête d'exécuter le code en cas d'erreur, `T`: affiche le message d'erreur dans le document | | `include` | `TRUE` | Inclue l'output du chunk dans le document | | `eval` | `TRUE` | Run le code contenu dans le chunk | | `message` | `TRUE` | Affiche les messages du code dans le document | | `warning` | `TRUE` | Affiche les warnings du code dans le document | --- # 2. R Markdown ## 2.4. Code `Chunks` ### Chunk options pour les figures | Option | Défault | Effet | |-------------------------------|-----------|-------------------------------------------------| | `fig.align` | `default` | `"left"`, `"right"`, `"center"` | | `fig.cap` | `NULL` | Titre de la figure (chaîne de caractères) | | `fig.width` & `fig.height` | 7 | Dimensions de la figure (en pouces) | | `out.width` | | Redimensionne la taille de l'output (eg "50%") | --- # 2. R Markdown ### 2.5. Figures Au sein d'un document `R Markdown`, il est possible d'ajouter: - des graphiques générés à partir du code contenu dans les code chunks <img src="imgs/chunk.png" width="70%" style="display: block; margin: auto;" /> - des graphiques ou figures non générées dans le document, grâce au package `knitr` et à la fonction `include_graphics()` <img src="imgs/include_graphics.png" width="70%" style="display: block; margin: auto;" /> --- # 2.6. Bibliographie Comme sur Overleaf, il est possible d'ajouter une bibligraphie à votre document `R Markdown` Chaque référence est listée dans le fichier `bibliohraphy.bib`, selon le même modèle que vu précedemment La bibliographie est appelée dans le document `R Markdown` dans le YAML: ``` r --- title: "Example" author: "Florentine Oliveira" date: "`r Sys.Date()`" output: pdf_document *bibliography: bibliography.bib --- ``` Dans le corps du texte, pour renvoyer à une référence, il faut utiliser la commande `@`. Par exemple, `@kleven2019children`. --- # 2.7. Avantages et inconvénients **Avantages** - Intégration avec R - Syntaxe Markdown simple **Inconvénients** - Nécessite connaissances de base en `R` (mais c'est votre cas 😄) - Collaboration possible avec GitHub mais coût d'entrée à Git --- # Sources [Site internet Overleaf : lean Latex in 30 minutes](https://fr.overleaf.com/learn/latex/Learn_LaTeX_in_30_minutes) [R Markdown Cheatsheet](https://rstudio.github.io/cheatsheets/rmarkdown.pdf) [R Markdown Cookbook](https://bookdown.org/yihui/rmarkdown-cookbook/)