以下问题在 TexLive 2012 中不存在。我能够使用从 CTAN ISO 文件解压的 TeXLive 2014 和完全更新的相同 TeXLive 2014 重现此问题。这些测试是在 Windows 系统上进行的。
以下示例文件中的代码Test.tex
:
\documentclass{article}
\usepackage[alwaysadjust]{paralist}
\begin{document}
\begin{enumerate}
\item hello
\end{enumerate}
\end{document}
经过编译(以完全更新的系统为例),我得到:
Command Line: pdflatex.exe -shell-escape --interaction=errorstopmode --synctex=-1 "Test.tex"
Startup Folder: E:\letre
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014/W32TeX) (preloaded format=pdflatex)
\write18 enabled.
entering extended mode
(./Test.tex
LaTeX2e <2014/05/01>
Babel <3.9k> and hyphenation patterns for 79 languages loaded.
(c:/texlive/2014/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(c:/texlive/2014/texmf-dist/tex/latex/base/size10.clo))
(c:/texlive/2014/texmf-dist/tex/latex/paralist/paralist.sty) (./Test.aux)
! Undefined control sequence.
<argument> ...umctr \endcsname \@enum@widestlabel
\relax
l.9 \item
hello
?
Process has been terminated ...
去掉\usepackage[alwaysadjust]{paralist}
不会产生任何故障:
Command Line: pdflatex.exe -shell-escape --interaction=errorstopmode --synctex=-1 "Test.tex"
Startup Folder: E:\letre
This is pdfTeX, Version 3.14159265-2.6-1.40.15 (TeX Live 2014/W32TeX) (preloaded format=pdflatex)
\write18 enabled.
entering extended mode
(./Test.tex
LaTeX2e <2014/05/01>
Babel <3.9k> and hyphenation patterns for 79 languages loaded.
(c:/texlive/2014/texmf-dist/tex/latex/base/article.cls
Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
(c:/texlive/2014/texmf-dist/tex/latex/base/size10.clo)) (./Test.aux) [1{c:/texl
ive/2014/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./Test.aux) )<c:/texli
ve/2014/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb>
Output written on Test.pdf (1 page, 11008 bytes).
SyncTeX written on Test.synctex.
Transcript written on Test.log.
有办法解决这个问题吗?请注意,给出的代码Test.tex
并未说明包的使用paralist
,但使用 时TexLive 2012
不会发生此冲突/问题。
答案1
永远不会\@enum@widestlabel
被初始化。旧版本使用了不同的机制,但基本上默认值是7
,您可以在新版本中使用该默认值。
\documentclass{article}
\usepackage[alwaysadjust]{paralist}
\makeatletter
\providecommand\@enum@widestlabel{7}
\makeatother
\begin{document}
\begin{enumerate}
\item hello
\end{enumerate}
\end{document}
这个变化发生在 2.3 版和 2.4 版(TeX Live 2013 版)之间。不过,这个选项的用途并不十分清楚alwaysadjust
。
答案2
假设您想继续使用该alwaysadjust
选项,一种解决方法是确保在启动列表时使用可选参数:
\documentclass{article}
\usepackage[alwaysadjust]{paralist}
\begin{document}
\begin{enumerate}[(1)]
\item hello
\end{enumerate}
\end{document}
或者,看看枚举项提供段落列表功能(以及更多)的包。