获得“`refsection:1' 多次定义” - 以前不会发生这种情况

获得“`refsection:1' 多次定义” - 以前不会发生这种情况

请考虑以下文档:

\documentclass{minimal}
\usepackage{biblatex}

\newsavebox{\foobox}
\newcommand{\doofoo}[1]{
  \ifdefined\donewithfoo
  \else
    \begin{lrbox}{\foobox}
      \begin{refcontext}
        \begin{refsection}[#1]
          foo
        \end{refsection}
      \end{refcontext}
    \end{lrbox}
  \fi
  \usebox\foobox
  \global\def\donewithfoo{}
}

\begin{filecontents}{bar.bib}
\end{filecontents}

\begin{document}
\doofoo{bar}
\doofoo{bar}
\end{document}

我们就叫它吧mydoc.tex

这是一个更复杂的文档的最小示例,涉及“人工”嵌入的部分参考书目(提出的想法这里并用于我维护的文档类中这里,但我希望这与这个问题无关)。

我使用以下方式编译此文档:xelatex mydoc。以前编译没问题,但使用最近的 TeXLive 版本(肯定是 2023,也许是 2022?2021?我不知道),我得到:

LaTeX Warning: Label `refsection:1' multiply defined.

aux 文件包含:

\relax 
\abx@aux@refcontext{nty/global//global/global}
\abx@aux@refcontext{nty/global//global/global}
\abx@aux@refsection{1}{1}
\newlabel{refsection:1}{{}{1}{}{}{}}
\newlabel{refsection:1}{{}{1}{}{}{}}
\abx@aux@read@bbl@mdfivesum{nobblfile}
\gdef \@abspage@last{1}

无论如何,我的问题是:

  • XeLaTeX 或者 biblatex 发生了什么变化,现在会触发创建两个相同的标签(之前,它们要么没有被创建,要么只创建了一个,或者它们有不同的标签)?
  • 我该怎么做才能保留基本相同的文档,但确保标签不同?

相关内容