====== Que signifie l'erreur: « Missing control sequence inserted »? ======
* **Message**: ''Missing control sequence inserted''
* **Origine**: //TeX//.
On a utilisé ''\newcommand'' ou ''\renewcommand'' sans fournir de nom de commande
(commençant par une barre oblique inverse) comme premier argument.
===== Plus précisément =====
Si vous souhaitez par exemple définir la macro ''\L'' pour écrire un « 𝐋 » gras,
la syntaxe correcte est:
\documentclass{article}
\renewcommand{\L}{\textbf{L}}
\begin{document}
L \L
\end{document}
\documentclass{article}
\usepackage{lmodern}
\pagestyle{empty}
\renewcommand{\L}{\textbf{L}}
\begin{document}
\Large L \L
\end{document}
Si vous oubliez la barre oblique dans la définition de la commande, en écrivant
\renewcommand{L}{\textbf{L}}
Vous aurez l'erreur:
! Missing control sequence inserted.
\inaccessible
l.2 \renewcommand{L}{\textbf{L}}
Donc il suffit de remettre la barre oblique ''\L'' pour corriger le problème.
===== Avec “\def” =====
Si vous employez les primitives \TeX au lieu des macros fournies par \LaTeX,
vous pouvez également recontrer ce message.
Ainsi, si vous avez écrit par erreur:
\def{\L}{\textbf{L}}
vous obtiendrez:
! Missing control sequence inserted.
\inaccessible
l.2 \def{
\L}{\textbf{L}}
La primitive ''\def'' attend comme premier argument le nom d'une séquence de contrôle commençant par ''\'' ou un caractère actif.
Tout autre token est invalide, et TeX essaie de s'en sortir en insérant une séquence de contrôle particulière, nommée ''\inaccessible''.
Le message explique bien ce qui s'est passé: TeX s'est arrêté quand il a lu ''{'' après ''\def'';
le token ''{'' en question a été remis dans le flux d'entrée, et pourra éventuellement être lu de nouveau.
Entre ''\def'' et ''{'', TeX a inséré la séquence de contrôle '' \inaccessible''.
Ceci vous permettrait, si vous le souhaitiez, de corriger votre erreur immédiatement, sans interrompre la compilation:
retirez le ''\inaccessible'' en tapant ''1'', puis saisissez ''i\nouvelleSeq'' pour insérer la bonne séquence de contrôle.
Pour être honnête, personne ne corrige ses erreurs en cours de compilation. Il vaut probablement mieux
terminer la compilation en cours en tapant ''x'', et corriger l'erreur dans votre fichier d'entrée.
Pour que ça marche, retirez les parenthèses autour de l'argument de ''\def'':
\documentclass{article}
\def\L{\textbf{L}}
\begin{document}
L \L
\end{document}
\documentclass{article}
\usepackage{lmodern}
\pagestyle{empty}
\def\L{\textbf{L}}
\begin{document}
\Large L \L
\end{document}
-----
//Sources://
* [[https://latex.developpez.com/faq/erreurs?page=M]],
* [[https://www.latex-project.org/help/books/#french|LaTeX Companion, 2e édition]], Frank Mittelbach, Michel Goossens, Johannes Braams, David Carlisle, Chris Rowley (Pearson, 2006) ; ISBN: 978-2-7440-7182-9. Annexe B, //Détecter et résoudre les problèmes//, reproduite avec l'aimable autorisation de l'éditeur.
* [[https://tex.stackexchange.com/questions/121481/declaredocumentenvironment-missing-control-sequence-inserted-inaccessible|DeclareDocumentEnvironment: missing control sequence inserted — \inaccessible]].
{{htmlmetatags>metatag-keywords=(messages d'erreur de LaTeX,définir une commande,définir une macro,nom de commande)
metatag-og:title=(Que signifie l'erreur: Missing control sequence inserted ?)
metatag-og:site_name=(FAQ LaTeX francophone)
}}