\chapter{Mémento}
\label{chap-memento}


\begin{introchap}{Vous trouverez} ici quelques informations « en vrac
  » sur les extensions de \LaTeX{}, une liste assez complète des
  fichiers auxiliaires qui gravitent autour de votre fichier source.
  Suivent quelques explications succinctes sur ce merveilleux module
  d'\soft{Emacs} qu'est \soft{Auc\TeX}. Enfin pour ceux qui ont la
  chance de travailler dans un environnement \unix{}, cette annexe
  s'achève sur la configuration d'\soft{Emacs} pour travailler avec le
  correcteur orthographique \soft{Aspell}.
\end{introchap}

\section{Extensions}\label{sec-packages} 

Comme indiqué dans la préface de ce document, \TeX{} et
\LaTeX{} sont des systèmes \emph{ouverts}.  Autour du noyau \LaTeX{}
gravitent un certain nombre de packages standard qui constituent la
base du système. Mais tout utilisateur peut faire évoluer \LaTeX{} en
lui ajoutant des fonctionnalités diverses. On trouve donc une
multitude d'outils sous forme d'extensions (ou \emph{packages} en
anglais) ou sous forme de classe de documents.  Certaines sont
devenues des standards, « toutes » sont disponibles sur les serveurs
dédiés à la distribution de \LaTeX{} (cf.  chapitre~\ref{chap-avous})
ou sur des pages personnelles, d'autres sont fournies avec les Call
for papers et autres author's guides.

Nous vous donnons ici une liste de packages « classiques » et vous
invitons à vous référer à la documentation qui est généralement jointe
au package. Notez que c'est le CTAN (\url{http://www.ctan.org}) qui
fait référence en termes de catalogue de packages.
\begin{packages}
\item[french] utilisé pour « franciser » les documents. Ne
  coupe pas une phrase entre un mot et une double ponctuation. Propose
  aussi quelques commandes axées sur la typographie française (voir
  chapitre~\ref{chap-docfrancais}) ;
  
\item[amsmath] le package pour faire des formules et
  équations perfectionnées ;
  
\item[array] améliore l'utilisation de \ltxenv{tabular} ;
  
\item[hhline] étend les bordures de tableaux de base de \LaTeX{} ;
  
\item[fancyhdr] permet de personnaliser en-tête et pied de page. Jetez
  un coup d'\oe{}il sur ceux de ce manuel ;
 
\item[varioref] propose la commande \ltxcom{vref} à la place de
  \ltxcom{ref}. Celle-ci ajoute « page suivante », « page 12 », ou
  rien du tout selon où se trouve l'objet référencé par rapport à la
  position du renvoi ;
  
\item[ifthen] fournit deux \emph{structures de contrôle} un
  « if then else » et un « do while ». Ce qui permet de faire des
  commandes un peu plus évoluées ;
  
\item[chapterbib] permet d'insérer une bibliographie à
  chaque fin de chapitre ;
  
\item[overcite] écrit les citations bibliographiques sous forme
  d'exposant ;
  
\item[bibunits]  permet de produire des bibliographies composées de
  plusieurs  unités ;
 
% \item[portland] un package tout simple pour pouvoir passer
%   du mode \emph{portrait} au mode \emph{paysage}. Deux commandes sont
%   proposées : \ltxcom{portrait} et \ltxcom{landscape} ainsi que deux
%   environnements portant le même nom.
  
\item[fancybox] propose quatre  variantes de \ltxcom{fbox} :
  \shadowbox{\ltxcom{shadowbox}}, \doublebox{\ltxcom{doublebox}},
  \ovalbox{\ltxcom{ovalbox}} et \Ovalbox{\ltxcom{Ovalbox}}.
  
\item[algorithms] pour écrire des algorithmes sous la forme d'un
  environnement qui peut être flottant ou non ;
  
\item[geometry] une extension permettant de changer les marges et la
  plupart des dimensions intervenant au niveau de la page, de manière
  assez souple ; \index{marge!changements de}
  
\item[url] permet d'écrire des adresses sous forme d'une url, la
  césure est gérée « pour le mieux » ;
  
\item[fancyvrb] propose une version améliorée de l'environnement
  \ltxenv{verbatim} ;

\end{packages}

