biblatex 的 refsection 和 lot/lof 之间的冲突以及浮动标题中的引用

biblatex 的 refsection 和 lot/lof 之间的冲突以及浮动标题中的引用

我正在编写一份标准的复杂文档(即论文),其中各章被分成不同的文件并包含在内。我正在使用biblatex,并且我希望每章都有单独的参考书目,因此我使用refsection自动按节分离书目范围的选项(如所述这里以及biblatex文档中的第 3.11.3 节“多个参考书目”)。

但是我现有的文件确实不是完全像这样,并且崩溃并显示错误

! You can't use `\relax' after \advance.
<recently read> \blx@sectionciteorder@1 

我使用 Kile 作为我的 IDE,根据 Kile 的说法,发生错误的文件是该.lot文件。经过一些策略性的评论,我设法找出了问题所在:

当浮动图表(图形或表格)带有refsection带引用的标题时,打印表格列表或图形列表(视情况而定)会导致错误。

删除refsection即可解决问题。从标题中删除引文(使用可选参数\caption或完全删除标题)即可解决问题。删除 LoT 或 LoF 即可解决问题。但是我怎样才能在不删除其中任何一个的情况下修复该问题?

MWE 如下:

\documentclass{book}

\usepackage[
  backend=biber,
  refsection=chapter,
]{biblatex}
\addbibresource{\jobname.bib}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{A,
  title = {A title},
  pages = {55--61},
  journal = {{JoRS}},
  author = {Author, A.N.},
  date = {1990}
}
@article{B,
  title = {Another title},
  pages = {550--610},
  journal = {{JoBS}},
  author = {Other, A.N.},
  date = {1995}
}
\end{filecontents}

\begin{document}

\tableofcontents
\listoftables

\chapter{One}

This is a test \textcite{A}.

\begin{table}
  \centering
  \caption{A table. From \textcite{A}}
  \begin{tabular}{ccc}
    A & B & C \\
    1 & 2 & 3 \\
  \end{tabular}
\end{table}

\printbibliography

\chapter{Two}

This is a test \textcite{B}.

\printbibliography

\end{document}

虽然这种情况在我看来很常见,但我在网上找不到任何与这种特定情况有关的内容。这个网站上还有一个标题很有希望的问题,但核心问题是排序问题,而不是崩溃。(它被标记为无关的事情回答我的问题)。

还有问题在 GitHub 上的 biblatex 存储库中,但它似乎根本不处理标题和 LoF/LoT 中的引用。无论如何,我尝试了发展实验该讨论中提到的版本,并且两个版本上的问题仍然存在。

相关内容