Que signifie l'erreur: « TeX capacity exceeded, <explication> » ?

  • Message: TeX capacity exceeded, <explication>
  • Origine: TeX.

\TeX{} a dépassé la capacité de l'un de ses types de mémoires et arrête son travail. Cette erreur est étudiée en détail à la section B.1.1 page 932 du LaTeX Companion FIXME.


! TeX capacity exceeded, sorry [semantic nest size=100].
...
If you really absolutely need more capacity,
you can ask a wizard to enlarge me.

Bien que \TeX suggère, comme toujours, qu'une augmentation de taille faite par un magicien pourrait aider à résoudre cette question de capacité dépassée, ce message résulte le plus souvent d'une commande mal écrite ou d'un mauvais paramètre donné à une commande fonctionnelle.

L'imbrication sémantique (semantic nest) dont \TeX parle correspond à la mécanique d'imbrication (nesting) de boîtes dans d'autres boîtes. Elle est ici débordée à force d'imbrications. Une commande stupide peut facilement produire cet effet :

\def\stupide{\hbox{Voici une chose \stupide à faire}}
\stupide

Utiliser les traces

L'utilisation d'une méthode de trace peut rendre ici service même si elle donne beaucoup de texte à analyser. Dans le cas ci-dessus, cela donne :

\stupide ->\hbox {
                  Voici une chose \stupide à faire}

puis une centaine de lignes de

\stupide ->\hbox {Voici une chose \stupide 
                                           à faire}

Les lignes répétées sont interrompues exactement au niveau de la commande fautive.

Bien sûr, la boucle n'est pas souvent aussi simple que cela — si \stupide appelle \insidieuse qui met elle-même en boîte le contenu de \stupide, l'effet est le même. Des lignes alternées apparaissent alors dans la trace et sont interrompues à des positions alternées.

Une précision

Deux éléments sont en fait utilisés quand vous imbriquez des boîtes. Celui non mentionné jusqu'ici est le niveau de groupement (grouping level). Le fait que vous épuisez l'imbrication sémantique ou le niveau de groupement dépend uniquement de leur taille respective dans la configuration de votre \TeX.


Sources:

generalites/erreurs/t/tex_capacity_exceeded.txt · Dernière modification: 2021/01/12 23:35 par jejust
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0