Commit bf28f461 authored by Arnaud Legrand's avatar Arnaud Legrand

Spread Marie-Gabrielle's documentation to the right places.

parent 0aebd2e2
Table des matières
=================
- [1 Installation et configuration des différents outils](#1-installation-et-configuration-des-diff%C3%A9rents-outils)
- [1.1 Installer et configurer Emacs](#11-installer-et-configurer-emacs)
- [1.2 Ajouter les chemins de R et Python dans dans la variable PATH de Windows](#12-ajouter-les-chemins-de-r-et-python-dans-dans-la-variable-path-de-windows)
- [1.3 Installer et configurer matplotlib (librairie graphique Python)](#13-installer-et-configurer-matplotlib-librairie-graphique-python)
- [2 Utilisation d'Emacs](#2-utilisation-demacs)
- [2.1 Exécuter des commandes dos](#21-exécuter-des-commandes-dos)
- [2.2 Exécuter du code R](#22-exécuter-du-code-r)
- [2.3 Exécuter du code Python](#23-exécuter-du-code-python)
- [2.4 Écrire dans le journal](#24-écrire-dans-le-journal)
# 1 Installation et configuration des différents outils
## 1.1 Installer et configurer Emacs
- Installer [Emacs modifié pour Windows](https://vigou3.github.io/emacs-modified-windows/)
- version 26.1 pour Windows 64 bits
- version 25.2 pour Windows 32 bits
- Télécharger le fichier [rr_org_archive.tgz](https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/blob/master/module2/ressources/rr_org_archive.tgz)
*NB : Avec 7z il faut décompresser l'archive deux fois : une première fois crée une archive `rr_org_archive.tar` et une deuxième fois crée un dossier `rr_org` contenant les fichiers `init.el` et `journal.org`.*
- Lancer Emacs
![emacs](documents/tuto_emacs_windows/images/emacs.png)
- Emacs crée le répertoire `C:\Users\***\.emacs.d`
*NB : Le répertoire est créé au premier lancement d'Emacs.*
- Placer le fichier `init.el` dedans
- Lancer Emacs
![scratch](documents/tuto_emacs_windows/images/scratch.png)
- Exécuter la commande suivante pour installer `htmlize`
```
M-x package-install RET htmlize RET
```
- Créer un dossier `C:\Users\***\org` dans l'explorateur Windows
- Placer le fichier `journal.org` dedans
---
## 1.2 Ajouter les chemins de R et Python dans dans la variable PATH de Windows
La façon de procéder est très bien expliquée [ici](http://sametmax.com/ajouter-un-chemin-a-la-variable-denvironnement-path-sous-windows/).
---
## 1.3 Installer et configurer matplotlib (librairie graphique Python)
- Installer la librairie `matplotlib`
- Ouvrir une invite de commande dos
- Exécuter la commande suivante
```
python -m pip install -U matplotlib
```
![install_matplotlib](documents/tuto_emacs_windows/images/install_matplotlib.png)
- Désactiver les plots interactifs dans matplotlib
Pour ce faire, il faut d'abord savoir où se trouve le fichier de configuration de matplotlib sous Windows.
Exécuter le code suivant sous Python
```
import matplotlib
matplotlib.matplotlib_fname()
```
![matplotlib](documents/tuto_emacs_windows/images/matplotlib.png)
Ouvrir le fichier `matplotlibrc` et ajouter un `#` devant la ligne qui commence par `backend`, ce qui correspond à utiliser la valeur par défaut `Agg`
---
## 1.4 Installer MiKTeX
Télécharger et installer [MiKTeX](https://miktex.org/download) en choisissant le bon système d'exploitation.
Vous serez amené à installer différents packages lors du premier export pdf.
---
---
# 2 Utilisation d'Emacs
## 2.1 Exécuter des commandes dos
- Lancer Emacs
- Créer un fichier toto.org dans l'explorateur Windows
- Ouvrir le fichier toto.org dans Emacs et saisir `<b` + `tab`.
![shell](documents/tuto_emacs_windows/images/shell.png)
- Le raccourci `C-g` permet de sortir d'une commande
---
## 2.2 Exécuter du code R
- Le raccourci `<r` + `tab` permet d'exécuter une commande R
![commandeR1](documents/tuto_emacs_windows/images/commandeR1.png)
Emacs demande le dossier de démarrage. Garder le dossier par défaut (`Entrée`)
![commandeR2](documents/tuto_emacs_windows/images/commandeR2.png)
- Le raccourci `<R` + `tab` permet d'exécuter une commande graphique R
(org-babel-temp-file \"figure\" \".png\") génère un nom de fichier temporaire.
Il faut indiquer un nom de fichier pour que l'image soit chargée lors de la réouverture du fichier Emacs.
![graphiqueR](documents/tuto_emacs_windows/images/graphiqueR.png)
Remarque : Il peut être pratique de remplacer `(org-babel-temp-file \"figure\" \".png\")` par `"D:/temp/figure.png\"` dans dans le fichier `init.el` (raccourci `<R` et `<PP`).
---
## 2.3 Exécuter du code Python
- Voir la page [Python Source Code Blocks in Org Mode](https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-python.html)
- Le raccourci `<p` + `tab` permet d'exécuter du code Python en mode "non-session"
![python1](documents/tuto_emacs_windows/images/python1.png)
- Le raccourci `<P` + `tab` permet d'exécuter du code Python en mode "session" pour conserver les valeurs d'un bloc de code à l'autre.
![python2](documents/tuto_emacs_windows/images/python2.png)
- Le raccourci `<PP` + `tab` permet d'exécuter un graphique Python
![python4](documents/tuto_emacs_windows/images/python4.png)
- Si cette commande échoue, essayer de mettre la librairie `numpy` à jour
Exécuter le code suivant dans une invite de commande dos
```
python -m pip install -U numpy
```
---
## 2.4 Écrire dans le journal
- Ouvrir le fichier `journal.org`
- Le raccourci `C-c c` ouvre un menu demandant si on veut écrire dans la todo list ou dans le journal
![ctrl_c_c](documents/tuto_emacs_windows/images/ctrl_c_c.png)
- On appuie sur `j` pour écrire dans le journal. Un mini buffer est ouvert et Emacs modifie le fichier `journal.org` pour créer une entrée à la bonne date. On peut commencer à écrire dans le journal.
![org_mode](documents/tuto_emacs_windows/images/org_mode.png)
`C-c C-c` pour enregistrer les modifications.
- La combinaison `Alt`+ `flèche gauche` ou `flèche droite` permet de décaler les puces à gauche ou à droite.
- Penser à enregistrer avant de quitter !
......@@ -23,6 +23,8 @@
./module2/ressources/gitlab_fr.org # https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/448cd6f9018545d1a67405551add6fda
./module2/ressources/emacs_orgmode.org # https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/954f94ce4f9a4d858d47b41793cc96c8
./module2/ressources/emacs_orgmode_fr.org # https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/954f94ce4f9a4d858d47b41793cc96c8
./module2/ressources/emacs_newbie.org #
./module2/ressources/emacs_newbie_fr.org #
./module2/ressources/sequence6_examples/README.org # https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/827b36e10ddd49239f1c62cc1903951a
./module2/ressources/sequence6_examples/README_fr.org # https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/827b36e10ddd49239f1c62cc1903951a
./module2/ressources/python_r_latex.org # https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/19c2b1de7766484bae73f3ab133463c6
......@@ -53,5 +55,4 @@
./module4/ressources/resources_environment_fr.org # https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/4be922aa6b8c471ab1addcdbddb4e487
./documents/notebooks/notebook_RStudio_SASmarkdown.md #
./documents/tuto_emacs_windows/tuto_emacs_windows.md #
./documents/tuto_jupyter_windows/tuto_jupyter_windows.md # https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/512cf2f3bc844d88b3954a3748d01c0f
# -*- mode: org -*-
#+TITLE: First steps with Emacs/org-mode
#+DATE: March 2019
#+STARTUP: overview indent
#+OPTIONS: num:nil toc:t
#+PROPERTY: header-args :eval never-export
This document assumes you have installed emacs as explained in
FIXME. All the screenshots in this demo are done under the Windows
operating system but it should look similar on any OS.
* First steps with Emacs as a computationnal environment
** Run Emacs
- Launch emacs
#+BEGIN_CENTER
[[file:emacs_orgmode_images/emacs.png]]
#+END_CENTER
- Create a new file using the "white sheet of paper" left icon, right
below the =File= menu. Name it =foo.org= in which ever directory you
want.
** Running dos/shell commands
- You now have a blank org-mode file.
- Type =<b= and press the =tab= key to expend it as the beginning of a
shell block. You can then type whichever command you want (e.g., =dir=
under windows or =ls= under linux or Mac). By typing =C-c C-c= (this
means typing twice =Ctrl= =c=), your shell command should be executed
and the output should but put right below.
#+BEGIN_CENTER
[[file:emacs_orgmode_images/shell.png]]
#+END_CENTER
- Whenever you feel emacs has entered a weird state and you want to
exit from this mode, press =C-g= (again, this reads as =Ctrl= =g=) several
times.
** Running R code
- Similarly to the abovementionned =<b= shortcut, the shortcut =<r= + =tab=
will allow you to create a block for running R commands (e.g.,
=summary(cars)=). Likewise, the code will be executed by typing =C-c
C-c= (typing twice =Ctrl= =c=)
#+BEGIN_CENTER
[[file:emacs_orgmode_images/commandeR1.png]]
#+END_CENTER
At this point, Emacs will prompt you to ask where R should be
launched. Simply keep the current directory by hitting the =Return=
key. Again, the output is captured and inserted right below.
#+BEGIN_CENTER
[[file:emacs_orgmode_images/commandeR2.png]]
#+END_CENTER
- The =<R= + =tab= shortcut will allow you to run R commands that generate
graphics. The =(org-babel-temp-file \"figure\" \".png\")= generates a
temporary file name. It will thus be erased when closing emacs. If
you want the image to be persistant, indicate a real file name instead.
#+BEGIN_CENTER
[[file:emacs_orgmode_images/graphiqueR.png]]
#+END_CENTER
If you do not like this behavior, you can edit the =init.el= file and
replace =(org-babel-temp-file \"figure\" \".png\")= by
=\"D:/temp/figure.png\"= or whichever location/name you prefer (both
for =<R= et =<PP=).
** Running python code
- You may want to read the [[https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-python.html][Python Source Code Blocks in Org Mode]]
webpage for more examples
- The =<p= + =tab= will insert a python block in a /non-session/ mode. This
means that a new python shell will be started for this block and
that variables will not be shared between blocks. Again, the code
is executed with the =C-c C-c= shortcut.
#+BEGIN_CENTER
[[file:emacs_orgmode_images/commande_python.png]]
#+END_CENTER
#+BEGIN_CENTER
[[file:emacs_orgmode_images/python1.png]]
#+END_CENTER
# Note that if python was not correctly installed, you may end up with
# a message like this:
# #+BEGIN_CENTER
# [[file:emacs_orgmode_images/python3.png]]
# #+END_CENTER
# Then try to follow the steps in the installation section.
- The =<P= + =tab= will insert a python block in /session/ mode. This
allows to keep variables alive from a block to an other. Internally,
emacs will have a buffer with a python session running. Again, the
code is executed with the =C-c C-c= shortcut.
#+BEGIN_CENTER
[[file:emacs_orgmode_images/python2.png]]
#+END_CENTER
- The =<PP= + =tab= will insert a python block in /session/ mode and ready
to generate graphics.
#+BEGIN_CENTER
[[file:emacs_orgmode_images/python4.png]]
#+END_CENTER
If this fails, try to update the python =numpy= library, for exemple
like this in a dos/shell command:
#+begin_src shell :results output :exports both
python -m pip install -U numpy
#+end_src
* Taking notes with Emacs Org-Mode
** What does it look like.
- Open the =journal.org= file you have placed in the =~/org/=
directory. You will find a few first "old" entries with the most
useful emacs shortcuts, including the ones that have been presented
above.
** Taking notes
- The =C-c c= (=Ctrl c= then =c=) will open a menu asking you whether you
want to take notes in your todo list or in your journal.
#+BEGIN_CENTER
[[file:emacs_orgmode_images/ctrl_c_c.png]]
#+END_CENTER
- Hit =j= to take notes in your journal.
Emacs then opens =journal.org= to create an entry with the right date
and presents you with a mini buffer in which you can start taking
notes.
#+BEGIN_CENTER
[[file:emacs_orgmode_images/org_mode.png]]
#+END_CENTER
When you are dones, simply hit =C-c C-c= to save your modifications
and close the mini-buffer.
** Fast editing of an org document
- It is common when taking notes in a brainstorming session to have to
clean and reorganize them. The =Alt= + =\leftarrow= or =Alt= +
=\rightarrow= will allow you to shift items to the left or to the right.
- Org-mode shortcuts are actually much more intuitive than prehistoric
emacs shortcuts. You'll quickly get use to it. Again, have a look to
the first entry of the =journal.org= file we gave you and which
contains many useful tips.
- Do not forget to save your files before closing emacs!
# -*- mode: org -*-
#+TITLE: FIXME Premiers pas avec Emacs/org-mode
#+DATE: March 2019
#+STARTUP: overview indent
#+OPTIONS: num:nil toc:t
#+PROPERTY: header-args :eval never-export
See the English version. French translation in progress.
......@@ -5,6 +5,8 @@
#+OPTIONS: num:nil toc:t
#+PROPERTY: header-args :eval never-export
This document provides information on how to install emacs.
*Disclaimer:* The two sections /A simple "reproducible research" emacs configuration/
and /A stub of replicable article/ explain how to set up
emacs/org-mode for this MOOC. These are very important sections in the
......@@ -14,15 +16,12 @@ really should follow carefully*. *Otherwise, you may have trouble doing
the exercises later on*. Likewise, I strongly encourage you to watch
the [[https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/9cfc7500f0ef46d288d2317ec7b037b4]["emacs and git" video tutorial available at the same place]].
The next section provides information on how to install emacs.
* Table of Contents :TOC:
- [[#installing-emacs][Installing Emacs]]
- [[#linux-debian-ubuntu][Linux (Debian, Ubuntu)]]
- [[#macos][macOS]]
- [[#windows][Windows]]
- [[#python-and-r][Python and R]]
- [[#latex-optional][LaTeX (optional)]]
- [[#python-r-and-latex][Python, R, and LaTeX]]
- [[#a-simple-reproducible-research-emacs-configuration][A simple "reproducible research" emacs configuration]]
- [[#step-0-backup-and-remove-your-previous-configuration][Step 0: Backup and remove your previous configuration]]
- [[#step-1-download-our-configuration][Step 1: Download our configuration]]
......@@ -99,16 +98,23 @@ For advanced uses of Emacs, such as calling Emacs from a Makefile to automate do
Be aware that running Emacs the Unix way implies some subtle differences compared to running Emacs the macOS way. In particular, Emacs will inherit the shell's environment variables when run the Unix way, but the user session's environment variables when run the macOS way.
** Windows
Download the [[https://ftp.gnu.org/gnu/emacs/windows/emacs-26/emacs-26.1-i686.zip][precompiled Emacs 26.1]] and unzip the zip file preserving the directory structure, and run =bin\runemacs.exe=.
Download the recompiled Emacs 26 ([[https://ftp.gnu.org/gnu/emacs/windows/emacs-26/emacs-26.1-i686.zip][for 32 bits architectures]] or [[https://ftp.gnu.org/gnu/emacs/windows/emacs-26/emacs-26.1-x86_64.zip][for 64 bits architectures]] depending on your machine) and unzip the zip file preserving the directory structure. If this approach does not work, follow the instructions from the [[https://www.gnu.org/software/emacs/download.html#windows][official emacs website]]. If this still fails, do not hesitate to ask questions on the forum.
Finally run =bin\runemacs.exe=. Alternatively, create a desktop shortcut to =bin\runemacs.exe=, and start Emacs by double-clicking on that shortcut's icon. See [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-Startup.html][here]] for an explanation of this and other methods for launching Emacs under Windows. You should be able to obtain a window that looks like this:
#+BEGIN_CENTER
[[file:emacs_orgmode_images/emacs.png]]
Alternatively, create a desktop shortcut to =bin\runemacs.exe=, and start Emacs by double-clicking on that shortcut's icon. See [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Windows-Startup.html][here]] for an explanation of this and other methods for launching Emacs under Windows.
[[file:emacs_orgmode_images/scratch.png]]
#+END_CENTER
*** Directory naming conventions
In the following instructions, we refer to your home
directory through the (UNIX) =~/= notation. On Windows, your home
directory should be something like =C:\Users\yourname=. Therefore,
whenever we mention the =~/org/= (resp. the =~/.emacs.d/=) directory this
means we are referring to =C:\Users\yourname\org= (resp.
=C:\Users\yourname\.emacs.d\=).
=C:\Users\yourname\.emacs.d\=). Note that the =C:\Users\yourname\.emacs.d\= directory should be automatically created when running emacs for the first time. This is where the emacs configuration will go.
*** Managing archives
Later in this document, you will be asked to download small archives containing files ([[file:rr_org_archive.tgz][rr_org_archive.tgz]] and [[file:replicable_article.tgz][replicable_article.tgz]]). To uncompress these archives on your computer, you may want to use the =7z= program. In this case, you may have to uncompress each file twice... The first time, =archive.tgz= will be uncompressed in =archive.tar= and the second time =archive.tar= will create a =archive/= directory comprising all the files of the original archive.
*** Making R and Python available to the console
When running a command, Windows will look for the command in the
directories indicated in the =PATH= environment variable. If none of
......@@ -206,7 +212,7 @@ tar tzf rr_org_archive.tgz
Alternatively, [[file:rr_org/][the files you are looking for are available here]]. As
you may notice, the configuration (=init.el= in emacs lisp) is hard to
follow, which is why we manage it through an =init.org=, file, which is
follow, which is why we manage it through an =init.org= file, which is
really nice for readability. This is a trick you may want to adopt
too (i.e., modify the =init.org= and regenerate the =init.el= by simply
/tangling/ the file --with =M-x org-babel-tangle=, see instructions in the
......@@ -215,13 +221,14 @@ beginning of =init.org=).
If you use Windows, and if you use a desktop shortcut to start Emacs,
you must include the path to the file =init.el= in the command for the
shortcut. For example, if you installed Emacs as
=C:\Users\MyName/emacs=, your desktop shortcut should execute the
=C:\Users\MyName\emacs=, your desktop shortcut should execute the
command =C:\Users\MyName\emacs\bin\runemacs.exe -l .emacs.d/init.el=.
** Step 2: Prepare your journal
Create an =org/= directory in the top of your home:
#+begin_src sh :results output :exports both
mkdir -p ~/org/
# on Windows, use the file explorer to create the directory C:\Users\MyName\org
#+end_src
Then copy =rr_org/journal.org= file in your =~/org/= directory. This
file will be your laboratory notebook and all the notes you will
......@@ -295,7 +302,7 @@ tar zcf replicable_article.tgz $FILE_LIST
#+RESULTS:
Download the following [[https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/raw/master/module2/ressources/replicable_article.tgz][archive]] and uncompress it. The archive contains the compiled article, so you can start by looking at it.
Download the following [[replicable_article.tgz][archive]] and uncompress it. The archive contains the compiled article, so you can start by looking at it.
To rebuild the article, delete =article.pdf=, or rename it to something else. Otherwise the rebuild procedure will simply tell you that the article is already up to date. Then type =make= to build everything from scratch. Open the freshly built =article.pdf= to see if it looks OK.
......
......@@ -5,312 +5,4 @@
#+OPTIONS: num:nil toc:t
#+PROPERTY: header-args :eval never-export
*Disclaimer:* The two sections /A simple "reproducible research" emacs configuration/
and /A stub of replicable article/ explain how to set up
emacs/org-mode for this MOOC. These are very important sections in the
context of this MOOC. *These sections are illustrated in two
out of the [[https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/9cfc7500f0ef46d288d2317ec7b037b4][three video tutorials of this sequence]], and* *which you
really should follow carefully*. *Otherwise, you may have trouble doing
the exercises later on*. Likewise, I strongly encourage you to watch
the [[https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/9cfc7500f0ef46d288d2317ec7b037b4]["emacs and git" video tutorial available at the same place]].
The next section provides information on how to install emacs.
* Table of Contents :TOC:
- [[#installing-emacs-org-mode-ess-and-auctex][Installing emacs, org-mode, ess, and auctex.]]
- [[#linux-debian-ubuntu][Linux (Debian, Ubuntu)]]
- [[#macos][macOS]]
- [[#windows][Windows]]
- [[#all-platforms-pretty-code-in-html-export][All platforms: pretty code in HTML export]]
- [[#a-simple-reproducible-research-emacs-configuration][A simple "reproducible research" emacs configuration]]
- [[#step-0-backup-and-download-our-configuration][Step 0: Backup and download our configuration]]
- [[#step-1-prepare-your-journal][Step 1: Prepare your journal]]
- [[#step-2-set-up-emacs-configuration][Step 2: Set up Emacs configuration]]
- [[#step-3-adapt-the-configuration-to-your-specific-needs-if-required][Step 3: Adapt the configuration to your specific needs if required]]
- [[#step-4-check-whether-the-installation-is-working-or-not][Step 4: Check whether the installation is working or not]]
- [[#step-5-open-and-play-with-your-journal][Step 5: Open and play with your journal:]]
- [[#a-stub-of-a-replicable-article][A stub of a replicable article]]
- [[#emacs-tips-and-tricks][Emacs tips and tricks]]
- [[#cheat-sheets][Cheat-sheets]]
- [[#video-tutorials][Video tutorials]]
- [[#additional-useful-emacs-packages][Additional useful emacs packages]]
- [[#other-resources][Other resources]]
* Installing emacs, org-mode, ess, and auctex.
** Linux (Debian, Ubuntu)
We provide here only instructions for Debian-based distributions. Feel
free to contribute to this document to provide up-to-date information
for other distributions (e.g.n redhat, fedora).
Today, the stable versions of the most common distributions provide
recent enough versions of emacs and org-mode:
- Debian (stretch) ships with [[https://packages.debian.org/stretch/emacs25][emacs 25.1]] and [[https://packages.debian.org/stretch/org-mode][org-mode 9.0.3]]
- Ubuntu (bionic 18.04) ships with [[https://packages.ubuntu.com/bionic/emacs25][emacs 25.2]] and [[https://packages.ubuntu.com/bionic/org-mode][org-mode 9.1.6]]
- Ubuntu (artful 17.04) ships with [[https://packages.ubuntu.com/artful/emacs25][emacs 25.2]] and [[https://packages.ubuntu.com/artful/org-mode][org-mode 9.0.9]]
If your distribution is older than this, well, it may be a good time
for upgrading...
Simply run (as root):
#+begin_src sh :results output :exports both
apt-get update ; apt-get install emacs25 org-mode ess r-base auctex
#+end_src
Then make sure you have a sufficiently recent version of emacs.
#+begin_src sh :results output :exports both
emacs --version 2>&1 | head -n 1
#+end_src
#+RESULTS:
: GNU Emacs 25.2.2
Likewise, you'll want to check you have a recent version of org-mode:
#+begin_src sh :results output :exports both
emacs -batch --funcall "org-version" 2>&1 | grep version
#+end_src
#+RESULTS:
: Org mode version 9.1.11 (9.1.11-dist @ /usr/share/emacs/25.2/site-lisp/elpa/org-9.1.11/)
The version numbers you get will depend on the distribution you are
running. _You really want to make sure you do not rely on org-mode 8_,
which is now deprecated.
** macOS
*Note:* macOS comes with a prehistoric command-line-only version of Emacs located at =/usr/bin/emacs=. It's best to forget about it.
The Web site https://emacsformacosx.com/ proposes precompiled Emacs versions for macOS. Download the latest version (the one that figures prominently on the page) and install it like you would install any other macOS application, by copying =Emacs.app= from the downloaded disk image to a convenient location on your computer.
This Emacs version contains everything used in the MOOC except the packages [[https://ess.r-project.org/][ESS]] (for working with the R language) and [[https://www.gnu.org/software/auctex/][AUCTeX]] (for editing LaTeX). If you use the configuration described under [[#a-simple-reproducible-research-emacs-configuration][A simple "reproducible research" emacs configuration]], these packages will be installed automatically the first time you start Emacs.
In case you need to run Emacs from the command line (note: this is not required in the MOOC), you have to enter the full path to the executable. Assuming that you have copied =Emacs.app= to =/path/to/emacs=, this is =/path/to/emacs/Emacs.app/Contents/MacOS/Emacs=. Note that if you just type =emacs=, you will use the prehistoric command-line-only version at =/usr/bin/emacs= provided by Apple.
** Windows
Install the =.exe= file from [[http://vgoulet.act.ulaval.ca/][Vincent Goulet]]:
[[https://vigou3.gitlab.io/emacs-modified-windows/][https://vigou3.gitlab.io/emacs-modified-windows/]]. It ships with recent
versions:
- Emacs 26.1
- Org-mode 9.1.13
- ESS 17.11
*** Directory naming conventions
In the following instructions, we refer to your home
directory through the (UNIX) =~/= notation. On Windows, your home
directory should be something like =C:\Users\yourname=. Therefore,
whenever we mention the =~/org/= (resp. the =~/.emacs.d/=) directory this
means we are referring to =C:\Users\yourname\org= (resp.
=C:\Users\yourname\.emacs.d\=).
*** Making R and Python available to the console
When running a command, Windows will look for the command in the
directories indicated in the =PATH= environment variable. If none of
these directories contains the command, Windows will stop and indicate
the command does not exist. To make sure R (which may be in
something like =C:/Program Files/R/R-3.5.1/bin/x64/=) and Python (which may be in something like =C:/Program Files/Python/Python37/=) can
easily be run from Emacs, you should thus configure the =PATH= variable
accordingly.
This requires to go through the "Environment Variable" editor as
explained [[http://sametmax.com/ajouter-un-chemin-a-la-variable-denvironnement-path-sous-windows/][here]].
*** Installing and configuring Matplotlib (graphic python library)
Open an DOS console and type the following command:
#+begin_src shell :results output :exports both
python -m pip install -U matplotlib
#+end_src
[[file:emacs_orgmode_images/install_matplotlib.png]]
Then you will want to deactivate interactive plots in matplotlib. To
this end, you first need to know where the matplotlib configuration is
located. Open a python console the type the following code:
#+begin_src python :results output :exports both
import matplotlib
matplotlib.matplotlib_fname()
#+end_src
[[file:emacs_orgmode_images/matplotlib.png]]
Open the =matplotlibrc= file and modify the line starting with =backend=
to make it =backend : Agg=.
** All platforms: pretty code in HTML export
To have code pretty printing when exporting to HTML, you should
install the =htmlize= package, which is done by opening emacs and
typing the following command:
#+BEGIN_EXAMPLE
M-x package-install RET htmlize RET # where M-x means pressing the "Esc" key then the "x" key
#+END_EXAMPLE
* A simple "reproducible research" emacs configuration
This section is illustrated in a [[https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/9cfc7500f0ef46d288d2317ec7b037b4][video tutorial]] (/"Mise en place
Emacs/Orgmode"/ in French). Watching it before following the
instructions given in this section may help.
Emacs comes with very basic default configuration and it appears like
everyone has its own taste. You will for example find [[https://www.emacswiki.org/emacs/StarterKits][here]] several
default Emacs configurations that reflect the preferences of their
creators. Likewise the configuration of Org-Mode is incredibly
flexible (see for example [[https://orgmode.org/worg/org-configs/index.html][the org-mode website]] for more
references). In the context of this MOOC, we propose you a relatively
minimalist one that is rather "/reproducible research/" oriented by
adding a few org-mode specific configurations.
** Step 0: Backup and download our configuration
The procedure we propose will wipe your already existing custom Emacs
configuration if you have one. *You should thus beforehand make a
backup* of =~/.emacs= and of =~/.emacs.d/init.el= (if these files exist).
#+begin_src shell :results output :exports none
export FILE_LIST="rr_org/init.el rr_org/journal.org"
tar zcf rr_org_archive.tgz $FILE_LIST
#+end_src
#+RESULTS:
Then download [[https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/tree/master/module2/ressources/rr_org_archive.tgz][this archive]] and uncompress it. It contains the
following files and we will refer to them in the following:
#+begin_src shell :results output :exports results
tar tzf rr_org_archive.tgz
#+end_src
#+RESULTS:
: rr_org/init.el
: rr_org/journal.org
Alternatively, [[file:rr_org/][the files you are looking for are available here]].
** Step 1: Prepare your journal
Create an =org/= directory in the top of your home:
#+begin_src sh :results output :exports both
mkdir -p ~/org/
#+end_src
Then copy =rr_org/journal.org= file in your =~/org/= directory. This
file will be your laboratory notebook and all the notes you will
capture with =C-c c= will go automatically go in this file. The first
entry of this notebook is populated with [[https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/blob/master/module2/ressources/rr_org/journal.org][many Emacs shortcuts]] that you
should give a try.
** Step 2: Set up Emacs configuration
Copy =rr_org/init.el= in your =~/.emacs.d/= directory.
Alternatively, if you do not want to mess with your already existing
emacs configuration, you may launch emacs with this specific
configuration with the following command: =emacs -q -l rr_org/init.el=.
** Step 3: Adapt the configuration to your specific needs if required
There are two situations in which it might be necessary to modify
=init.el=:
1. Your network environment forces you to use a proxy for access
to Web sites (HTTP(S) protocol).
2. You have multiple installations of Python or R on your computer,
or they are in unusual places and not fully configured.
If you can run
- "python3" and "R" under Linux and macOS
- "Python" and "R" under Windows
in a terminal without getting an error message, then you should
not have to do anything.
If you do have to modify =init.el=, check the comments at the
beginning of the file for instructions.
** Step 4: Check whether the installation is working or not
Open a new instance of Emacs and open a =foo.org= file. Copy the
following lines in this file:
: #+begin_src shell :session foo :results output :exports both
: ls -la # or dir under windows
: #+end_src
Put your cursor inside this code block and execute it with the
following command: =C-c C-c= (If you are not familiar with Emacs
commands, this one means '=Ctrl + C=' twice)
A =#+RESULTS:= block with the result of the command should appear if it
worked.
In the video, we already have demonstrated the main features and
shortcuts of emacs/org-mode that will help you maintain a document and
benefit from literate programming. The list of features and shortcuts
is demonstrated in the [[https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/blob/master/module2/ressources/rr_org/journal.org][first entry of your labbook]].
** Step 5: Open and play with your journal:
In step 1, you were told to create an journal in
=~org/journal.org=. First you probably want to make sure this file is
stored in a version control system like git. We leave it up to you
to set this up but if you have any trouble, feel free to ask on the
FUN forums.
* A stub of a replicable article
This section is illustrated in a [[https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/9cfc7500f0ef46d288d2317ec7b037b4][video tutorial]] (/"Écrire un article
réplicable avec Emacs/Orgmode"/ in French). Watching it before
following the instructions given in this section may help.
Remember, you need a working LaTeX and R environment. If you can't
open a terminal and run the commands =R=, =pdflatex=, and =python=, you will not be
able to generate this document. When being compiled, the article downloads the
corresponding LaTeX packages so you also need to have a working =wget=
command (alternatively, it uses =curl=). Once downloaded, you may still read the
source ([[https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/blob/master/module2/ressources/replicable_article/article.org]]) and understand how it works though.
#+begin_src shell :results output :exports none
make -C replicable_article/ all ../replicable_article.tgz
#+end_src
#+RESULTS:
Download the following [[https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/replicable_article.tgz][archive]], uncompress it and simply =make= to generate the
article. You should then be able to open the [[https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/blob/master/module2/ressources/replicable_article/article.pdf][resulting article]]. This
is summarized in the following command:
#+begin_src sh :results output :exports both
wget --no-check-certificate -O replicable_article.tgz https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/replicable_article.tgz
tar zxf replicable_article.tgz; cd replicable_article; make ; evince article.pdf
#+end_src
*Possible issues*:
- If the =make= command fails (especially on Mac), it may be because
Emacs or something else is not correctly installed. In that case,
open the article directly with the following command:
#+begin_src sh :results output :exports both
emacs -q --eval "(setq enable-local-eval t)" --eval "(setq enable-local-variables t)" article.org
#+end_src
and export it to pdf with the following shortcut: =C-c C-e l o=
- If it still doesn't work and emacs complains about not finding ESS,
it may be because you installed ESS in your home instead of
system-wide. In that case, try to remove the =-q= in the previous
command line to load your personal emacs configuration.
Finally, when you'll be tired of always re-executing all the source
code when exporting, just look for the following line in [[https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/blob/master/module2/ressources/replicable_article/article.org][article.org]]:
#+BEGIN_EXAMPLE
# #+PROPERTY: header-args :eval never-export
#+END_EXAMPLE
If you remove the =# = in the beginning of the line, it will not be a
comment anymore and will indicate org-mode to stop evaluating every
chunk of code when exporting.
* Emacs tips and tricks
** Cheat-sheets
Learning Emacs and Org-Mode can be difficult as there is an inordinate
amount of shortcuts. Many people have thus come up with
cheat-sheats. Here is a selection in case it helps:
*** Emacs
- [[https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/blob/master/module2/ressources/rr_org/journal.org][Common and step-by-step Emacs shortcuts for our /reproducible research/ configuration]]
- [[https://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf][The official GNU emacs refcard]]
- Two graphical cheat-sheats by Sacha Chua on [[http://sachachua.com/blog/wp-content/uploads/2013/05/How-to-Learn-Emacs-v2-Large.png][how to learn Emacs]] and on
[[http://sachachua.com/blog/wp-content/uploads/2013/08/20130830-Emacs-Newbie-How-to-Learn-Emacs-Keyboard-Shortcuts.png][how to learn Emacs shortcuts]].
*** Org-mode
- [[https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/blob/master/module2/ressources/rr_org/journal.org][Common and step-by-step org-mode shortcuts for our /reproducible research/ configuration]]
- [[https://orgmode.org/worg/orgcard.html][The official org-mode refcard]]
- [[https://orgmode.org/worg/dev/org-syntax.html][The official description of the org-mode syntax]] and a [[https://gist.github.com/hoeltgman/3825415][relatively concise description of the org-mode syntax]].
** Video tutorials
For those of you who prefer video explanations, here is a [[https://www.youtube.com/playlist?list=PL9KxKa8NpFxIcNQa9js7dQQIHc81b0-Xg][Youtube
channel with many step by step emacs tutorials]].
** Additional useful emacs packages
*** Company-mode
[[http://company-mode.github.io/][Company-mode]] is a text completion framework for Emacs. It allows to
have smart completion in emacs for the most common languages. If you
feel this is needed, you should follow the instructions from the
official Web page: [[http://company-mode.github.io/][http://company-mode.github.io/]]
*** Magit
[[https://magit.vc/][Magit]] is an Emacs interface for Git. Its usage is briefly illustrated
in the context of this MOOC in a [[https://www.fun-mooc.fr/courses/course-v1:inria+41016+session02/jump_to_id/9cfc7500f0ef46d288d2317ec7b037b4][video tutorial]]
("/Utilisation Emacs/git/" in French).
It is very powerful and we use it on a daily basis but you should
definitely understand what git does behind the scenes beforehand. If
you feel this would be useful for you, you should follow [[https://magit.vc/screenshots/][this visual
walk-through]] or [[https://www.emacswiki.org/emacs/Magit][this really short "crash course"]]. If you installed the
previous "/reproducible research/" emacs configuration, you can easily
invoke magit by using ~C-x g~.
** Other resources
- [[https://orgmode.org/orgguide.pdf][The compact Org-mode Guide]]
- [[https://github.com/dfeich/org-babel-examples][Many examples illustrating the use of different languages in org-mode]]
See the English version. French translation in progress.
File mode changed from 100755 to 100644
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment