调试建议:TeXLive2011 超出 TeX 容量(但 TeXLive2010 不会超出)

调试建议:TeXLive2011 超出 TeX 容量(但 TeXLive2010 不会超出)

我有一种感觉,当我最终弄清楚这个问题的根源时,这将会相当令人尴尬,但是因为我已经为此奋斗了一段时间,所以我发布这个问题更多的是关于调试问题的建议,而不是特定的代码修复。

遗憾的是,我没能想出一个合适的 MWE 来重现这个问题。这是我在解开所有宏后能得到的最接近的答案。希望这里有一些线索可以帮助我弄清楚应该从哪里着手。

背景:

该图的原始(完整)版本和相关文本编译为standalone使用 TeXLive2010 编译为文件,并按要求生成了 6 张图表。然而,我不是能够成功地将此standalone文件合并到更大的文档中(超过 100 页)。当时,我试图制作 MWE,但只能将其简化为特定顺序的复杂图形集合(即,仅更改顺序或图形似乎会产生结果,但不同的顺序会以错误终止 - 我认为它们是TeX Capacity相关的错误)。由于这个 MWE 非常大,我没有在这里发布它,我想等到 TeXLive2011 准备好了。因此,作为一种解决方法,我继续使用这个图形集合不是在我的文档中。这已经是很久以前的事了,而且我的大部分代码都已经更改,因此不确定当前表单是否仍会在使用 TeXLive2010 的大型文档中表现出这种行为。

现在,使用 TeXLive2011,似乎我只需使用这个图形 6 次就可以重现问题。删除其中任何一个实例都会产生输出,因此我需要所有 6 次才能重现问题。

代码摘要:

下面给出的代码按提供的方式进行编译,并使用 TeXLive2010 和 TeXLive2011(截至 2011 年 10 月中旬更新)生成 6 张图表。

该文件01R28-Fig.tex是一个独立文件,它绘制了以下函数的图形(这里的颜色与图形的颜色相对应):

在此处输入图片描述

主文件两次使用独立图形(两个不同的域)来表示三个值,并调整、等a={3,4,5}的值。这里有一些代码实际上应该没有任何效果。我保留了这些代码,因为这是我的宏应该包含的内容,删除其中一些xminxmax种类可以缓解问题。例如,每条路径都使用 进行标记name path global=。由于我删除了访问路径的代码部分,这实际上应该不会产生影响,但确实会产生影响。此外,诸如更改颜色之类的小事也会产生显著的效果。

好的,那么如果此代码编译成功,那么问题到底是什么?好吧,如果我取消注释,\usepackages{MyPackages}我就会遇到问题。此文件不仅包含我包含的软件包,还包含我的所有宏和其他设置信息。不幸的是,我无法将内容缩减MyPackages为可以发布的内容。

我尝试MyPackages通过删除不需要的代码来减少代码量。实际上,这里不需要任何代码(因为这个 MWE 可以编译),但只要包含它,我就会得到TeX 容量超出。如果我尝试将其复制并粘贴到此文件中,问题就会消失。如果我注释掉 所包含文件中看似不相关的代码片段MyPackages,一切似乎都会正常。对我来说,这表明存在一些内存损坏,所以我想知道我还应该尝试什么……

我所知道的关于 TeXLive2011 的唯一具体的事情MyPackages是我需要添加一个\ifdefined\newmdenv(为了能够使用 TeXLive2010 运行它),因为它似乎只适用于 TeXLive2011。

下面\usepackage{MyPackages},我列出了几个\def可用于启用/禁用代码部分的命令。

TeXLive2010:(\usepackage{MyPackages}未注释):

现在,此处发布的 MWE 可与 TeXLive2010 和 TeXLive2011 版本配合使用。但使用MyPackages包含的版本时,我得到了以下行为:

使用 TeXLive2010,我确实得到了期望的输出经过多次失误(并击中返回在每个之后)。为了使这个更容易阅读,我把这些错误信息放在了附录 A以下。

这似乎是enumitem,但这个文件中的列表似乎非常基础,所以不明白序言中的某些内容会产生什么影响。但尽管如此,我确实使用 TeXLive2010 获得了正确的输出。此外,如果我重新运行(保留 .aux 文件),我会收到相同的消息(除了“rerunfilecheck 警告”不再出现)。

