Que signifient les erreurs évoquant « \spacefactor » ?
Les erreurs
! You can't use `\spacefactor' in vertical mode. \@->\spacefactor \@m
ou
! You can't use `\spacefactor' in math mode. \@->\spacefactor \@m
ou bien encore
! Improper \spacefactor.
...
agressent le programmeur qui utilise une commande interne sans prendre de « précaution ». Une commande interne telle que
\@foo
a été définie pour un usage interne à des commandes et non pour être utilisée directement par l'utilisateur dans le document contenant le texte à présenter. Malgré tout, si elle est directement utilisée dans le document de l'utilisateur, cette commande est alors interprétée comme \@
suivie du texte foo
. Et la commande \@
sert alors à définir l'espace de fin de phrase dans certaines circonstances et elle utilise \spacefactor
pour le faire. Ceci explique l'erreur obtenue.
Ce sujet est détaillé dans la question « Que font `\@` et `@` dans les noms des commandes ? ».
Source: '`\spacefactor` complaints'