\section{Les fichiers auxiliaires}
\label{annexe-aux}


Voici la liste des fichiers que vous pourrez trouver sur votre disque
à côté de votre document source. Ces fichiers portent tous une
extension de trois lettres, les voici\footnote{Certains packages
  créent leur propres fichiers auxiliaires comme le package
  \ltxpack{minitoc} et la classe \ltxcls{lettre} ; ils ne sont pas
  mentionnés dans cette liste.} :
\begin{ficaux}
\item[tex] fichier source \LaTeX{} ;
\item[aux] fichier auxiliaire que \LaTeX{} utilise pour résoudre
  les références, entre autres ;
\item[log] le fichier de trace (dit \emph{log file} en anglais)
  contenant les infos de la compilation ;
\item[dvi]  fichier \emph{device independant}, qui va pouvoir être
  affiché ou imprimé selon la situation ;
\item[toc] fichier contenant la table des matières (initiales
  de \emph{table of contents}) ;
\item[lof] fichier contenant la liste des figures (\emph{list of
    figure});
\item[lot] fichier contenant la liste des tables ;
\item[bib] fichier source \BibTeX{} contenant des entrées de
  bibliographie ;
\item[bbl] fichier contenant la bibliographie, peut être généré à
  partir de \BibTeX{} ;
\item[blg] fichier trace de \BibTeX{} ;
\item[idx] fichier des entrées d'index non triées ;
\item[ind] fichier contenant l'index, généralement généré par
  \soft{makeindex} ;
\item[ilg] fichier trace de \soft{makeindex} ;
\item[sty] fichier contenant des définitions de commandes modifiant
  la mise en page, ou fournissant des outils particuliers ;
\item[cls] fichier definissant une classe.
\end{ficaux}
Pour archiver un document \LaTeX{},
\begin{description}
\item[Vous pouvez effacer :] tous les fichiers auxiliaires, les
  fichiers \emph{log}, ainsi que les fichiers de tables des matières
  et listes de figures et tables. 
\item[Vous pouvez aussi effacer :] le fichier \texttt{bbl} si vous êtes
  capable de le générer à partir d'un fichier \texttt{bib} et
  \BibTeX{}. Les fichiers d'index peuvent généralement être effacés
  puisqu'ils sont en principe produits par \soft{makeindex}. Le
  fichier \texttt{dvi} n'est pas indispensable puisque vous êtes censé
  avoir le source \LaTeX{}
\item[Vous devez garder :] le source \LaTeX{} et les éventuels
  fichiers de styles que vous avez définis (\texttt{sty} et
  \texttt{cls}) ; mais si vous en êtes au stade de la définition de
  classe, le conseil est probablement un peu saugrenu...
\end{description}

\section{Auc\TeX}\label{sec-auctex}

