<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">\chapter{Traitement des erreurs}

\label{chap-erreurs}Les erreurs peuvent Ãªtre nombreuses sous \LaTeX{} et pas toujours Ã©videntes Ã&nbsp; corriger. Tout d'abord, nous appelons \og erreur \fg{} en \LaTeX{} tout bout de code qui nuit Ã&nbsp; la compilation du document et l'empÃªche de se poursuivre. Une erreur ne permet donc pas au compilateur de produire le fichier PDF espÃ©rÃ©.

Ensuite, il est important de savoir que toutes les erreurs qui vont Ãªtre abordÃ©es sont retournÃ©es par \LaTeX{}, suite Ã&nbsp; la compilation. Ces erreurs sont affichÃ©es par \Texmaker{}, dans une fenÃªtre spÃ©cifique tout en bas (bouton \og \verb?Messages/Log? \fg{} en bas Ã&nbsp; gauche pour faire apparaÃ®tre la fenÃªtre \og Informations du compilateur \fg{} si inexistante).

\begin{figure}[H]
\includegraphics[width = \linewidth]{aide_LaTeX1.png}
\caption{Rappel de l'organisation de l'interface de \Texmaker{}}
\end{figure}

\textbf{Quand il y a une erreur, cette fenÃªtre t'indique aussi la ligne de code qui pose problÃ¨me Ã&nbsp; \LaTeX{} pour compiler} (colonne \verb?Line?). 90 \% du temps, c'est sur cette ligne ou dans ses environs qu'il faut relire son code et chercher l'erreur.

Voyons maintenant la liste des erreurs couramment rencontrÃ©es quand tu dÃ©butes avec \LaTeX{}, et mes conseils personnels pour les Ã©viter, synthÃ©tisÃ©e sous forme d'un tableau. \\

\begin{tableaubilan}{0.45\linewidth}{0.45\linewidth}{Les erreurs courantes}{Comment les corriger}
\verb?Missing $ inserted? &amp; 2 cas frÃ©quents : \begin{itemize}[label = \ding{213}, leftmargin = *]
\item oubli de fermer un mode mathÃ©matiques $\Rightarrow$ le fermer avec le symbole \verb?$? manquant ;
\item emploi d'un symbole propre au mode mathÃ©matiques (\verb?^? ou \verb?_? par exemple) $\Rightarrow$ supprimer le \verb?^? inutile ou utiliser la commande \verb?\_? pour afficher un \textit{underscore} en mode texte.
\end{itemize} \\

\verb?Missing } inserted? \par ou \par \verb?I suspect you have? \par \verb?forgotten a `}'? &amp; TrÃ¨s probablement, oubli de fermer une commande par une accolade \verb?}? $\Rightarrow$ Commencer par chercher les erreurs parmi les lignes de codes Ã©crites ou modifiÃ©es depuis la derniÃ¨re compilation. \par Au dÃ©but, \textbf{compiler rÃ©guliÃ¨rement son code} permet de simplifier la correction de cette erreur.\footnote{C'est plus pratique de corriger plein de petites erreurs que de s'arracher les cheveux sur un trÃ¨s grand nombre.} \\ \\

\verb?! Too many }'s.? &amp; Plus rare : oubli d'une accolade ouvrante. MÃªmes conseils que ci-dessus. \\ \\

\verb?There's no line to end here? &amp; Saut de ligne incompris par \LaTeX{} (aprÃ¨s un environnement \verb?center? par exemple). \par $\Rightarrow$ Commencer par regarder le rÃ©sultat sans saut de ligne : certains environnements laissent un peu de blanc avant et aprÃ¨s (comme \verb?center? justement). Autrement, utiliser la commande \verb?\vspace?. \\ \\

\verb?undefined control sequence? &amp; 2 cas possibles : \begin{itemize}[label = \ding{213}, leftmargin = *]
\item oubli d'un Ã©lÃ©ment Ã&nbsp; un endroit, comme une virgule lors d'un espace insÃ©cable (\verb?\13? \textit{vs} \verb?\,13?) ;
	
\item appel d'une commande inexistante ou appel d'une nouvelle commande bien dÃ©finie mais faute de frappe lors de son Ã©criture.
\end{itemize} \par $\Rightarrow$ VÃ©rifier le code et le corriger. \\ \\

\verb?Package inputenc Error:? \par \verb?Unicode char?, suivi Ã©ventuellement d'un caractÃ¨re et de son code UTF-8 &amp; Utilisation d'un caractÃ¨re du clavier interdit avec ce moteur de compilation. \par L'exemple le plus courant : symbole \degres{} (commande \verb?\degres{}? sous \pdfLaTeX{} ; appel ``normal'' au clavier sous \XeLaTeX{}).\footnote{Les moteurs de compilation sont abordÃ©s dans la partie suivante si tu es intÃ©ressÃ©.} \par ~ \par Erreur frÃ©quente si texte copier-collÃ© d'un autre document (Word, PDF, page Internet) \par $\Rightarrow$ Dans un 1\up{er} temps, reprendre tous les accents et les apostrophes.\footnote{Dans ce cas, la fonction \verb?Remplacer? de \Texmaker{} peut se rÃ©vÃ©ler trÃ¨s utile.} \\ \\

\verb?Option clash for package? \par \verb?&lt;nom_package&gt;? &amp; Conflit entre certains packages. \par $\Rightarrow$ Charger les packages dans un ordre bien prÃ©cis. (exemple : package \verb?xcolor? avanr \verb?wallpaper?). \\ \\

\verb?Extra alignment tab has? \par \verb?been changed to \cr? &amp; Erreur dans un tableau : oubli hautement probable d'indiquer un changement de ligne (\verb?\\?). \par $\Rightarrow$ Ajouter le \verb?\\? manquant. \\ \\

\verb?! [...] \begin{document}? \par \verb?ended by \end{&lt;env&gt;}? \par ou \par \verb?! [...] \begin{&lt;env&gt;}? \par \verb?[...] ended by \end{document}? &amp; Environnement mal ouvert ou fermÃ©. TrÃ¨s frÃ©quent Ã&nbsp; cause de l'auto-complÃ©tion. \par $\Rightarrow$ Aller Ã&nbsp; la ligne indiquÃ©e par l'erreur, regarder l'environnement concernÃ©, corriger selon le besoin.
\end{tableaubilan}

VoilÃ&nbsp; dans les grandes lignes les principales erreurs que j'ai recensÃ©es jusqu'Ã&nbsp; prÃ©sent. Avec l'expÃ©rience, tu verras que tu en feras de moins en moins ou que tu les corrigeras trÃ¨s rapidement. 

Sache aussi que tu peux te rendre sur \url{http://fr.wikibooks.org/wiki/LaTeX/\%C3\%80_l\%27aide_!} si tu veux des informations complÃ©mentaires.

\begin{conseil}{Mon conseil le plus important}
DÃ¨s que tu ouvres un \verb?$? ou un \verb?\[? ou un \verb?{? ou un dÃ©limiteur, ferme-le en suivant. Puis, tu reviens en arriÃ¨re et tu Ã©cris ton code. Le nombre d'erreurs devrait diminuer.

L'auto-complÃ©tion de \texttt{Texmaker} est aussi trÃ¨s pratique pour Ã©viter ce genre de dÃ©sagrÃ©ments. 
\end{conseil}

Par ailleurs, je souhaite revenir sur l'erreur \verb?Option clash for package?. Si jamais tu veux tester un nouveau package pour ton rapport ou adapter un code trouvÃ© sur Internet, \textbf{\color{orange!65!red}ne jamais le faire sur ton document final !} C'est le meilleur moyen de perdre du temps (compilation et adaptation du code). Il vaut mieux procÃ©der par Ã©tapes : \begin{enumerate}
\item Copie du code Ã&nbsp; adapter sur un nouveau fichier \verb?.tex? de test, avec juste les packages absolument nÃ©cessaires.

\item 1\up{Ã¨re} compilation pour s'assurer que le code copiÃ© fonctionne. Suppression des Ã©lÃ©ments inutiles et/ou gÃªnants pour la compilation (commandes dÃ©finies par l'utilisateur et non fournies par exemple).

\item Adaptation du code jusqu'Ã&nbsp; obtention du rÃ©sultat souhaitÃ©.

\item Copie du code final dans ton rapport, ajout du/des package(s) requis, compilation et gestions des derniÃ¨res potentielles erreurs.
\end{enumerate}

Tu verras que tu perdras moins de temps Ã&nbsp; compiler, Ã&nbsp; Ã©tudier le rÃ©sultat dans l'affichage \Texmaker{} et tu travailles sur un fichier de test, sans polluÃ© ton rapport. 

\begin{regles}{La rÃ¨gle absolue avec les packages}
Par dÃ©faut, \emph{toujours} charger le package \verb?hyperref? \emph{en dernier} ! (sauf indication contraire : cf. la documentation du package \verb?menukeys? par exemple).
\end{regles}

\vspace{\baselineskip}

Et voilÃ&nbsp;, la premiÃ¨re partie de ce guide est (enfin) terminÃ©e. Toutes mes fÃ©licitations si tu es arrivÃ© jusqu'ici ! J'espÃ¨re avoir pu t'Ãªtre d'une aide quelconque et que mes explications Ã©taient assez claires.

Ce n'est pas absolument pas Ã©vident de dÃ©buter en \LaTeX{}. Et si je commence Ã&nbsp; avoir pas mal de repÃ¨res et d'expÃ©riences, la route est encore longue avant de pouvoir maÃ®triser les innombrables facettes de ce langage. \\

Tu trouveras dans la partie suivante mes notes personnelles sur du code \LaTeX{} plus poussÃ©, pour arriver Ã&nbsp; produire des rÃ©sultats de plus en plus complexes. Je tenais initialement Ã&nbsp; les regrouper dans ce guide pour mon usage personnel mais je me suis rendu compte qu'elles peuvent aussi aider mes lecteurs. \\

\begin{center}
\begin{LARGE}
\bfseries{}Bon courage pour la suite et, surtout, n'oublie pas : \\[\baselineskip]
\LaTeX{}, c'est la vie !
\end{LARGE}
\end{center}</pre></body></html>