Que signifie l’erreur : « You can’t use `spacefactor” in vertical mode » ?#

  • Message : You can't use```spacefactor' in vertical mode

  • Origine : TeX.

indique que l’on ne peut utiliser \spacefactor que lors de la construction d’une liste horizontale. Deux erreurs similaires existent :

  • You can't usespacefactor” in math mode` ;

  • Improper \spacefactor.

Elles surviennent toutes lors de l’utilisation de la commande \@ en dehors d’un paragraphe. Comme de nombreux noms de commandes internes débutent par un@””, cette erreur arrive lorsqu’on les utilise dans le préambule du document (par exemple, \@startsection), sans avoir entouré ce code avec un \makeatletter et un \makeatother. Dans ce cas, voit \@ suivi par les lettres startsection, et à la prochaine utilisation de ce code, il exécute donc \@, ce qui produit finalement l’erreur.

Ce sujet est détaillé dans la question « Que font `@` et `@ :doc: dans les noms des commandes ? </2_programmation/macros/arobase_dans_les_noms_de_macros>` ».


Sources :