我收到以下错误消息但不知道原因:
! 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
)。