Capacidade do TeX excedida no comando usepackage

Capacidade do TeX excedida no comando usepackage

Estou recebendo a seguinte mensagem de erro e não tenho ideia do porquê:

! TeX capacity exceeded, sorry [parameter stack size=10000].
\@fileswithoptions #1->
                       \@ifnextchar [{\@fileswith@ptions #1}{\@fileswith@pti...
l.2 \usepackage{
                pgfplots}
If you really absolutely need more capacity,
you can ask a wizard to enlarge me.


Here is how much of TeX's memory you used:
 5 strings out of 493029
 170 string characters out of 6136233
 119745 words of memory out of 5000000
 3641 multiletter control sequences out of 15000+600000
 3640 words of font info for 14 fonts, out of 8000000 for 9000
 1141 hyphenation exceptions out of 8191

O estranho é que isso acontece mesmo com este trecho de código:

\documentclass[article]
\usepackage{pgfplots}

\begin{document}
\end{document}

Alguma ideia? Desde já, obrigado!

Responder1

Conforme observado nos comentários, o erro é um simples erro de digitação, usando []em vez de, {}mas pensei em mencionar por que você recebe o erro (e por que é difícil fornecer boas mensagens de erro em uma linguagem macro como o TeX).

O uso pretendido foi

\documentclass{article}

com a entrada errada sendo

\documentclass[article]

Teria sido bom ter sinalizado isso como algum tipo de erro de sintaxe de "colchete errado", mas o LaTeX não sabe neste momento que há um erro.

Como todos os argumentos de macro, o nome da classe nãoterestar entre colchetes explícitos, o seguinte funciona sem erros

\newcommand\zzz{article}
\documentclass[article]
\zzz
\usepackage{pgfplots}

\begin{document}
\end{document}

Aqui

 \documentclass[article]\zzz

é o mesmo que

 \documentclass[article]{\zzz}

e \zzzé expandido para articleque seja o mesmo que

 \documentclass[article]{article}

então ele funciona conforme o esperado, com apenas um aviso no final que [article]é uma opção não utilizada:

LaTeX Warning: Unused global option(s):
    [article].

Seu caso é semelhante, exceto que em vez de

   \documentclass[article]{\zzz}

você tem (efetivamente)

   \documentclass[article]{\usepackage}

então o TeX se expande \usepackagena esperança de encontrar um nome de arquivo para passar \documentclasse morre em alguma expansão horrível e não intencional; na verdade, ele termina em um loop infinito até preencher uma pilha interna de manipulação de parâmetros de macro.

a melhor dica é a quebra de linha na mensagem de erro

l.2 \usepackage{
                pgfplots}

que informa que o TeX leu, \usepackagemas não o seu argumento (porque (apenas) \usepackagefoi considerado o argumento para \documentclass).

informação relacionada