Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
2_programmation:erreurs:t:tex_capacity_exceeded [2021/04/11 09:52] – Fusion de la page française et de la page anglaise. Ajout de liens. yannick.tanguy2_programmation:erreurs:t:tex_capacity_exceeded [2022/07/04 20:26] (Version actuelle) – <> → angle brackets dbitouze
Ligne 1: Ligne 1:
-====== Que signifie l'erreur: « TeX capacity exceeded, <explication»? ======+====== Que signifie l'erreur: « TeX capacity exceeded, explication⟩ »? ======
  
-  * **Message**: ''TeX capacity exceeded, <//explication//>''+  * **Message**: ''TeX capacity exceeded, //explication//''
   * **Origine**: //TeX//.   * **Origine**: //TeX//.
  
Ligne 8: Ligne 8:
   * « [[2_programmation:erreurs:t:tex_capacity_exceeded_nest|semantic nest size]] ».   * « [[2_programmation:erreurs:t:tex_capacity_exceeded_nest|semantic nest size]] ».
  
-===== Le cas usuel =====+Il s'agit d'un reste de l'époque maintenant lointaine où <latex>\TeX</latex> a été écrit. En ces temps lointains, les systèmes d'exploitation n'étaient en général pas capable d'allouer de la mémoire à un programme n'importe quand. Un programme devait donc demander une quantité de mémoire au début de son exécution, et s'en contenter durant tout le cours de son exécution. <latex>\TeX</latex> a donc été écrit pour ne jamais redemander de mémoire au système. Il en prend une quantité fixée au démarrage et n'en redemandera plus jusqu'à la fin. 
 + 
 +Cette façon de faire permet, en outre, de localiser certains problèmes très vite. Un document mal écrit, qui consomme trop de mémoire (une boucle infinie, ou quelque chose d'équivalent) va provoquer rapidement une erreur : au moment où il sera arrivé au bout de la mémoire demandée par <latex>\TeX</latex> -- et non pas au moment où il sera arrivé au bout de la mémoire de la machine et de tout l'espace disque disponible comme mémoire virtuelle.
  
 FIXME Cette erreur est étudiée en détail à la section B.1.1 page 932 du //LaTeX Companion//. FIXME Cette erreur est étudiée en détail à la section B.1.1 page 932 du //LaTeX Companion//.
  
-Bien que <latex>\TeX</latex> suggère, comme toujours, qu'une augmentation de taille faite par un //magicien// (autrement dit un expert) pourrait aider à résoudre cette question de capacité dépassée, ce message résulte le plus souvent d'une commande mal écrite, d'une ligne trop longue, d'accolades mal appariées ou d'un mauvais paramètre donné à une commande fonctionnelle. Notez que des lignes trop longues sont souvent introduites lorsque les fichiers sont transférés de manière incorrecte entre les systèmes d'exploitation et que les fins de ligne ne sont pas bien traitées (le signe révélateur d'une erreur de ligne trop longue est la plainte que le valeur ''buf_size'' a été dépassée). +===== Le cas usuel ===== 
 + 
 +Bien que <latex>\TeX</latex> suggère, comme toujours, qu'une augmentation de taille faite par un //magicien// (autrement dit un expert) pourrait aider à résoudre cette question de capacité dépassée, ce message résulte souvent d'autres causes : 
 +  * cela peut venir d'une commande mal écrite, d'une ligne trop longue, d'accolades mal appariées ou d'un mauvais paramètre donné à une commande fonctionnelle. Notez que des lignes trop longues sont souvent introduites lorsque les fichiers sont transférés de manière incorrecte entre les systèmes d'exploitation et que les fins de ligne ne sont pas bien traitées (le signe révélateur d'une erreur de ligne trop longue est la plainte que le valeur ''buf_size'' a été dépassée) 
 +  * cela peut également de documents bien écrits mais contenant des pages très compliquées ou de grandes quantités de fontes ou d'imagesPar exemple, Si le message précise ''[pool size=...]'' et que le document comporte un grand nombre de flottants, les buffers de <latex>\TeX</latex> sont saturés. Une solution consiste alors à vider régulièrement ces buffers en forçant la place des flottants (par des ''\clearpage'' par exemple pour laisser la place nécessaire aux figures...) 
  
 ===== Le cas rare ===== ===== Le cas rare =====
Ligne 18: Ligne 25:
 Si vous avez vraiment besoin d'étendre la capacité de <latex>\TeX</latex>, la méthode appropriée dépend de votre installation. Il n'est pas nécessaire (avec les implémentations <latex>\TeX</latex> modernes) de changer les valeurs par défaut dans la source WEB de Knuth. Cette modification est en effet une manipulation pour les experts : il faut utiliser un fichier de modification pour changer les valeurs définies dans le module 11, recompiler <latex>\TeX</latex> et régénérer tous les fichiers de format. Si vous avez vraiment besoin d'étendre la capacité de <latex>\TeX</latex>, la méthode appropriée dépend de votre installation. Il n'est pas nécessaire (avec les implémentations <latex>\TeX</latex> modernes) de changer les valeurs par défaut dans la source WEB de Knuth. Cette modification est en effet une manipulation pour les experts : il faut utiliser un fichier de modification pour changer les valeurs définies dans le module 11, recompiler <latex>\TeX</latex> et régénérer tous les fichiers de format.
  
-Les implémentations modernes permettent de modifier de manière semi-dynamique les tailles des différents éléments de la mémoire de <latex>\TeX</latex>Certains (comme emTeX) permettent de modifier les paramètres de mémoire dans les commutateurs de ligne de commande au démarrage de <latex>\TeX</latex>. Le plus souvent, un fichier de configuration est lu pour spécifier la taille de la mémoire : +Les implémentations modernes permettent de modifier de manière semi-dynamique les tailles des différents éléments de la mémoire de <latex>\TeX</latex>Celle-ci est en effet divisée en plusieurs zones, chacune de taille fixée au début de la compilation.  Par exemple, la zone qui sert à stocker les fontes n'est pas la même que celle qui stocke les noms de macros ou les noms de fichiers, ou encore les contenus des pages, etc.  Selon celle qui a saturé pendant la compilation, il faut adapter certaines tailles.  Certaines distributions (comme emTeX) permettent de modifier les paramètres de mémoire dans les commutateurs de ligne de commande au démarrage de <latex>\TeX</latex>. Le plus souvent, un fichier de configuration est lu pour spécifier la taille de la mémoire : 
-  * sur les systèmes basés sur ''web2c'' (TeX Live, MikTeX), ce fichier s'appelle ''texmf.cnf'' ;+  * sur les systèmes basés sur ''web2c'' (TeX Live, MikTeX), ce fichier s'appelle ''texmf.cnf''. Ainsi, par exemple, si le message d'erreur précise ''[main memory size=...]'', on peut augmenter la valeur des variables ''extra_mem_top'' et/ou ''extra_mem_bot'' (à la rigueur la valeur de ''main_memory'' mais il faudra alors refaire les formats) ;
   * sur les autres distributions, il vous faudra lire la documentation de celle-ci pour trouver les fichiers à éditer).   * sur les autres distributions, il vous faudra lire la documentation de celle-ci pour trouver les fichiers à éditer).
-  + 
-Presque invariablement, après un tel changement, les fichiers de format doivent être régénérés après avoir changé les paramètres de la mémoire. +Presque invariablement, après un tel changement, les fichiers de format doivent être régénérés après avoir changé les paramètres de la mémoire.
  
 ----- -----
Ligne 31: Ligne 38:
  
 {{htmlmetatags>metatag-keywords=(messages d'erreur de LaTeX,taille mémoire de LaTeX,étendre la mémoire,augmenter la mémoire,imbrication) {{htmlmetatags>metatag-keywords=(messages d'erreur de LaTeX,taille mémoire de LaTeX,étendre la mémoire,augmenter la mémoire,imbrication)
-metatag-og:title=(Que signifie l'erreur: « TeX capacity exceeded, <explication»)+metatag-og:title=(Que signifie l'erreur: « TeX capacity exceeded, explication⟩ »)
 metatag-og:site_name=(FAQ LaTeX francophone) metatag-og:site_name=(FAQ LaTeX francophone)
 }} }}
2_programmation/erreurs/t/tex_capacity_exceeded.1618134754.txt.gz · Dernière modification : 2021/04/11 09:52 de yannick.tanguy
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0