为什么 biblatex 包的 uniquelist=false 选项只有在第一次插入时才有效?

为什么 biblatex 包的 uniquelist=false 选项只有在第一次插入时才有效?

使用 biblatex 包时,我使用了这些选项:\usepackage[style=authoryearcomp,maxbibnames=99,maxcitenames=2,isbn=false,backend=biber]{biblatex} 但后来我需要添加该uniquelist=false选项。但是后者不起作用,latex 忽略了它。我手动从工作文件夹中删除 .bbl 文件并使用所有 biblatex 选项重新编译文档解决了该问题。这是正确的程序吗?还有其他方法可以实现这一点吗?

答案1

uniquelist=false,无论何时将其添加到文档中,该选项都应按宣传的方式工作,由于该选项会影响 Biber(后端)所做的计算,因此当您在添加该选项后仅运行 LaTeX 时可能不会立即显示效果。当您更改影响 Biber 的选项时,您应该重新运行完整的 LaTeX、Biber、LaTeX、LaTeX 编译循环,以确保使用了新的设置。

与其他一些情况不同,biblatex不会自动警告您必须重新运行 Biber 以确保选项更改已生效。理论上,可以在biblatexBiber 中实现对此的检查,但这也不是完全微不足道的,到目前为止还没有人要求这样做。如果您认为自动警告很有用,您可以随时在https://github.com/plk/biblatex/issues

从您的描述来看,您似乎只在添加该选项后才运行 LaTeX。删除文件后,.bbl您(或您的编辑器)必须重新运行 Biber,此时该选项才最终生效。

我猜你正在使用一个编辑器或其他工具,它们通常会自动为你运行 Biber。大概那个工具没有检测到需要重新运行 Biber。这并不奇怪,因为它biblatex不会就此发出警告。然而,有些工具有非常先进的启发式方法,已经可以检测到这种情况并为你重新运行 Biber(奇妙的latexmk想到了这一点)。如果您没有使用这种高级工具,您目前唯一能做的就是确保手动重新运行 LaTeX、Biber、LaTeX、LaTeX。(您当然不必为此删除文件.bbl,您的编辑器应该为您提供手动执行此操作的选项,但如果这是获得完整重新运行的最简单方法,为什么不呢?)

相关内容