TeXLive2011:(\usepackage{MyPackages}未注释):

但是,当我切换到使用 TeXLive2011 时,事情变得很奇怪。第一次(即删除所有 .aux 文件后)运行它时,我收到一个致命错误:

./01R28-Fig.tex:138: TeX capacity exceeded, sorry [main memory size=3000000].
<to be read again> 
                   \unhbox 
l.138 \end{tikzpicture}

./01R28-Fig.tex:138:  ==> Fatal error occurred, no output PDF file produced!
Transcript written on 01R28-V6.log.

并且没有产生任何输出。但我确实获得了所需的输出,如下所示:

  • 在后续运行中(上面的致命错误留下了 .aux 文件),我确实得到了期望的输出经过几次与 TeXLive2010 产生的错误类似但不同的错误。我已将这些错误消息包含在附录 B以下。

    下面的所有后续项目也都要求我跳过这些错误,并且都是初始运行(删除了所有 .aux 文件)。

  • violet如果我仅将redGraphF的两个实例更改为我确实得到了期望的输出。我在序言中能做什么,以至于微小的颜色变化会导致截然不同的结果?

  • 使用\def\NumOfSamples{400}500 代替我确实得到了想要的结果

  • \def\SuppressSpuriousNode{}注释, 对代码的唯一影响是\node at (axis cs: 2,4) [cyan] {\GraphLabelF};添加了这个。同样,注释掉这个后,我确实得到了想要的结果

  • 三张图和两个轴均通过 进行标记name path global。注释掉任何人下列中删除的names path global

    1. \def\AddNamePathOfAxis{}name path global从两个轴上移除
    2. \def\AddNamePathOfGraphF{}
    3. \def\AddNamePathOfGraphG{}

    也会导致文件产生所需的输出

  • 禁用任何通过再次注释掉\def\ShowFigureA{}...\def\ShowFigureF{}产生所需的输出

禁用全部六位数字仍然会产生enumitem错误并产生:

在此处输入图片描述

这是为了说明为什么我无法最小化中的内容MyPackages。在其中一个包含的文件中,MyPackages我有这个宏:

\newcommand{\KERN}{}

如果我评论这一行,我得到期望输出。此宏仅在本文档中未使用的环境中使用,并且除了在最坏的情况下添加一个空格之外,该命令实际上不能做太多事情,但它却彻底改变了行为。

关于我应该去哪里寻找,您有什么想法吗?

如果你真的想解决代码问题,我应该用什么来MyPackages复制这种行为?:-) 颜色的变化对我来说是最令人困惑的。是的,线条确实显示为红色。


以下是代码:

\RequirePackage{etoolbox}
\documentclass{standalone}

\usepackage{standalone}
\usepackage[shortlabels]{enumitem}
\usepackage{xcolor}
\usepackage{xparse}
\usepackage{pgfplots}
\usetikzlibrary{calc,intersections}%
\usepackage{filecontents}

%\usepackage{MyPackages}% The problem is in here somewhere

\def\NumOfSamples{500}% Compiles with 100,200,300, or 400

\def\ShowFigureA{}% These control which of the 6 figures are drawn.
\def\ShowFigureB{}% Commenting out any of these results (i.e.,
\def\ShowFigureC{}% disabling a figure), results in the desired
\def\ShowFigureD{}% output being produced.
\def\ShowFigureE{}% 
\def\ShowFigureF{}% 

\def\SuppressSpuriousNode{}%  Compiles if ANY of these are
\def\AddNamePathOfAxis{}%     commented out.
\def\AddNamePathOfGraphF{}%
\def\AddNamePathOfGraphG{}%


%%-----------------------------------------------------------------
%%-----------------------------------------------------------------
%%-----------------------------------------------------------------

\begin{filecontents}{01R28-Fig.tex}
\documentclass{standalone}
\usepackage{xcolor}
\usepackage{xparse}
\usepackage{pgfplots}
\usetikzlibrary{calc,intersections}%

\begin{document}
\providecommand*{\A}{3}%
\providecommand*{\NumOfSamples}{500}%

