autonum 软件包需要过时的 etex 软件包

autonum 软件包需要过时的 etex 软件包

使用最新的 TL 2015,以下是最小示例:

% \RequirePackage{etex}
\documentclass{article}

\usepackage{l3keys2e}
\usepackage{titlesec}
\usepackage{adjustbox}
\usepackage{footmisc}
\usepackage{booktabs}
\usepackage{mathtools}
\usepackage{microtype}
\usepackage{enumitem}
\usepackage{bookmark}
\usepackage{glossaries}
\usepackage{autonum}

\begin{document}
\end{document}

不起作用:

Package etex Warning: Extended allocation already in use.
(etex)                etex.sty code will not be used.
(etex)                To force etex package to load, add
(etex)                \RequirePackage{etex}
(etex)                at the start of the document.

)
! Undefined control sequence.
l.905 \globcount
                \ettl@for@nested
? 
! Undefined control sequence.
l.905 \globcount\ettl@for@nested

?

因为autonum包。但是,它一旦开始工作:

  • 之前删除的任何一个包autonum(与我的情况无关:我需要这些包),
  • 或者autonum在其他包之前加载(与我的情况无关:我还需要cleveref作为最后一个加载的包,但有两个例外:hypdvips和... autonum),
  • etex或者像上面的警告中建议的那样加载了该包(但这个包现在被认为是过时的)。

你明白发生了什么吗?etex虽然它已经过时了,但使用起来还安全吗?

答案1

autonum包加载etextools,我不建议使用这个包,据我记得,它已被其作者宣布为“已死”。

由于奇怪的原因,加载后etex,包裹上有一个\globcount\ettl@for@nested可能\newcount从一开始就存在的声明。

解决方法:定义\globcount\newcount在加载之前autonum

\documentclass{article}

\usepackage{l3keys2e}
\usepackage{titlesec}
\usepackage{adjustbox}
\usepackage{footmisc}
\usepackage{booktabs}
\usepackage{mathtools}
\usepackage{microtype}
\usepackage{enumitem}
\usepackage{bookmark}
\usepackage{glossaries}

%\expandafter\def\csname [email protected]\endcsname{3000/12/31}
\let\globcount\newcount
\usepackage{autonum}

\begin{document}
\end{document}

%如果您还想摆脱有关 的警告,请取消注释以 开头的行etex

相关内容