Que signifie l’erreur : « There’s no line here to end » ?#
Message :
There's no line here to end
Cette erreur est déclenchée lorsqu’une commande \newline
ou \\
est trouvée
à un endroit où LaTeX ne l’attend pas. Il s’agit en effet d’une commande
de saut de ligne, et elle est inattendue si LaTeX n’est pas en train
de construire un paragraphe, par exemple après \par
ou une ligne vide.
Si l’intention est d’obtenir un espace vertical supplémentaire, vous pouvez consulter la question « Comment insérer un espace vertical dans une page ? ».
1. Cas d’une étiquette de liste#
Un cas courant de cette erreur est celui où vous voulez mettre l’étiquette d’un élément de liste sur une ligne à part, en écrivant par exemple :
\begin{description}
\item[Très longue description] \\
Texte...
\end{description}
La bonne solution est de définir un nouvel environnement similaire
à description
et qui fait exactement ce que vous voulez. Pour corriger
localement ce problème, vous pouvez écrire aussi ceci :
\begin{description}
\item[Très longue description] \leavevmode \\
Texte...
\end{description}
La commande leavevmode
commence un paragraphe, ce qui permet de forcer
une fin de ligne. L’extension expdlist fournit
la même fonctionnalité avec sa commande \breaklabel
tandis que
l’extension mdwlist la fournit avec sa commande \desclabelstyle
.
2. Cas d’un espacement plus large dans un environnement center
#
Vous obtenez ce message d’erreur lorsque vous utilisez l’environnement
center
(ou flushleft
ou flushright
), et que vous voulez une séparation
supplémentaire entre les lignes à l’intérieur de l’environnement :
\begin{center}
Première ligne (titre)\\
\\
Corps du texte centré...
\end{center}
La solution est simple : utilisez la commande \\
comme elle est censée
être utilisée, pour fournir plus qu’un simple espace de séparation
entre les lignes. La commande \\
prend en effet un argument optionnel,
qui spécifie combien d’espace supplémentaire il faut ajouter ; l’effet requis
dans le texte ci-dessus peut être obtenu en écrivant :
\begin{center}
Première ligne (titre)\\[\baselineskip]
Corps du texte centré...
\end{center}
Vous pouvez aussi utiliser \leavevmode
, comme ci-dessus :
\begin{center}
Première ligne (titre)\\
\leavevmode\\
Corps du texte centré...
\end{center}
Cette solution est tout aussi fastidieuse à taper que \\
avec un argument optionnel et ne peut être vraiment recommandée.
Sources
FAQ erreurs - Lettre T, sur le site Developpez.com
LaTeX Companion, 2e édition, Frank Mittelbach, Michel Goossens, Johannes Braams, David Carlisle, Chris Rowley (Pearson, 2006)