Missing control sequence inserted
On a utilisé \newcommand
ou \renewcommand
sans fournir de nom de commande
(commençant par une barre oblique inverse) comme premier argument.
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}
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. <inserted text> \inaccessible l.2 \renewcommand{L}{\textbf{L}}
Donc il suffit de remettre la barre oblique \L
pour corriger le problème.
Si vous employez les primitives au lieu des macros fournies par , vous pouvez également recontrer ce message.
Ainsi, si vous avez écrit par erreur:
vous obtiendrez:
! Missing control sequence inserted. <inserted text> \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
:
Sources: