biblatex
并且autonum
似乎在最新版本中无法协同工作。考虑以下 MWE:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber]{biblatex}
\usepackage{autonum}
\begin{document}
\end{document}
我收到以下错误消息:
0 File ended while scanning use of \ettl@for@do1
0 pdflatex: \pdfmatch: repetition-operator operand invalid pdfTeX warning: pdflatex: \pdfmatch: repetition-operator operand invalid)Runaway argument?{{\blx@bibdata@i {\blx@tempb }}\blx@bibfiles \eappto \blx@tempa {\blx@xml@comme
注释掉 或 之后biblatex
,autonum
错误消失。
答案1
问题在于autonum
使用etextools
。事实上,使用 也可以重现此错误
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber]{biblatex}
\usepackage{etextools}
\begin{document}
\end{document}
问题在于etextools
重新定义的\forlistloop
方式与biblatex
预期不相符。
据我所知autonum.sty
,中\forlistloop
未使用,因此可以安全地将其恢复为biblatex
期望的值。但不能保证biblatex
中 use 构造的其他宏存在错误etextools
。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber]{biblatex}
\let\etoolboxforlistloop\forlistloop % save the good meaning of \forlistloop
\usepackage{autonum}
\let\forlistloop\etoolboxforlistloop % restore the good meaning of \forlistloop
\begin{document}
\begin{equation}
A\label{A}
\end{equation}
\begin{equation}
B\label{B}
\end{equation}
\ref{A}
\begin{equation}\label{C}
\begin{split} A\\ b \end{split}
\end{equation}
\end{document}
的功能autonum
似乎还不错。
也可以看看etextools 和 etoolbox 命令 \dolistloop (\forlistloop) 之间不兼容?