Apprendre LaTeX grâce à Emacs+Auctex
Emacs-Auctex Mini-Howto
Virginie Vacca, virginie@parinux.org
Table des matières
- Brève introduction à LATEX
- Créer son premier document avec AucTEX
- Emacs et AucTEX, installation et pré-requis
- Deux commandes de base pour créer son premier document
- Une seule commande pour tout compiler !
- Aller un peu plus loin...
- Autres commandes et raccourcis utiles
- Et les packages, comment ça marche ?...
- Les liens qui sauvent...
- À propos de ce document...
Brève introduction à LATEX
Structure d'un document LATEX
En-têtes et packages
Le principe d'un document LATEX est simple : on commence par définir la ``classe'' du document (article, lettre, ...), et on ajoute dans les headers, tels les metanames de documents HTML, un ensemble de packages additionnels selon les besoins. par exemple, amsmath pour pouvoir écrire des équations, babel pour le choix des langues, Inputenc pour la gestion des caractères accentués (entre autres) etc. On peut également ajouter dans ces en-têtes un certains nombres de propriétés telles que le nom de l'auteur, le titre du document, etc.
Corps du document : environnements et sections
Au sein de ce document sont ensuite définis un certains nombres d'environnements : ``itemize'' pour les listes à puces, ``enumerate'' pour les listes numérotées, ``center'', ''flushright'' et ``flushleft'' pour definir l'alignement du texte etc.
Les sections et sous-sections fonctionnent à la manière de SGML : section, subsection, subsubsection, paragraph... et leur numérotation se fait biensûr de manière automatique. La table des matières est générée avec la balise tableofcontents.
Intuitif, non ? :)
Enfin, les commentaires en LATEX sont tout simplement précédées d'un %. Par conséquent, vous l'aurez compris, l'usage de ce symbole dans un texte devra être précédé d'un antislash, de même qu'un certain nombres d'autres, dits ``caractères spéciaux''.
Et pour finir, une note concernant les images : celles-ci doivent être préalablement converties en EPS (encapulated postcript). Pour ce faire, utilisez la commande convert du package ImageMagick :
convert mon_image.jpg mon_image.eps
Exemple commenté de document LATEX
\documentclass[a4paper,11pt]{article}
% ci-dessous l'ensemble des packages additionnels
% Notons surtout babel et inputenc :
% babel permet de traduire en toutes sortes de langues un tas de choses
% générées automatiquement par latex (abstract -> résumé, date, etc.)
% Fontenc, avec l'option latin1, permet d'interpréter l'ensemble des caractères
% accentués, bien pratique, pour éviter les notations latex traditionnelles :)
\usepackage[dvips]{graphicx}
\usepackage[francais]{babel}
\usepackage[latin1]{inputenc}
\usepackage{palatino}
\usepackage[dvips]{color}
\title{Mon beau document}
\author{\textsc{Moi}}
\begin{document}
% Ici commence le corps du document
\maketitle
% maketitle génère un beau titre à partir des headers et de la date du jour.
\begin{center}
\includegraphics[width=3cm]{mon_logo}
\end{center}
% ici l'image sera générée à partir du fichier mon_logo.eps,
% dans le répertoire courrant. Il n'est pas nécessaire de préciser
% l'extension.
\begin{abstract}
Ici je note un résumé du document... il apparaitra en petites polices
italiques, précédé de ``abstract'' ou ``résumé'' selon qu'on a sélectionné
l'option ``english'' ou ``français'' de Babel.
\end{abstract}
\newpage
\tableofcontents
\newpage
% la commande newpage est l'équivallent d'un saut de page.
\section{Une section}
\subsection{Une sous-section}
Pour que toutes ces balises ne soient pas interpétées par LaTeX, j'ai tout
simplement utilisé l'environnement ``verbatim''.
\subsection{Une deuxième sous-section}
Encore du texte...
\textit{Du texte en italique}
\begin{center}
Un truc centré.
\end{center}
\end{document}
Pourquoi Emacs et AucTEX ?
Comme psgml pour SGML, aucTEX est un module offrant à Emacs un grand nombre de fonctionnalité pour écrire, valider et compiler des documents LATEX. Son intérêt ?
- en faciliter l'accès aux débutants grâce à un menu LATEX permettant, sous X, de se familiariser avec l'ensemble des fonctions de base ;
- pour les plus avancés, gagner un temps fou grâce à une multitude de raccourcis relativement intuitifs ;
Créer son premier document avec AucTEX
Emacs et AucTEX, installation et pré-requis
emacs21 (de préférence)
auctex
task-tex
tetex-base
tetex-bin
tetex-extras
Note : tetex-bin et tetex-base sont compris dans task-tex si j'ai bonne mémoire, à vérifier...
Dans son .emacs, simplement ajouter 1 :
(require 'tex-site)
Deux commandes de base pour créer son premier document
Les deux commandes à retenir (lesquelles peuvent toujours être retrouvées à partir des menus ;) :
- Créer un nouveau document latex : C-c C-f exemple.tex. L'extension .tex est importante, c'est celle qui va indiquer à Emacs de charger Auctex, et faire apparaitre un menu ``Latex'' ;
- Définir la ``classe'' du document : C-c C-e
C-c C-e
Environment type: (default document)
<RET>
Document style: (default article)
<TAB>
Click <mouse-2> on a completion to select it.
In this buffer, type RET to select the completion near point.
Possible completions are:
article book
letter report
slides
OK, on garde article ...
Options:
Là, on peut définir les options ou simplement taper RET.
Options: a4paper,11pt
Résultat :
\documentclass[a4paper,11pt]{article}
\begin{document}
\end{document}
Le curseur est automatiquement placé au bon endroit, on peut commencer à taper son texte.
\documentclass[a4paper,11pt]{article}
\begin{document}
Ceci est un document latex tout pas beau, mais un document latex quand même.
\end{document}
Une seule commande pour tout compiler !
*LA* commande à ne jamais oublier est C-c C-c :
C-c C-c
Command: (default LaTeX)
<RET>
Le document est compilé. S'il n'a pas été préalablement sauvegardé (C-x C-s), emacs proposera de le faire avant de procéder à la compilation. Il peut également arriver, dans le cas de documents un tant soit peu complexes, qu'emacs recommande une deuxième compilation. Dans ce cas simplement renouveler la manip.
Et là on se retrouve avec 3 fichiers supplémentaires dans le répertoire courant :
exemple.aux
exemple.log
exemple.dvi
Pour visualiser le fichier dvi, retaper C-c C-c, et là magique, emacs comprend tout seul et lance xdvi (par défaut), pour la visualisation :)
Command: (default View)
<RET>
Ensuite, toujours C-c C-c, mais cette fois, emacs ne peut plus décider pour nous de l'output final, tapons <TAB> pour explorer les différentes possibilités :
Command: (default View)
<TAB>
Click <mouse-2> on a completion to select it.
In this buffer, type RET to select the completion near point.
Possible completions are:
AmSTeX BibTeX
Check File
Index LaTeX
LaTeX Interactive LaTeX PDF
LaTeX2e Makeinfo
Makeinfo HTML Other
Print Queue
Spell TeX
TeX Interactive View
Parmi les plus utiles au début : File génère un fichier PS dans le répertoire courant, et Latex PDF un fichier PDF. facile non ?:) En plus, emacs indique à chaque fois la commande utilisée, ce qui permet d'apprendre au passage comment se compile un document latex en ligne de commande.
Enfin, pour convertir notre fichier en HTML, taper directement la commande dans un term ou bien passer par emacs :
C-c C-c
<TAB>
File
File command: latex2html exemple.tex
Aller un peu plus loin...
Autres commandes et raccourcis utiles
Pour connaitre l'ensemble des raccourcis disponibles sous auctex, procéder comme pour tout module emacs :
C-h m
Grâce auquel on trouvera notamment les raccourcis suivants, particulièrement utiles, qui permettent sur simple <TAB> d'accéder à l'ensemble des options et choix possibles :
- tous les niveaux de section/paragraphes : C-c C-s TAB
- tous les environnements disponibles : C-c C-e TAB
- toutes les macros de base : C-c RET TAB
- ajouter un item dans une liste : ESC-RET
- commenter un paragraphe : C-c %
- définir un style de police : C-c C-f h donne l'ensemble des choix. Par exemple, C-c C-f C-t permettra d'insérer du texttt, c'est-à-dire dans le style machine à écrire.
Et les packages, comment ça marche ?...
Une fois de plus, Emacs va nous surprendre :
Un simple C-c RET TAB et le choix de usepackage permet d'afficher la liste des packages disponibles, et la completion marche biensûr au même titre que pour les environnements ou les sections.
Biensûr, celà suppose quand même que l'on sache de quoi on a besoin et/ou à quoi
correspondent ces différents packages, quelles options leur adjoindre etc...
Voici quelques astuces qui devrait répondre aux principales questions qu'un
débutant est en droit de se poser :)
- De quels packages ais-je besoin ?..
C'est la question la plus difficile...pour celà, je vous recommande la FAQ Latex grappa, http://www.grappa.univ-lille3.fr/FAQ-LaTeX/. Particulièrement riche et régulièrement mise à jour, elle répond à la plupart des questions que l'on peut se poser et indique, si besoin, une sélection de packages à utliser pour utiliser telle ou telle commande indispensable...
- Où (cc) puis-je les trouver ?..
D'abord sur votre propre système, surtout si vous avez installé tex-extras qui en regorge. Pour les repérer : locate latex | grep sty ou find /usr/share/ -name ``*.sty''. Ces packages portent en effet l'extension sty et sont dans un répertoire ou sous-répertoire latex2, ils sont donc facile à repérer :).
Une fois le package repéré, simplement coller son nom de fichier (sans l'extension) dans les en-têtes du document (Cf exemple du début).
- Et s'il n'est pas présent sur mon système ?..
Dans ce cas il vous reste CTAN, The Comprehensive Tex Archive Network, *LA* mine d'or de tout latexien proselythe qui se respecte : http://www.ctan.org. Une recherche par mot clé dans l'archive permet de retrouver toutes sortes de packages sur son nom ou sa description (CV, business cards etc).
- OK j'ai trouvé mon package sur ctan.org...où (cc) je le met maintenant ?..
Tous les tarballs dispo sur CTAN comporte en général un fichier .ins. Ce fichier, une fois compilé, fourni en principe un ou plusieurs styles ou packages (.sty), un exemple d'utilisation présentant les différentes commandes (exemple.tex).
Compiler le fichier :latex package.ins
Et c'est tout. Pour exploiter ce package, on peut s'inspirer de l'exemple fourni ou bien des recommandations glanées dans la FAQ Grappa. Il suffit ensuite de compiler notre document latex dans le répertoire où se situe le ou les fichiers .sty correspondant (sinon latex ne les trouvera pas au moment de la compilation).
S'il s'agit de packages que l'on a l'intention d'utiliser fréquemment, il est possible de les intégrer de manière définitive à notre système, pour ne plus avoir à compiler notre fichier dans le même répertoire que les sty, comme ci-dessus.
Pour celà, il faut placer les styles et les indexer de telle manière que latex sache les trouver tout seul au moment de la compilation (via emacs ou en ligne de commande, peu importe). Par exemple, en root :
% mkdir /usr/share/texmf/tex/latex/perso/
% texhash /usr/share/texmf/tex/latex/perso/
texhash: Updating /usr/share/texmf/tex/latex/perso/ls-R...
tex
hash: Done.
% texhash
texhash: Updating /usr/local/lib/texmf/ls-R...
texhash: Updating /usr/share/texmf/ls-R...
texhash: Updating /var/spool/texmf/ls-R...
texhash: Done.
Les liens qui sauvent...
- FAQ LATEX, http://www.grappa.univ-lille3.fr/FAQ-LaTeX/ ;
- CTAN, http://www.ctan.org ;
- Le manuel Auctex, http://mirrors.sunsite.dk/auctex/www/auctex/doc/ ;
- fr.comp.text.tex, *LE* newsgroup francophone sur LATEX, une vraie mine d'or d'information, réponses pertinentes garanties sous 2 heures :) ;
- Un très bon guide d'introduction à LATEX : http://www.admc.ulg.ac.be/private/~Frederic/Latex/html/laframes.html ;
À propos de ce document...
Emacs-Auctex Mini-HowtoThis document was generated using the LaTeX2HTML translator Version 2K.1beta (1.48)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split=0 -no_navigation parinux-TP-latex.tex
The translation was initiated by maab on 2003-01-30
Notes
- ... ajouter1
- Sous debian, je crois même que celà se fait automatiquement à l'install...
- ... latex2
- Sous debian : /usr/share/texmf/tex/latex/*
maab 2003-01-30
Medintux et les logiciels libres pour le secteur médical
Emacs
Hébergement de sites web : une comparaison
debutant.odt