\newcommand{\keybind}[1]{\fbox{\texttt{#1}}}
\newcommand{\mnemo}[1]{\underline{#1}}

\AucTeX{} est un module d'\soft{Emacs} qui facilite la saisie de
documents \LaTeX{}. Il est automatiquement chargé lorsqu'on ouvre un
document portant l'extension \texttt{.tex}, \texttt{.sty} ou
\texttt{.cls}. On peut distinguer trois types d'aide dans \AucTeX{} :
\begin{enumerate}
\item l'aide au formatage du source (couleur, indentation,...)
\item les raccourcis clavier pour insérer des commandes ou des
  environnements,
\item l'aide à la compilation.
\end{enumerate}


\subsection{Formatage du source}

Les couleurs et la touche \textsf{tab} jouent le même rôle que dans un
buffer C ou C++. On notera que \keybind{M-q} « formate » un
paragraphe, c.-à-d., découpe automatiquement le paragraphe en lignes de
longueurs à peu près égales.



\subsection{Raccourcis}

\subsubsection{fontes}
\keybind{C-c C-f} (\mnemo{C}hanger \mnemo{F}onte) suivi
de :
\begin{itemize}
\item \keybind{C-e} insère \verb+\emph{}+
\item \keybind{C-b} insère \verb+\textbf{}+
\item \keybind{C-t} insère \verb+\texttt{}+
\item \keybind{C-s} insère \verb+\textsl{}+
\item \keybind{C-c} insère \verb+\textsc{}+
\item ...
\end{itemize}


\subsubsection{Section}
\noindent\keybind{C-c C-s} insère une \mnemo{S}ection en vous
demandant son niveau, son titre et son label dans le minibuffer.

\subsubsection{Commandes et Environnement}

\noindent\keybind{M-Tab}  tente de compléter le nom en cours (\emph{automatic completion}).

\noindent\keybind{C-c RET}  insère une commande.

\noindent\keybind{C-c C-e} insère un \mnemo{E}nvironnement\footnote{
  Pour certains environnements et certaines commandes dont la syntaxe
  est connue par \AucTeX{} il vous sera demandé quelques précisions
  (valeurs des arguments, légendes, format du tableau,...).}.

\noindent\keybind{C-u C-c C-e} change un environnement.

\noindent\keybind{C-c ]} ferme un environnement en ajoutant la
commande \verb+\end+ qui manque.

\subsection{Compilation}

\noindent\keybind{C-c C-c} tente de suivre le cycle de compilation d'un
document, en lançant suivant la situation, \LaTeX{}, \BibTeX{},
\soft{xdvi},...  Notez aussi que \AucTeX{} permet de gérer le
mécanisme du document maître (cf. \ref{sec-science-diviser}). Pour cela il
vous demandera de saisir le nom du document maître lorsque vous
ouvrirez un nouveau document dans \soft{Emacs}. Dans le cas contraire
il faudra expliquer gentiment à Auc\TeX{} qui est le document maître
avec :
\begin{emacscom}
  M-x TeX-master-file-ask «¢rmfamily ou» C-c _
\end{emacscom}
vous devrez alors saisir le nom du fichier maître. En agissant ainsi,
lorsque vous lancerez une compilation avec \keybind{C-c C-c} sur un
des documents « esclaves », c'est sur le \emph{master} qu'elle agira.

\section{\softwi{Aspell}}\label{sec-ispell}


\soft{Aspell} est un correcteur orthographique multilingue qu'on peut
interfacer avec l'éditeur de texte à tout faire \soft{Emacs}. Pour
l'utiliser dans \soft{Emacs}, deux commandes à connaître :
\begin{emacscom}
  M-x ispell-change-dictionary
\end{emacscom}
selectionne la langue du dictionnaire (\texttt{francais} ou
\texttt{english}), et :
\begin{emacscom}
  M-x ispell-buffer
\end{emacscom}
commence une session de correction sur le buffer. Il est également
possible de vérifier l'orthographe d'un seul mot avec la commande :
\begin{emacscom}
  M-x ispell-word «¢rmfamily ou» M-$
\end{emacscom}
%$
\begin{nota}
  À l'heure où j'écris ces lignes, la distribution Debian ne configure
  pas \soft{Emacs} pour utiliser le programme \soft{Aspell} par défaut. Il
  faut donc ajouter dans votre fichier \texttt{.emacs}, la ligne :
  \begin{flushleft}
   \verb+(setq-default ispell-program-name "aspell")+
  \end{flushleft}
\end{nota}
Il est particulièrement utile de noter que l'on peut configurer le
programme \soft{Aspell} pour lui demander explicitement d'ignorer ou
non les arguments des commandes \LaTeX. On pourra par exemple ne pas
vérifier l'argument d'une commande ne contenant pas de français.
Ainsi, si l'on définit la commande :
\begin{ltxcode}
  \newcommand{\bidule}[2]{% commande prenant 2 arguments 
    ... }
\end{ltxcode}
Il suffira d'écrire dans son fichier \verb+~/.aspell.conf+ :
\begin{verbatim}
   add-tex-command bidule pP
\end{verbatim}
pour demander à \soft{Aspell} de vérifier le second paramètre
(\texttt{P}), mais d'ignorer le contenu du premier (\texttt{p}). Pour
ignorer les deux, on aurait écrit :
\begin{verbatim}
   add-tex-command bidule pp
\end{verbatim}

Enfin, \soft{Emacs} dispose également d'un mode de correction de mot «
à la volée\footnote{D'aucuns diront « à la ouôrde »...} » qu'on peut
activer ou désactiver avec la commande :
\begin{emacscom}
  M-x flyspell-mode
\end{emacscom}




%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "../framabook"
%%% End: 