\pgfmathdeclarefunction{log}{2}{\pgfmathparse{ln(#2)/ln(#1)}}% log_#2 (#1)

\pgfmathdeclarefunction{GivenF}{1}{\pgfmathparse{(#1)^(\A)}}
\pgfmathdeclarefunction{GivenG}{1}{\pgfmathparse{(\A)^(#1)}}
\pgfmathdeclarefunction{GivenH}{1}{\pgfmathparse{log(\A,(#1))}}

\NewDocumentCommand{\GraphFunction}%
 {O{Style_w} O{Style_w} m m m g}{%
 % [GraphStyle] [LabelStyle] {x-min}{x-max} {f(x)} {<label>}
    \addplot[%
            mark=none,
            domain=#3:#4,
            samples=\NumOfSamples,% Adjust value above
            #1
        ]
        ({x},{#5})
        node [#2] {#6}
        ;
}

\begin{tikzpicture}
%--------------------------------------------------------------
% These are only needed for this file to be compilable standalone
% These are to be set prior to including this figure to customize this
\providecommand*{\XAxisMin}{-1.0}
\providecommand*{\XAxisMax}{3.0}
\providecommand*{\YAxisMin}{-2.0}
\providecommand*{\YAxisMax}{10}

\providecommand*{\DomainMinF}{\XAxisMin}
\providecommand*{\DomainMaxF}{2.2}

\providecommand*{\DomainMinG}{\XAxisMin}
\providecommand*{\DomainMaxG}{2.1}

\providecommand*{\DomainMinH}{0.1}
\providecommand*{\DomainMaxH}{\XAxisMax}

%--------------------------------------------------------------

\newcommand*{\GraphLabelF}{$y = x^{\A}$}
\newcommand*{\GraphLabelG}{$y = \A^x$}
\newcommand*{\GraphLabelH}{$y = \log_{\A} x$}

\begin{axis}[xmin=\XAxisMin, xmax=\XAxisMax, ymin=\YAxisMin, ymax=\YAxisMax]


%^^^^^^^^^^^^^^^^^^^^^^^^^%
% Compiles if \AddNamePathOfAxis is supressed:
%     i.e., the `name path global` settings are disabled. 
%^^^^^^^^^^^^^^^^^^^^^^^^^%
\ifdefined\AddNamePathOfAxis
    \tikzstyle{XAxisNameStyle}=[name path global=XAxisPath]% Craps out with
    \tikzstyle{YAxisNameStyle}=[name path global=YAxisPath]% these settings
\else
    \tikzstyle{XAxisNameStyle}=[]%  Compiles with these settings
    \tikzstyle{YAxisNameStyle}=[]%  i.e., axis are not named
\fi

\addplot [% Name the x axis
    XAxisNameStyle, 
    gray, thick
    ]
    coordinates{(\XAxisMin,0.0) (\XAxisMax,0.0)};


\addplot [% Name the y-axis
    YAxisNameStyle,
    gray, thick
    ]
    coordinates{(0,\YAxisMin) (0,\YAxisMax)};



%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%
% Compiles if we disable the `name path global` setting for GraphF 
%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%
\ifdefined\AddNamePathOfGraphF% Craps out with these settings
    \tikzstyle{GraphFNameStyle}=[name path global=GraphF]%
\else%                          Compiles with these settings
    \tikzstyle{GraphFNameStyle}=[]%
\fi

\GraphFunction[smooth, violet, very thick, 
                GraphFNameStyle,% Bizarre: Need comma or % here
     ]
     [violet, right]
     {\DomainMaxF}{\DomainMinF}
     {GivenF(x)}{\GraphLabelF}


%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%
\ifdefined\SuppressSpuriousNode% Compiles if this is node is suppressed
\else
    \node at (axis cs: 2,4) [cyan]  {\GraphLabelF};
\fi
%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%


%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%
% Compiles if we disable the `name path global` setting for GraphG 
%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^%
\ifdefined\AddNamePathOfGraphG%  Craps out with these settings
    \tikzstyle{GraphGNameStyle}=[name path global=GraphG]%
\else%                           Compiles with these settings
    \tikzstyle{GraphGNameStyle}=[]%
\fi


\GraphFunction[smooth, orange, very thick, 
                 GraphGNameStyle,% Bizarre: Need comma or % here
     ]
     [orange, above right]
     {\DomainMaxG}{\DomainMinG}
     {GivenG(x)}{\GraphLabelG}

\GraphFunction
     [smooth, magenta, very thick]
     [magenta, above right, xshift=1.5ex]
     {\DomainMaxH}{\DomainMinH}
     {GivenH(x)}{\GraphLabelH}

\end{axis}
\end{tikzpicture}
\end{document}
\end{filecontents}% 01R28-Fig

%%-----------------------------------------------------------------
%%-----------------------------------------------------------------
%%-----------------------------------------------------------------


\usepackage{standalone}
\usepackage[shortlabels]{enumitem}
\usepackage{xcolor}
\usepackage{xparse}
\usepackage{pgfplots}
\usetikzlibrary{calc,intersections}%
\usepackage{filecontents}

\newcommand*{\InsertFigure}{\input{01R28-Fig}}

\begin{document}
\begin{enumerate}[(i)]
\item $a=3$

{% Group to keep settings local
\newcommand*{\A}{3}

\ifdefined\ShowFigureA
\begin{minipage}{0.90\linewidth}
    \pgfmathsetmacro{\XAxisMin}{-1.8}
    \pgfmathsetmacro{\XAxisMax}{3.5}
    \pgfmathsetmacro{\YAxisMin}{-5.0}
    \pgfmathsetmacro{\YAxisMax}{50}

    \pgfmathsetmacro{\DomainMinF}{\XAxisMin}
    \pgfmathsetmacro{\DomainMaxF}{\XAxisMax}
    \pgfmathsetmacro{\DomainMinG}{\XAxisMin}
    \pgfmathsetmacro{\DomainMaxG}{\XAxisMax}
    \pgfmathsetmacro{\DomainMinH}{0.001}
    \pgfmathsetmacro{\DomainMaxH}{\XAxisMax}

    \pgfplotsset{
        width=0.80\linewidth, height=6.0cm,
        xtick={-1,0,1,2,3}, scale only axis,
        ytick={0,10,...,40},
        yticklabel style={text width=\widthof{$-20$},align=right},
        xticklabel style={text width=\widthof{$2.4$},align=center}
    }
    \InsertFigure
\end{minipage}
\fi% end \ifdefined\ShowFigureA

\ifdefined\ShowFigureB
\bigskip
\begin{minipage}{0.90\linewidth}
    \pgfmathsetmacro{\XAxisMin}{2.4}
    \pgfmathsetmacro{\XAxisMax}{3.1}
    \pgfmathsetmacro{\YAxisMin}{12.0}
    \pgfmathsetmacro{\YAxisMax}{30.0}

    \pgfmathsetmacro{\DomainMinF}{\XAxisMin}
    \pgfmathsetmacro{\DomainMaxF}{\XAxisMax}
    \pgfmathsetmacro{\DomainMinG}{\XAxisMin}
    \pgfmathsetmacro{\DomainMaxG}{\XAxisMax}
    \pgfmathsetmacro{\DomainMinH}{\XAxisMin}
    \pgfmathsetmacro{\DomainMaxH}{\XAxisMax}

    \pgfplotsset{
        width=0.80\linewidth, height=6.0cm, 
        xtick={2.5,2.6,2.7,2.8,2.9,3.0}, scale only axis,
        ytick={15,20,25},
        yticklabel style={text width=\widthof{$-20$},align=right},
        xticklabel style={text width=\widthof{$2.4$},align=center}
    }

    \InsertFigure
\end{minipage}
\fi% end \ifdefined\ShowFigureB
}
%-----------------------------------------------------------


\bigskip
\item $a=4$

{% Group to keep settings local
\newcommand*{\A}{4}

\ifdefined\ShowFigureC
\begin{minipage}{0.90\linewidth}
    \pgfmathsetmacro{\XAxisMin}{-1.5}
    \pgfmathsetmacro{\XAxisMax}{1.5}
    \pgfmathsetmacro{\YAxisMin}{-0.5}
    \pgfmathsetmacro{\YAxisMax}{4}

    \pgfmathsetmacro{\DomainMinF}{-1.45}
    \pgfmathsetmacro{\DomainMaxF}{2.2}
    \pgfmathsetmacro{\DomainMinG}{\XAxisMin}
    \pgfmathsetmacro{\DomainMaxG}{2.2}
    \pgfmathsetmacro{\DomainMinH}{0.5}
    \pgfmathsetmacro{\DomainMaxH}{\XAxisMax}

    \pgfplotsset{
        width=0.85\linewidth, height=6.0cm, 
        xtick={-1.0,-0.5,0,0.5,1.0}, scale only axis,
        ytick={0,1,2,3},
        yticklabel style={text width=\widthof{$400$},align=right},
        xticklabel style={text width=\widthof{$-4.5$},align=center}
    }
    \InsertFigure
\end{minipage}
\fi% end \ifdefined\ShowFigureC

\ifdefined\ShowFigureD
\bigskip
\begin{minipage}{0.90\linewidth}
    \pgfmathsetmacro{\XAxisMin}{1.5}
    \pgfmathsetmacro{\XAxisMax}{4.5}
    \pgfmathsetmacro{\YAxisMin}{0}
    \pgfmathsetmacro{\YAxisMax}{400}

    \pgfmathsetmacro{\DomainMinF}{\XAxisMin}
    \pgfmathsetmacro{\DomainMaxF}{4.5}
    \pgfmathsetmacro{\DomainMinG}{\XAxisMin}
    \pgfmathsetmacro{\DomainMaxG}{4.4}
    \pgfmathsetmacro{\DomainMinH}{5.0}% Won't plot H here, since this
    \pgfmathsetmacro{\DomainMaxH}{5.1}% is beyond \XAxisMax

    \pgfplotsset{
        width=0.85\linewidth, height=6.0cm, 
        xtick={2.0,2.5,3.0,3.5,4.0}, scale only axis,
        ytick={0,100,200,300},
        yticklabel style={text width=\widthof{$400$},align=right},
        xticklabel style={text width=\widthof{$4.5$},align=center}
    }
    \InsertFigure
\end{minipage}
\fi% end \ifdefined\ShowFigureD
}


%-----------------------------------------------------------
\bigskip
\item $a=5$

{% Group to keep settings local
\newcommand*{\A}{5}%

\ifdefined\ShowFigureE
\begin{minipage}{0.90\linewidth}
    \pgfmathsetmacro{\XAxisMin}{-1.5}
    \pgfmathsetmacro{\XAxisMax}{2.5}
    \pgfmathsetmacro{\YAxisMin}{-5}
    \pgfmathsetmacro{\YAxisMax}{25}

    \pgfmathsetmacro{\DomainMinF}{-1.4}
    \pgfmathsetmacro{\DomainMaxF}{2.2}
    \pgfmathsetmacro{\DomainMinG}{\XAxisMin}
    \pgfmathsetmacro{\DomainMaxG}{2.2}
    \pgfmathsetmacro{\DomainMinH}{0.0001}
    \pgfmathsetmacro{\DomainMaxH}{\XAxisMax}

    \pgfplotsset{
        width=0.80\linewidth, height=6.0cm, 
        xtick={-1,0,1,2,3}, scale only axis,
        yticklabel style={text width=\widthof{$3,400$},align=right},
        xticklabel style={text width=\widthof{$-5.00$},align=center}
    }
    \InsertFigure
\end{minipage}
\fi% end \ifdefined\ShowFigureE

\ifdefined\ShowFigureF
\bigskip
\begin{minipage}{0.90\linewidth}
    \pgfmathsetmacro{\XAxisMin}{4.95}
    \pgfmathsetmacro{\XAxisMax}{5.05}
    \pgfmathsetmacro{\YAxisMin}{2800}
    \pgfmathsetmacro{\YAxisMax}{3400}

    \pgfmathsetmacro{\DomainMinF}{\XAxisMin}
    \pgfmathsetmacro{\DomainMaxF}{\XAxisMax}
    \pgfmathsetmacro{\DomainMinG}{\XAxisMin}
    \pgfmathsetmacro{\DomainMaxG}{\XAxisMax}
    \pgfmathsetmacro{\DomainMinH}{\XAxisMin}
    \pgfmathsetmacro{\DomainMaxH}{\XAxisMax}

    \pgfplotsset{
        width=0.80\linewidth, height=6.0cm, 
        xtick={4.95,5.00,5.05}, scale only axis,
        yticklabel style={text width=\widthof{$3,400$},align=right},
        xticklabel style={text width=\widthof{$5.00$},align=center}
    }
    \InsertFigure
\end{minipage}
\fi% end \ifdefined\ShowFigureF
}
\end{enumerate}
\end{document}

附录 A:TeXLive2010enumitem错误

(/usr/local/texlive/2010/texmf-dist/tex/latex/microtype/mt-eur.cfg)
(./01R28-Fig.tex) (./01R28-Fig.tex) (./01R28-Fig.tex) (./01R28-Fig.tex)
(./01R28-Fig.tex) (./01R28-Fig.tex)
./01R28-V6.tex:364: Undefined control sequence.
\enit@endenumerate ->\enit@after 
                                 \endlist \enit@toks \expandafter {\enit@sav...
l.364 \end{enumerate}

? 
./01R28-V6.tex:364: Undefined control sequence.
\enit@endenumerate ...expandafter {\enit@savekeys 
                                                  }\xdef \enit@afterlist {\d...
l.364 \end{enumerate}

? 
Preview: Tightpage -32891 -32891 32891 32891
[1{/usr/local/texlive/2010/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./01R28-V6.aux)

>Package rerunfilecheck Warning: File `01R28-V6.out' has changed.
(rerunfilecheck)                Rerun to get outlines right
(rerunfilecheck)                or use package `bookmark'.

附录 B:TeXLive2011enumitem错误

./01R28-Fig.tex) (./01R28-Fig.tex) (./01R28-Fig.tex) (./01R28-Fig.tex)
(./01R28-Fig.tex) (./01R28-Fig.tex)
./01R28-V6.tex:364: Undefined control sequence.
\enit@endenumerate ->\enit@after 
                                 \endlist \ifx \enit@series \relax \else \if...
l.364 \end{enumerate}

? 
./01R28-V6.tex:364: Undefined control sequence.
\enit@endenumerate ...\else \ifnum \enit@resuming 
                                                  =\@ne \enit@setresumekeys ...
l.364 \end{enumerate}

? 
./01R28-V6.tex:364: Missing number, treated as zero.
<to be read again> 
                   =
l.364 \end{enumerate}

? 
./01R28-V6.tex:364: Undefined control sequence.
\enit@setresumekeys ...xpandafter {\enit@savekeys 
                                                  }\xdef \enit@afterlist {#2...
l.364 \end{enumerate}

? 
./01R28-V6.tex:364: Undefined control sequence.
\enit@setresumekeys ...it@toks }\ifnum \enit@type 
                                                  =\z@ #3\def \enit@noexcs {...
l.364 \end{enumerate}

? 
./01R28-V6.tex:364: Missing number, treated as zero.
<to be read again> 
                   =
l.364 \end{enumerate}

? 
./01R28-V6.tex:364: Undefined control sequence.
<argument> enit@resume@series@\enit@series 

l.364 \end{enumerate}

? 
./01R28-V6.tex:364: Undefined control sequence.
\enit@endenumerate ...t \fi \ifnum \enit@resuming 
                                                  =\thr@@ \enit@setresumekey...
l.364 \end{enumerate}

? 
./01R28-V6.tex:364: Missing number, treated as zero.
<to be read again> 
                   =
l.364 \end{enumerate}

? 
./01R28-V6.tex:364: Undefined control sequence.
\enit@setresumekeys ...xpandafter {\enit@savekeys 
                                                  }\xdef \enit@afterlist {#2...
l.364 \end{enumerate}

? 
./01R28-V6.tex:364: Undefined control sequence.
\enit@setresumekeys ...it@toks }\ifnum \enit@type 
                                                  =\z@ #3\def \enit@noexcs {...
l.364 \end{enumerate}

? 
./01R28-V6.tex:364: Missing number, treated as zero.
<to be read again> 
                   =
l.364 \end{enumerate}

? 
Preview: Tightpage -32891 -32891 32891 32891
[1{/usr/local/texlive/2011/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
(./01R28-V6.aux)

答案1

main memory- 引用乳胶伴侣的话 - TeX 的一部分,其中存储了宏定义和当前页面的材料。...超过主内存...可能会发生,如果你加载许多包,有大量巨大的延迟浮点数或使用动态生成新宏的宏包。

您可以设置 \tracingstats=2。然后 TeX 将报告主内存状态。... 左边的数字&是专用于大对象的内存,右边的数字是宏定义使用的内存。

关于您的枚举问题:这听起来像是一个分组问题。在 开头设置的定义enumerate在 处丢失\end{enumerate}。我会尝试将 eg 放在\makeatletter\show\enit@savekeys 各个地方,以了解定义何时发生变化。

相关内容