Dans la série
LES TUTORIELS LIBRES
présentés par le site FRAMASOFT
Installation de GNU Emacs
sous Window$
Patrice Hardouin
Logiciel : Gnu Emacs
Site : http://www.gnu.org/software/emacs/
Niveau : Débutant
Auteur : Patrice Hardouin
Site de l'auteur : http://patrice.hardouin1.free.fr/
Date de mise en ligne : 12 04 2002
Licence : licence libre GNU/FDL
framasoft
« Partir de Windows pour découvrir le libre... »
www.framasoft.net
Installation de GNU Emacs sous Window$
et configuration pour LATEX 2ε et PHP
(TEXLive, AUCTEX, LATEX2html, php-mode, html-helper-mode et francisation)
Patrice
∗
Hardouin
12 avril 2002
ATTENTION, ce document est en version b´
eta. Il n’est distribu´
e que pour information et comporte
certainement quelques erreurs ou oublis !
Le but de ce document est de vous guider pour installer GNU Emacs sur votre PC sous Window$
puis de le configurer pour utiliser le formidable outil LATEX et le mode PHP. Une fois install´e et
configur´
e, votre Emacs deviendra alors un formidable outil de bureautique et de programmation
Web. Croyez-moi, il n’y a pas plus efficace que GNU Emacs !
L’installation sous Window$ des logiciels libres, tels que l’´
editeur Emacs, n’est pas toujours une
chose simple. GNU Emacs est un ´
editeur tellement performant que l’on peut quasiment tout faire
avec : ´
editer et formatter des textes en LATEX, ´editer des documents HTML, PHP. . . lire et envoyer
des mails. . . Mais cette profusion de fonctionnalit´
es n´
ecessite une lecture approfondie des diff´
erents
fichiers d’installation souvent anglophones et parfois complexes.
Je pense que si vous lisez ces lignes c’est que vous avez d´
ej`
a entendu parler de GNU Emacs et vous
devez savoir qu’il s’agit d’un logiciel d’utilisation r´
ebarbative de prime abord. Mais quel plaisir que de
voir le temps gagn´
e `
a utiliser un logiciel aussi performant, il m´
erite v´
eritablement les quelques heures
pass´
ees `
a comprendre son fonctionnement. Sachez que je ne suis pas informaticien mais enseignant de
Biologie. Si j’ai choisi d’utiliser GNU Emacs c’est qu’il me permet de concevoir rapidement mes cours
et de les transcrire imm´
ediatement en .pdf et .html pour une diffusion sur r´
eseau ou de les imprimer
pour une diffusion papier.
O`
u trouver les archives ?
Comme signal´
e en bas, ce document est libre ainsi que tous les logiciels et documents utilis´
es. Il
ne vous coˆ
utera pas un e de les utiliser. Attention toutefois, ce document ne remplace pas les docs
officielles livr´
ees avec les logiciels que vous allez t´
el´
echarger. Vous devrez vous r´
ef´
erer `
a ces derni`
eres
ainsi qu’`
a d’autres documents ´
ecris pas d’autres utilisateurs et cit´
es au moment o`
u vous en aurez
besoin.
GNU Emacs [7] est un logiciel originellement d´
evelopp´
e sous Linux (le syst`
eme au pingouin !).
Pour l’installer sous Window$ il va falloir t´
el´
echarger les archives win32 (pour Window$ 32 bits : 95,
98. . . ).
Pour bien configurer GNU Emacs il faut t´
el´
echarger AUCTEX [2], le mode PHP [1], le mode HTML-
helper [10] et le fichier d’aide d’Emacs en fran¸
cais [14].
En ce qui concerne LATEX il faut r´ecup´erer le package complet TEXLive [16]. Attention, il s’agit
de l’image iso d’un CDRom complet, soit pr`
es de 650Mo `
a t´
el´
echarger. Certains pr´
ef`
erent utiliser
la distribution MikTEX `a la distribution TEXLive, mais je trouve l’installation plus simple avec ce
dernier et la francisation de LATEX plus ais´ee.
∗Copyright c Patrice Hardouin (patrice@hardouin.nom.fr). Permission est donn´ee de copier, distribuer et modifier
ce document selon les termes de la licence GNU pour les documentations libres, version 1.1, publi´
ee par la Free Software
Fundation (www.fsf.org/copyleft/fdl.html). L’original de ce document est accessible sur http://www.hardouin.nom.fr
1
Je vous conseille de t´
el´
echarger les derni`
eres archives en date afin de garantir le meilleur fonc-
tionnement possible. GNU Emacs et LATEX sont des logiciels remarquablement stables et ´eprouv´es
mais les nouvelles versions apportent des fonctionnalit´
es tr`
es int´
eressantes. Ainsi, la prochaine version
d’Emacs devrait proposer une francisation compl`
ete de son interface. . .
Pour ma part j’ai install´
e GNU Emacs 21.1, AUCTEX 11.11, PHP-mode 1.12 et TEXLive 6. Les
explications qui suivent devraient ˆ
etre valables pour toutes les nouvelles version. L’installation devrait
mˆ
eme se simplifier et je vous conseille donc de bien lire les documents joints aux archives t´
el´
echarg´
ees.
Installer GNU Emacs
L’installation d’Emacs est d´
etaill´
ee dans le site ”Emacs et Gnus sous environnement MS/Windows” [3].
Il n’y a pas besoin de plus d’informations que dans ce document. Arrˆ
etez-vous `
a la r´
ealisation de
votre fichier C:/.emacs ou C:/ emacs. Copier le fichier d’aide d’Emacs [14] sous le nom C:/.../emacs-
2x.x/etc/Tutorial. Ainsi vous aurez l’aide en fran¸cais ; lisez-l`
a, c’est une ´
etape oblig´
ee pour apprendre
`
a utiliser rapidement GNU Emacs.
Installer TEXLive
Une fois t´
el´
echarg´
ee, l’image iso du cdrom peut-ˆ
etre grav´
ee directement sur un CD via n’importe
quel bon logiciel de gravure (comme l’excellentissime Nero Burning Rom). Ensuite, il suffit de placer
le CDRom dans le lecteur pour qu’il lance la proc´
edure d’installation. Attention, si vous choisissez
l’installation compl`
ete, les fichiers ´
etant tr`
es nombreux, vous risquez de passer une bonne heure `
a
regarder votre ´
ecran en attendant la fin de l’installation.
Installer AUCTEX
Il y a une documentation officielle de AUCTEX : ”A much enhanced LATEX mode for GNU Emacs” [15].
Mais pour l’instant, r´
ef´
erons-nous exclusivement au fichier INSTALLATION pr´
esent dans le package.
1. d´
ecompacter l’archive de AUCTEX dans le r´epertoire C:/.../emacs-2x.x/site-lisp/auctex-xx.x
2. ajouter la ligne suivante `
a votre fichier C:/.emacs ou C:/ emacs : (require ’tex-site)
3. copier le fichier C:/.../emacs-2x.x/site-lisp/auctex-xx.x/tex-site.el vers C:/.../emacs-2x.x/site-
lisp/tex-site.el et l’´
editer pour y effectuer des configurations.
4. ´
editer en mˆ
eme temps le fichier C:/.../emacs-2x.x/site-lisp/auctex-xx.x/tex.el sans le modifier
et recopier les passages `
a modifier dans le fichier tex-site.el. Dans mon cas de figure, les passages
de tex.el copi´
es et modifi´
es pour ˆ
etre int´
egr´
es `
a C:/.../emacs-2x.x/site-lisp/tex-site.el sont les
suivants :
;;; Customization:
;;
;; Copy variables you need to change from the start of ‘tex.el’ and
;; insert them here.
;; (defvar TeX-lisp-directory "@AUCDIR"
;;
"*The directory where the AUC TeX lisp files are located.")
;; ajouts Patrice HARDOUIN du mardi 5 f´
evrier 2002
(defvar TeX-lisp-directory "C:/Program Files/emacs-21.1/site-lisp/auctex-11.11/"
"*The directory where the AUC TeX lisp files are located.")
(defcustom TeX-macro-global ’("C:/Program Files/TeXLive/bin/win32/")
"Directories containing the sites TeX macro files and style files.
The directory names *must* end with a slash."
:group ’TeX-file
:type ’(repeat (directory :format "%v")))
(defcustom TeX-command-list
;; You may have to remove the single quotes around the command
;; arguments if you use DOS.
(list (list "TeX" "tex \\nonstopmode\\input %t" ’TeX-run-TeX nil t)
(list "TeX Interactive" "tex %t" ’TeX-run-interactive nil t)
(list "LaTeX" "%l \\nonstopmode\\input{%t}"
’TeX-run-LaTeX nil t)
(list "LaTeX Interactive" "%l %t" ’TeX-run-interactive nil t)
(list "LaTeX2e" "latex2e \\nonstopmode\\input{%t}"
2
’TeX-run-LaTeX nil t)
(if (or window-system (getenv "DISPLAY"))
(list "View" "%v " ’TeX-run-silent t nil)
(list "View" "dvi2tty -q -w 132 %s " ’TeX-run-command t nil))
(list "Print" "%p %r " ’TeX-run-command t nil)
(list "Queue" "%q" ’TeX-run-background nil nil)
(list "File" "dvips %d -o %f " ’TeX-run-command t nil)
(list "BibTeX" "bibtex %s" ’TeX-run-BibTeX nil nil)
(list "Index" "makeindex %s" ’TeX-run-command nil t)
;; (list "Check" "chktex -v3 %s" ’TeX-run-compile nil t)
;; Uncomment the above line and comment out the next line to
;; use ‘chktex’ instead of ‘lacheck’.
(list "Check" "lacheck %s" ’TeX-run-compile nil t)
(list "Spell" "<ignored>" ’TeX-run-ispell-on-document nil nil)
(list "Other" "" ’TeX-run-command t t)
;; Not part of standard TeX.
(list "LaTeX PDF" "pdflatex \\nonstopmode\\input{%t}"
’TeX-run-LaTeX nil t)
(list "Makeinfo" "makeinfo %t" ’TeX-run-compile nil t)
(list "Makeinfo HTML" "makeinfo --html %t" ’TeX-run-compile nil t)
(list "AmSTeX" "amstex \\nonstopmode\\input %t"
’TeX-run-TeX nil t))
"List of commands to execute on the current document.
Each element is a list, whose first element is the name of the command
as it will be presented to the user.
The second element is the string handed to the shell after being
expanded.
The expansion is done using the information found in
TeX-expand-list.
The third element is the function which actually start the process.
Several such hooks has been defined:
TeX-run-command: Start up the process and show the output in a
separate buffer.
Check that there is not two commands running for the
same file.
Return the process object.
TeX-run-format: As TeX-run-command, but assume the output is created
by a TeX macro package.
Return the process object.
TeX-run-TeX: For TeX output.
TeX-run-LaTeX: For LaTeX output.
TeX-run-interactive: Run TeX or LaTeX interactively.
TeX-run-BibTeX: For BibTeX output.
TeX-run-compile: Use ‘compile’ to run the process.
TeX-run-shell: Use ‘shell-command’ to run the process.
TeX-run-discard: Start the process in the background, discarding its
output.
TeX-run-background: Start the process in the background, show output
in other window.
TeX-run-silent: Start the process in the background.
TeX-run-dviout: Special hook for the Japanese dviout previewer for
PC-9801.
To create your own hook, define a function taking three arguments: The
name of the command, the command string, and the name of the file to
process.
It might be useful to use TeX-run-command in order to
create an asynchronous process.
If the fourth element is non-nil, the user will get a chance to
modify the expanded string.
The fifth element is obsolete and ignored."
:group ’TeX-command
:type ’(repeat (group (string :tag "Name")
(string :tag "Command")
(choice :tag "How"
:value TeX-run-command
(function-item TeX-run-command)
(function-item TeX-run-format)
(function-item TeX-run-TeX)
(function-item TeX-run-LaTeX)
(function-item TeX-run-interactive)
(function-item TeX-run-BibTeX)
(function-item TeX-run-compile)
(function-item TeX-run-shell)
(function-item TeX-run-discard)
(function-item TeX-run-background)
(function-item TeX-run-silent)
(function-item TeX-run-dviout)
(function :tag "Other"))
(boolean :tag "Prompt")
(sexp :format "End\n"))))
5. compl´
eter votre C:/ emacs pour pouvoir lancer automatiquement windvi `
a la visualisation de
la compilation LATEX. Les lignes `a ajouter sont les suivantes :
;;
;;
3
;; AucTex mode
;;
;;
(require ’tex-site)
;;
;; suite AucTex mode
;;
(setq TeX-command-list
(list (list "TeX" "tex -interaction=nonstopmode %t" ’TeX-run-TeX nil t)
(list "TeX Interactive" "tex %t" ’TeX-run-interactive nil t)
(list "LaTeX" "latex
-interaction=nonstopmode
%t" ’TeX-run-interactive
nil t)
(list "PDFLaTeX" "pdfopen
%s.pdf & pdfclose
%s.pdf & pdftex
-interaction=nonstopmode -fmt=pdflatex %t"
’TeX-run-LaTeX nil t)
(list "PDFTeX" "pdftex
-interaction=nonstopmode %t"
’TeX-run-LaTeX nil t)
(list "LaTeX Interactive" "%l %t" ’TeX-run-interactive nil t)
(list "LaTeX-2.09" "latex209 ’\\nonstopmode\\input{%t}’"
’TeX-run-LaTeX nil t)
(if (or window-system (getenv "DISPLAY"))
(list "View" "windvi %s" ’TeX-run-background nil nil)
(list "View" "dvi2tty -q -w 132 %s " ’TeX-run-command nil nil))
(if (or window-system (getenv "DISPLAY"))
(list "View Interactive" "%v " ’TeX-run-background t nil)
(list "View Interactive" "dvi2tty -q -w 132 %s "
’TeX-run-command t nil))
(list "PSView" "gsview32.exe
%f " ’TeX-run-background nil nil)
(list "PDFView" "pdfopen %s.pdf " ’TeX-run-background nil nil)
(list "Print" "%p " ’TeX-run-background t nil)
(list "Dvips" "dvips %d " ’TeX-run-background nil nil)
(list "PrintTeX1200" "dvips -x 1200 %d "
’TeX-run-command nil nil)
(list "PrintTeX1100" "dvips -x 1100 %d "
’TeX-run-command nil nil)
(list "Queue" "%q" ’TeX-run-background nil nil)
(list "File" "dvips %d -o %f " ’TeX-run-background t nil)
(list "BibTeX" "bibtex %s" ’TeX-run-BibTeX nil nil)
(list "Index" "makeindex %s" ’TeX-run-command t t)
(list "Check" "lacheck %s" ’TeX-run-compile nil t)
(list "CheckFR" "lacheck %s| grep match" ’TeX-run-compile nil t)
(list "Spell" "<ignored>" ’TeX-run-ispell nil nil)
(list "Other" "" ’TeX-run-background t t)
;; Not part of standard TeX.
(list "Makeinfo" "makeinfo %t" ’TeX-run-compile nil t)
(list "AmSTeX" "amstex-interaction=nonstopmode %t"
’TeX-run-TeX nil t))
)
6. Avec la distribution TEXLive, le package ”french” ne fonctionne qu’avec ”babel”. Je vous
conseille l’en-tˆ
ete suivante pour vos documents LATEX :
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[french]{babel}
\begin{document}
Installer les modes PHP et HTML-Helper
Comme vous ne serez pas sans utiliser le langage html, il faut installer le mode html-helper qui
simplifie bien des choses (une doc est pr´
esente sur le site linux-france [6]). Pour cela, t´
el´
echarger
l’archive, la d´
ecompacter et la placer dans C:/.../emacs2x.x/site-lisp/. Ensuite, il faut t´
el´
echarger le
fichier html-font.el [5] et le placer dans le mˆ
eme r´
epertoire pour avoir les colorations syntaxiques. Puis
ajouter les lignes suivantes au fichier C:/.emacs :
;;
;;
;; HTML-HELPER-MODE
;;
;;
(autoload ’html-helper-mode "html-helper-mode" "Yay HTML" t)
(setq auto-mode-alist (cons ’("\\.html$" . html-helper-mode) auto-mode-alist))
(setq html-helper-build-new-buffer t)
(setq html-helper-address-string
"<a href=\"http://www.hardouin.nom.fr/\">
Patrice HARDOUIN <patrice@hardouin.nom.fr></a>"
)
(setq html-helper-do-write-file-hooks t)
(setq tempo-interactive t)
;;html-helper
;; config html-helper-mode:
4
(autoload ’html-helper-mode "html-helper-mode" "Yay HTML" t)
(setq html-helper-do-write-file-hooks t
html-helper-build-new-buffer t)
(add-hook ’html-helper-load-hook ’(lambda () (require ’html-font)))
(add-hook ’html-helper-mode-hook ’(lambda () (font-lock-mode 1)))
;;; end cfg html-helper-mode
;; association des fichiers html au mode html
(setcdr (assoc "\\.s?html?\\’" auto-mode-alist) ’html-helper-mode)
(setq auto-mode-alist (append ’(("\\.css\$"
. html-helper-mode))
auto-mode-alist))
Une fois t´
el´
echarg´
ee, il suffit de d´
ecompacter l’archive de php-mode dans C:/.../emacs-2x.x/site-
lisp/. Ensuite, il suffit d’ajouter les lignes suivantes `
a votre fichier C:/.emacs ou C:/ emacs comme
indiqu´
e en d´
ebut du fichier php-mode-1xx.el :
;;; PHP-mode
(load-library "php-mode-102")
(add-hook ’php-mode-user-hook ’turn-on-font-lock)
Installer LATEX2html
Pour cela il faut d’abord t´
el´
echarger Perl pour Windows puis t´
el´
echarger le dernier LATEX2html.
Il y a bien un LATEX2html pr´esent dans le CD TEXLive mais il vaut toujours mieux avoir la derni`ere
version car elle prendra toujours mieux en charge les transcriptions LATEX vers html.
Installer le correcteur orthographique Ispell
>> "Patrice" == Patrice HARDOUIN <patrice@hardouin.nom.fr> writes:
Patrice> Est-ce que quelqu’un aurait vu passer une m´
ethode pour utiliser
Patrice> ispell + francais-GUTENBERG avec emacs sous Windows 9x ?
On en a parl´
e au mois d’octobre
ou novembre, il
me semble, et ¸
ca avait
donn´
e
une
conclusion
que
je
devais
pr´
eparer
un
AAD
pour
fr.comp.applications.cygnus, m´
ebon, c’est toujours en projet :)
Patrice> J’ai ispellWin32
3.1.20 et le
dernier pack francais-Gutemberg
Patrice> mais je
n’arrive pas `
a
le faire fonctionner (probl`
eme
du au
Patrice> fait que
je ne peux recompiler
ispell.exe
avec une option
Patrice> particuli`
ere permettant l’indexation en minuscules). Faut-il se
Patrice> r´
esigner `
a utiliser le pack francais-IREQ ?
Non. Il ne faut pas
utiliser cette version l`
a
de ispell qui n’est
pas
compil´
ee avec les bonnes options.
Patrice> Est-ce
que, par
la m^
eme
occasion,
quelqu’un
aurait vu
un
Patrice> document expliquant
dans les grandes lignes
l’utilisation des
Patrice> outils
Gygwin (j’ai t´
el´
echarg´
e
les
fichiers par d´
efaut, j’ai
Patrice> bien un
bash avec quelques
outils linux, mais n’y
a-t’il pas
Patrice> une utilit´
e
particuli`
ere
comme
par
exemple
cr´
eer
des
Patrice> ex´
ecutables windows `
a partir de la version ispell pour linux ?
Oui, mais pas que :)
En ce qui concerne ispell, un binaire d´
ej`
a compil´
e pour cygwin existe et
5
fonctionne tr`
es bien :
ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/
Humblet_Pierre_A/V1.1/ispell-3.2.06-cygwin-1.3-bin.tar.gz
Il suffit de le d´
ecompresser sous / dans bash:
cp ispell-3.2.06-cygwin-1.3-bin.tar.gz /
tar -zxf ispell-3.2.06-cygwin-1.3-bin.tar.gz
Et hop, on a ispell install´
e.
Pour avoir Gutemberg ensuite, le copier dans /tmp
Le d´
ecompresser (tar -zxf idem)
Ensuite, il faut aller modifier le script perl
inclus, pour corriger un
probl`
eme du au fait que, si le binaire est
bien compil´
e avec toutes les
options n´
ecessaires,
une de celles-ci
n’appara^
ıt pas lorsque l’on fait
ispell -vv, ce qui fait planter le script.
Il faut aller modifier les lignes dans le script makehash
(ligne 335 dans ma version)~:
,----
| # Est-ce que ISPELL peut utiliser les caract`
eres accentu´
es ?
| sub OK8bits {
|
my ($Bool);
|
$Bool = 0;
|
foreach $_ (‘$Chemin_Ispell -vv‘) {
|
if (/!NO8BIT/) {
|
$Bool = 1;
|
last;
|
}
|
if (/NO8BIT/) {
|
last;
|
}
|
}
|
$Bool;
| }
‘----
en rempla¸
cant $Bool = 0; par $Bool = 1;
(on doit s^
urement pouvoir corriger autrement, mais comme ¸
ca, ¸
ca marche)
Et hop.
Ensuite lancer le script : ./makehash
Puis copier les dictionnaires `
a l’emplacement indiqu´
e.
6
--
CHC
Conclusion
Vous voyez que ce n’´
etait pas bien compliqu´
e d’obtenir votre GNU Emacs fonctionnel et op´
erationel
pour la mise en page et le web. Des mises `
a jours et des pr´
ecisions devraient ˆ
etre additionn´
ees
r´
eguli`
erement. Le but ´
etant de r´
ealiser un document 100% op´
erationnel et pratique pour tout le
monde.
Lectures n´
ecessaires
1. Premiers pas en Emacs [12]
2. LATEX et BibTEX `a la puissance Emacs [11]
3. Divers Manuels complets et en fran¸cais pour apprendre LATEX. [4]
4. R´
epertoire de docs sur Emacs chez linux-france [8]
Ressources sur Internet
1. LATEX Navigator [9]
2. Ressources LATEX de l’Acad´emie de Poitiers [13]
R´
ef´
erences
[1] Turadg Aleahmad. PHP-mode.el. HTML, http://prdownloads.sourceforge.net/php-mode/, 2001.
[2] AUCTEX. AUCTEX-11.x. FTP, ftp://ftp.dina.kvl.dk/pub/Staff/Per.Abrahamsen/auctex/, 2002.
[3] Christophe Cuq. Emacs et Gnus sous environnement MS/Windows. HTML, http://www.linux-
france.org/article/appli/emacs/Gnus+Emacs/Windows/emacs.html, 2000.
[4] Divers. Manuels pour LATEX. HTML, http://www.ac-poitiers.fr/math/tex/manuels/, 2001.
[5] emacs package. html-font.el. HTML, http://www.nbi.dk/TOOLS/emacs/lisp/html-font.el, 1999.
[6] Linux
France.
Les
packetages
pour
emacs.
HTML,
http://www.linux-
france.org/article/appli/emacs/debutant/intro/emacs-intro-3.html, 2000.
[7] GSF. Emacs-2x.x-fullbin. ftp://ftp.gnu.org/gnu/windows/emacs/latest/, 2002.
[8] linux france.
articles sur emacs.
HTML, http://www.linux-france.org/article/appli/emacs/,
2002.
[9] Loria. LATEX Navigator. HTML, http://tex.loria.fr/, 2002.
[10] Nelson Minar. Html-Helper-Mode. FTP, ftp://ftp.reed.edu/pub/src/html-helper-mode.tar.gz,
1995.
[11] Christophe Pallier. LATEX et BibTEX `a la puissance Emacs. FDL, http://www.pallier.org, 2000.
[12] Christophe Pallier. Premiers pas en Emacs. FDL, http://www.pallier.org, 2000.
[13] Poitiers. TEX et LATEX. HTML, http://www.ac-poitiers.fr/math/tex/, 2002.
[14] Aymeric ‘stack’ Vincent.
TUTORIEL Emacs en fran¸
cais.
HTML, http://www.linux-
france.org/article/appli/emacs/TUTORIAL.fr, 1996.
[15] Kresten Krab Thorup. AUCTEX : A much enhanced LATEX mode for GNU Emacs. HTML,
http://mirrors.sunsite.dk/auctex/www/auctex/doc/, 2002.
[16] TUG. TEXLive 6. FTP, ftp://ftp.loria.fr/pub/ctan/systems/texlive/, 2001.
7