Capacity exceeded [semantic nest …]

! TeX capacity exceeded, sorry [semantic nest size=100].
...
If you really absolutely need more capacity,
you can ask a wizard to enlarge me.
Apesar de o TeX sugerir (como sempre) que um mago pode lhe ajudar aumentando a capacidade, essa mensagem geralmente é resultado de uma macro quebrada ou de parâmetros ruins em uma macro funcional. O “semantic nest” do qual o TeX está falando é o aninhamento de caixas dentro de caixas. Uma macro burra pode provocar o erro facilmente:
\def\silly{\hbox{here's \silly being executed}}
\silly
O rastreio extendido (veja conselhos gerais em Como lidar com erros) realmente ajuda, apesar de ser um tanto longo. No caso acima, o rastreio consiste de
\silly ->\hbox {
                here's \silly being executed}
followed by 100 instances of
\silly ->\hbox {here's \silly 
                              being executed}
As linhas repetidas estão quebradas exatamente na macro transgressora; claro que o loop não precisa ser tão simples assim  — se o \silly chama o \dopy que, por sua vez, encaixota o \silly , o efeito é o mesmo e linhas alternadas do rastreio são quebradas em posições alternadas. Há, na verdade, dois itens sendo consumidos quando você coloca caixas dentro de caixas: o outro é o nível de agrupamento. Se você vai esgotar primeiro o seu semantic nest ou os seus níveis de agrupamento permitidos, depende inteiramente do tamanho relativo dos dois diferentes conjuntos de buffers do seu executável de (La)TeX.


Do you have any question? Ask on: latex.net.br - we love qood questions!