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

相關內容