usepackage 命令超出 TeX 容量

usepackage 命令超出 TeX 容量

我收到以下错误消息但不知道原因:

! 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)。

相关内容