lang Langue du document au format ISO alpha 2,
'en'
pour l'anglais, 'fr'
pour le français
title Titre du document
author Auteur(s) du document (plusieurs entrées possibles)
date Date du document (au format AAAA-MM-JJ, pour générer
automatiquement la date du jour, saisir
'`r format(Sys.time(), "%Y-%m-%d")`'
)
tags Mots-clés
abstract Résumé (doit commencer par |
pour un résumé avec plusieurs
paragraphes, ces derniers devant alors être indentés)
toc-title Titre de la table des matières
tof-title Titre de la table des figures
tot-title Titre de la table des tables
prefix-fig Préfixe pour la numérotation des figures (Figure par défaut)
prefix-table Préfixe pour la numérotation des tables (Table par défaut)
pdf Pour générer automatiquement un PDF avec Prince XML, cette
option doit être égale à 'prince'
Nous vous recommandons de placer au début de votre document le code suivant :
```{r configuration, echo=FALSE, message=FALSE} opts_chunk$set( comment = NA, # Ne pas afficher ## devant les résultats dev = "svg", # Graphiques au format SVG cache = TRUE, # Mise en cache fig.width = 8, fig.height = 6 # Taille par défault des figures ) options( knitr.table.format = "html", # Tables directement au format HTML (kable) xtable.type = "html", # Tables en HTML (xtable) xtable.caption.placement = "top" # Titre avant le tableau (xtable) ) knit_hooks$set(plot = hook_plot_html) # Figures directement au format HTML windowsFonts(sans=windowsFont("Open Sans")) # Police par défaut des graphiques ```
Il s'agit de différentes options pour knitr. Les options passées via opts_chunk$set
sont optionnelles. Libre à vous de les adapter en fonction de vos besoin. Pour les
graphiques, nous avons priviliégié le format SVG car ce dernier permet un rendu
de meilleur qualité dans le PDF produit tout en étant correctement interprété
par les navigateurs modernes.
options(knitr.table.format = "html")
et knit_hooks$set(plot = hook_plot_html)
sont nécessaires pour une gestion adéquate des identifiants et des titres des
tableaux et des figures (voir section et section pour plus
de détails). Les options xtable.type
et xtable.caption.placement
ne sont
nécessaires que si vous utilisez le package xtable.
windowsFonts(sans=windowsFont("Open Sans"))
est totalement optionnel. Cela permet
de spécifier la polices de caractères à utiliser lors de la création de graphiques.
Dans la mesure où scdoc utilise pandoc pour interpréter le code mardown, il est possible d'utiliser tous les ajouts à markdown proposés par pandoc. Ces derniers sont décris en détails à http://johnmacfarlane.net/pandoc/README.html#pandocs-markdown.
Il est également possible d'inclure directement du code HTML, qui sera conservé tel quel lors de l'export.
Les titres sont automatiquement numérotés. Il est cependant possible de spécifier
qu'un titre particulier ne doit pas être numéroté en lui ajoutant la classe CSS
.unnumbered
.
## Titre non numéroté {.unnumbered}
produira :
Pour créer un lien interne vers un titre donné, il faut en premier lieu attribuer un identifiant unique à votre titre :
## Titre avec identifiant {#id_titre}
produira :
Pour créer un lien interne, il suffit dès lors de cibler le titre désiré avec son identifiant.
Voir [section](#id_titre).
produira :
Voir section.
Vous remarquerez au passage que le numéro du titre a été automatiquement ajouté (ainsi que le numéro de page dans la version PDF).
```{r} summary(cars) ```
produira
summary(cars)
Autre exemple :
```{r} summary(cars) str(cars) sum(cars$speed) ```
summary(cars) str(cars) sum(cars$speed)
Pour plus de détails, voir http://yihui.name/knitr/.
Il est possible d'insérer du code R directement dans un paragraphe de texte avec :
`r ... some R code ... `
La somme de 3 plus 4 est égale à `r 3+4`.
produira
La somme de 3 plus 4 est égale à
r 3+4
.
Le résultat apparait comme faisant partie intégrante du texte.
Les tableaux sont automatiquement numérotés. De même, une table des tables est générée automatiquement. Le préfixe des numéros de table et le titre de la table des tables peuvent être personnalisés (voir chapitre).
Plusieurs fonctions et package R permettent de produire des tableaux correctement formatés en HTML (voir ci-après). Pour chaque package, nous présenterons comment personaliser le titre du tableau et comment lui attribuer un identifiant. L'ajout d'un identifiant permet de réaliser un lien interne. Par exemple :
Voir [table](#exemple_kable).
produira
Voir table.
Il vous faut une version récente de knitr afin que soit disponible l'argument
caption
. La dernière version de knitr peut-être installée avec la commande :
require(devtools) install_github('knitr', 'yihui')
En premier lieu, il faut calculer un tableau (avec une fonction telle que table
ou
xtabs
).
data(Titanic) d <- as.data.frame(Titanic) tab <- xtabs(Freq~Class+Survived, data=d)
Ensuite, on appellera la fonction kable
dans un chunk ayant pour option
results='asis'
afin que le code produit par kable
soit inclus tel quel.
Il importe également que l'on ait précisé à knitr de produire les tableaux
au format HTML (options(knitr.table.format = "html")
, voir section).
Le paramètre caption
(optionnel) permet d'indiquer un titre de tableau. Pour
ajouter un identifiant, on utilisera le paramètre table.attr
. Enfin, il est
possible de spécifier l'alignement de chaque colonne avec align
.
kable(tab, table.attr = 'id="exemple_kable"', caption = "Tableau généré avec kable", align = c('l','r','r'))
Le package xtable offre de multiples possibilités pour générer un tableau
au format HTML. Il est recommandé de personnaliser au préalable les options
xtable.type
et xtable.caption.placement
(voir section).
Comme pour kable
, xtable
sera appelée dans un chunk ayant pour option
results='asis'
. La syntaxe est la suivante :
require(xtable) xtable(tab, caption="Tableau généré avec xtable", label="exemple_xtable", align=c("lrr"))
Pour une gestion aisée du titre du tableau, une version récentes (0.7.67 ou plus) du package tables est requise. La dernière version peut être installée avec la commande :
install.packages("tables", repos="http://R-Forge.R-project.org")
Dans un premier temps, le tableau sera calculé avec la fonction tabular
(voir
l'aide de cette dernière pour plus de détails) :
require(tables) tab2 <- tabular( (Species + 1) ~ (n=1) + Format(digits=2)* (Sepal.Length + Sepal.Width)*(mean + sd), data=iris )
Le tableau sera ensuite converti au format HTML avec la fonction html
. Cette
dernière sera appelée dans un chunk ayant pour option results='asis'
. Petite
particularité, le titre devra être indiqué avant d'appeler html
avec la fonction
table_options
. Il est recommandé de remettre cette valeur à NULL
juste après
pour éviter d'impacter les tableaux suivants.
table_options(HTMLcaption = 'Tableau généré avec tabular et html') html(tab2, id='exemple_tabular') table_options(HTMLcaption = NULL)
Selon la norme HTML 5, on aura recours à la balise <figure>
pour inclure des
graphiques ou d'autres médias. Une même figure peut contenir plusieurs graphiques.
Le titre d'une figure sera indiqué avec une balise <figcaption>
.
Les figures sont automatiquement numérotées. De même, une table des figures est générée automatiquement. Le préfixe des numéros de figure et le titre de la table des figures peuvent être personnalisés (voir chapitre).
Les balises <figure>
et <figcaption>
seront directements entrées dans le
fichier markdown. (NB : cette approche fonctionnera sous réserve que l'option
knit_hooks$set(plot = hook_plot_html)
ait été appliquée au début du document,
voir section.)
<figure id="exemple_fig"> ```{r, echo=FALSE} plot(cars) ``` <figcaption>Titre de la figure</figcaption> </figure>
produira
L'ajout d'un identifiant permet de réaliser un lien interne. Par exemple :
Voir [figure](#exemple_fig).
produira
Voir table.
Un graphique créé sans être encadré par une balise <figure>
ne sera pas ajouté
à la table des figures.
```{r, echo=FALSE} plot(table(rpois(100, 5)), type = "h", col = "red", lwd = 10, main = "rpois(100, lambda = 5)") ```
produira
plot(table(rpois(100, 5)), type = "h", col = "red", lwd = 10, main = "rpois(100, lambda = 5)")
Ceci est un texte^[Avec une note de bas de page].
produira :
Ceci est un texte^[Avec une note de bas de page].
pandoc reconnait plusieurs syntaxes pour rédiger des notes de bas de page (voir http://johnmacfarlane.net/pandoc/README.html#footnotes pour plus de détails).
Il est possible d'écrire des équations au format LaTeX.
$\alpha+\beta=\gamma$ $$\int_0^\infty e^{-x^2} dx=\frac{\sqrt{\pi}}{2}$$
produira :
$\alpha+\beta=\gamma$ $$\int_0^\infty e^{-x^2} dx=\frac{\sqrt{\pi}}{2}$$
Les équations seront transformées au format MathML. Par ailleurs, s'il y a au moins une équation dans la page, la librairie MathJax sera chargée afin que les équations soient correctement rendues sur tous les navigateurs.
L'option ponctuation intelligente de pandoc ^[http://johnmacfarlane.net/pandoc/README.html#smart-punctuation] est active. Cette dernière gère les points de suspensions (...), les tirets semi-cadratins (--), les tirets cadratins (---) et les guillemets anglais ("").
Par exemple :
-- --- ... "test"
produira
-- --- ... "test"
La ponctuation française n'est pas encore gérée mais pourra être ajoutée dans une future version.
On peut ajouter une référence bibliographique au texte. Par exemple, le pacakge TraMineR permet d'analyser des séquences [@gabadinho:2011analyzing]. Pour plus de détails sur la syntaxe, voir http://johnmacfarlane.net/pandoc/README.html#citations.
Il faut soit que les sources bibliographiques soit ajouter au format YAML dans votre fichier R markdown.
Une autre option consiste à utiliser zotxt pour lier votre document à votre base
Zotero. Pour cela, vous devrez ajouer l'option - zotxt:'yes'
à votre YAML d'en-tête
(voir section). Il importera également que Zotero soit ouvert lorsque
vous lancer Knit HTML.
Enfin, vous pouvez utilisez la fonction zotxt2yaml pour extraire avec zotxt les références citées dans votre document et générer le YAML correspondant.
title: Analyzing and Visualizing State Sequences in R with TraMineR id: gabadinho:2011analyzing issued: day: 7 month: 4 year: 2011 author: - given: - Alexis family: Gabadinho - given: - Gilbert family: Ritschard - given: - Nicolas - S. family: "Müller" - given: - Matthias family: Studer container-title: http://www.jstatsoft.org/v40/i04/paper type: article-journal ...
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.