没有重复条目的参考书目部分

没有重复条目的参考书目部分

我正在使用 创建文档biblatex。该文档需要环境提供的多个单独的参考书目refsegment。同一篇作品可能在多个 s 中被引用refsegment,但我希望引文仅出现在使用它的第一个参考书目中,而不出现在后面的参考书目中。后续部分中的引文应指向先前的参考书目。是否可以使用 自动执行此操作biblatex

答案1

选项segment=<integer>\printbibliography参考书目限制为仅在参考文献部分中引用的条目<integer>。此过滤也适用于\bibbysegment

您可以通过应用其他过滤器将打印限制为新引用的条目。这种方法是在类似问题用于数字样式。biblatex使用条目键列表在内部跟踪参考段中引用的条目。因此,另一种方法是仅将新键添加到此列表中。

以下文档给出了示例。请注意,您需要启用引用跟踪才能使\ifentryseen测试正常运行。

\documentclass{report}
\usepackage[style=authoryear,citetracker,backref,refsegment=chapter]{biblatex}
\usepackage[colorlinks]{hyperref}

\makeatletter
\patchcmd{\blx@citation@entry}
  {\ifinlistcs{#1}{blx@segm@\the\c@refsection @\the\c@refsegment}
     {}
     {\listcsgadd{blx@segm@\the\c@refsection @\the\c@refsegment}{#1}}}
  {\ifboolexpr{ test {\blx@ifentryseen@global{#1}}
     or test {\ifinlistcs{#1}{blx@segm@\the\c@refsection @\the\c@refsegment}} }
     {}
     {\listcsgadd{blx@segm@\the\c@refsection @\the\c@refsegment}{#1}}}
  {}{}
\makeatother

\defbibheading{subbibliography}{%
  \section*{References for Chapter \ref{refsegment:\therefsegment}}}

\addbibresource{biblatex-examples.bib}

\begin{document}
\chapter{First}
\textcite{companion,cms}
\chapter{Second}
\textcite{companion,cms,markey,ctan}
\printbibheading
\bibbysegment[heading=subbibliography]
\end{document}

在此处输入图片描述

答案2

Audrey 已经为您的第一个需求提供了解决方案。我将给出另一种答案:不要这样做。

假设不想按主题、条目类型等拆分参考书目,则biblatex允许对整个文档进行参考书目以及按“引用部分”或“引用段”进行参考书目。后两者的区别在于,引用部分的标签是环境本地的,而引用段的标签在整个文档中是唯一的(类似于合并参考书目)。但这三种参考书目类型的共同点是,在某个文档部分(整个文档/引用部分/引用段)中引用了一个条目也将纳入相应部分的参考书目。您提议的文档设计与此不同,并且需要在另一部分的参考书目中查找某一部分中引用的某些(但不是全部)条目,在我看来,这是相当有害的。如果您的目标是不惜一切代价避免重复的参考书目条目,我建议对整个文档进行合并参考书目。

相关内容