/
r_citr.Rmd
171 lines (118 loc) · 5.37 KB
/
r_citr.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
---
title: "Gérer des citations bib(La)tex dans un RMarkdown"
author: "State of the R"
date: "24-28/08/2020"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
## La version classique
Source : (https://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html)
### Préciser le fichier de bibliographie
Pandoc peut générer automatiquement des citations et une bibliographie dans différents styles. Il suffit de préciser le nom du fichier de bibligraphie en utilisant le champs `bibliography` dans le YAML des métadonnées du document .Rmd.
Par exemple :
```{r, eval = FALSE}
---
title: "Sample Document"
output: html_document
bibliography: bibliography.bib
---
```
Dans le yaml du document .Rmd, ajouter `bibliography: nomdufichierbib.extension`.
Différents formats existent, dont BibLaTeX (`.bib`) et BibTeX (`.bibtex`). Le format CSL-JSON (`.json`) est le format recommandé. Ici nous nous intéressons au format `.bib`.
### Références directement dans le YAML
Remarque : une alternative possible est de noter ses références directement dans un champs `references` du YAML.
```{r, eval = FALSE}
---
references:
- id: fenner2012a
title: One-click science marketing
author:
- family: Fenner
given: Martin
container-title: Nature Materials
volume: 11
URL: 'http://dx.doi.org/10.1038/nmat3283'
DOI: 10.1038/nmat3283
issue: 4
publisher: Nature Publishing Group
page: 261-263
type: article-journal
issued:
year: 2012
month: 3
---
```
### Placement de la bibliographie
Les références sont placées à la fin du document en utilisant un en-tête approprié `# References`.
### Citations
Les citations se font dans le document à l'aide de la syntaxe `[@` ref1`;` ref2`]`. On peut ajouter des suffixes, numéros de pages etc. si on le souhaite.
```{r, eval = FALSE}
Bla bla [see @doe99, pp. 33-35; also @smith04, ch. 1].
Bla bla [@doe99, pp. 33-35, 38-39 and *passim*].
Bla bla [@smith04; @doe99].
```
L'utilisation du signe `-` avant le `@` supprimera la mention de l'auteur, cela peut être utile quand l'auteur est mentionné au préalable.
```{r, eval = FALSE}
Chiquet dit bla bla [-@chiquet18].
# Alternative
[@chiquet18] dit bla bla.
```
### Les références non utilisées
Si l'on souhaite inclure des références de la bibliographie sans les citer dans le corps du texte, il suffit de définir un champs `nocite` dans le fichier de métadata et les mettre à ce niveau-là.
```{r, eval = FALSE}
---
nocite: |
@item1, @item2
...
```
### Le style des citations
Par défaut, pandoc utilise le format Chicago auteur-date. Pour changer le style, il faut ajouter le champs `csl`.
```{r, eval = FALSE}
---
title: "Sample Document"
output: html_document
bibliography: bibliography.bib
csl: biomed-central.csl
---
```
Pour créer et modifier des styles CSL (http://citationstyles.org/downloads/primer.html). Un dépôt est disponible : (https://github.com/citation-style-language/styles) ou (http://zotero.org/styles).
Par défaut, les citations sont générées par `pandoc-citeproc` et fonctionne pour tous les formats de sorties. Pour une sortie LaTex/PDF, il est possible d'utiliser des packages (ex `natlib`) pour générer les citations.
## Le addin citr
### Préambule sur les `Addins`
Les `Addins` permettent de se faciliter la vie . Ce sont des fonctions R, distribuées sous forme de package ou inclues dans des packages et sont disponibles ensuite dans le menu `Addins`. Une liste est disponible [ici] (https://github.com/daattali/addinslist).
Des Addins intéressants : `remedy` pour écrire du markdown, `esquisse` pour faire des ggplots, `colourpicker` pour définir ses palettes de couleur. Il y en a d'intégrer dans les packages (par exemple `gradethis`).
### Revenons à nos moutons
L'addin `citr` regarde automatiquement dans le fichier de biblio spécifié dans le YAML. Si aucun fichier n'est précisé, l'addin cherche à trouver un fichier .bib dans les fichiers parents. Les noms attendus pour les fichiers parents sont par exemple `c("index.Rmd", "master.Rmd")`. Cela peut être personnalisés
`options(citr.parent_documents = "my_parent.Rmd"))`.
On peut récupérer des citations avec une date ou un bout de nom, journal, etc...
```{r, eval = FALSE}
library("citr")
md_cite("Tipping")
md_cite("aitchison")
md_cite("2002")
```
Et on peut insérer facilement les citations dans son .rmd en cliquant sur l'addins.
### Rendre ses fichiers de biblio "tidy"
`tidy_bib_file()` permet de supprimer les entrées non nécessaires ou dupliquées dans le fichier de bibliographie.
```{r tidy_bib, eval = FALSE}
tidy_bib_file(
rmd_file = "~/monfichier.Rmd"
, messy_bibliography = "~/mesreferences.bib"
, file = "~/tidy_references.bib"
)
```
Il semble avoir des soucis pour certaines references.
## Le package bibtex
La fonction `utils::citation` permet de récupérer les citations d'un package particulier, ne fonctionne pas pour plusieurs et de récupérer le code tex grâce à la fonction `utils::toBibtex`.
Permet notamment de générer un fichier bibtex à partir des citations de packages.
Le package `bibtex` permet d'ajouter facilement les références associées aux packages utilisés dans la session dans notre fichier de `references.bib`.
```{r, eval = FALSE}
# citation
x <- citation("utils")
toBibtex(x)
# bibtex
library(bibtex)
write.bib(names(sessionInfo()$otherPkgs), file='mesreferences', append = TRUE)
```