Превышена емкость TeX при выполнении команды usepackage

Превышена емкость TeX при выполнении команды usepackage

Я получаю следующее сообщение об ошибке и понятия не имею, почему:

! 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

Странно, что это происходит даже с этим фрагментом кода:

\documentclass[article]
\usepackage{pgfplots}

\begin{document}
\end{document}

Есть идеи? Спасибо заранее!

решение1

Как отмечено в комментариях, ошибка — простая опечатка, []вместо которой используется {}, но я подумал, что стоит упомянуть, почему возникает эта ошибка (и почему сложно выдавать хорошие сообщения об ошибках в макроязыке, таком как TeX).

Предполагаемое использование было

\documentclass{article}

с ошибочным вводом

\documentclass[article]

Было бы неплохо пометить это как синтаксическую ошибку типа «неправильная скобка», но LaTeX на данный момент не знает, что произошла ошибка.

Как и все аргументы макроса, имя класса неиметьбыть в явных скобках, следующее работает без ошибок

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

\begin{document}
\end{document}

Здесь

 \documentclass[article]\zzz

такой же как

 \documentclass[article]{\zzz}

и \zzzрасширяется до articleтого, что это то же самое, что

 \documentclass[article]{article}

поэтому он работает так, как и задумано, с единственным предупреждением в конце о [article]неиспользуемой опции:

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

Ваш случай аналогичен, за исключением того, что вместо

   \documentclass[article]{\zzz}

у вас есть (фактически)

   \documentclass[article]{\usepackage}

поэтому TeX расширяется \usepackageв надежде найти имя файла для передачи \documentclassи умирает в каком-то ужасном непреднамеренном расширении, на самом деле он оказывается в бесконечном цикле, пока не заполнит внутренний стек обработки параметров макроса.

лучшая подсказка — это перенос строки в сообщении об ошибке

l.2 \usepackage{
                pgfplots}

что говорит вам, что TeX прочитал, \usepackageно не его аргумент (потому что (just) \usepackageбыл принят как аргумент для \documentclass).

Связанный контент