加载多个 bib 文件时出现重复条目

加载多个 bib 文件时出现重复条目

我正在编辑一本书籍,到目前为止,我主要在分别编辑不同的章节,每个章节都有(一个或)两个参考书目。我为每一章都准备了一个 biber.conf 文件,用于生成两个参考书目(主要文献和次要文献(其中主要文献也是一个丑陋的黑客行为,但这将是另一个问题,因此我将此处的示例缩减为每章一个参考书目)。我将 bib 文件与关键字关联,然后在此基础上生成主要文献和次要文献的参考书目。该命令遵循以下模式biber -g 1.conf 1

我现在正在使用 docmute 整理该卷,并意识到我的 biblatex 设置严重损坏。本来希望只有一个书目数据库,每个贡献者都可以从中获取信息并建立各自的书目等\cite,但事情并没有自然发展到这个地步。我希望下一卷可以这样做。现在我想我必须找到一种方法,要么将书目完全分开,要么让重复的条目出现在所有 bib 文件中的书目中。

在以下示例中(应命名为1.tex。a.tex 和 b.tex 代表卷中的章节,我在此仅显示参考书目。)条目 A2015 是重复的。我怎样才能让它出现在两个参考书目中?

\documentclass{memoir}
\usepackage{filecontents}
\usepackage[authordate]{biblatex-chicago}
\usepackage{docmute}
\addbibresource{a.bib}
\addbibresource{b.bib}


\begin{filecontents*}{1.conf}
<?xml version="1.0" encoding="UTF-8"?>
<config>
  <sourcemap>
    <maps datatype="bibtex" bmap_overwrite="1">
      <map>
        <per_datasource>a.bib</per_datasource>
        <map_step map_field_set="KEYWORDS" map_field_value="a"/>
      </map>
      <map>
        <per_datasource>b.bib</per_datasource>
        <map_step map_field_set="KEYWORDS" map_field_value="b"/>
      </map>
    </maps>
  </sourcemap>
</config>
\end{filecontents*}

\begin{filecontents*}{a.tex}
\documentclass{memoir}
\usepackage[authordate]{biblatex-chicago}
\addbibresource{a.bib}
\begin{document}
\nocite{*}
\printbibliography[keyword=a,heading=subbibliography]
\end{document}
\end{filecontents*}


\begin{filecontents*}{a.bib}
@book{A2015,
author = {Some Body},
year = {2015},
title = {A book},
}
\end{filecontents*}


\begin{filecontents*}{a.conf}
<?xml version="1.0" encoding="UTF-8"?>
<config>
  <sourcemap>
    <maps datatype="bibtex" bmap_overwrite="1">
      <map>
        <per_datasource>a.bib</per_datasource>
        <map_step map_field_set="KEYWORDS" map_field_value="a"/>
      </map>
    </maps>
  </sourcemap>
</config>
\end{filecontents*}


\begin{filecontents*}{b.tex}
\documentclass{memoir}
\usepackage[authordate]{biblatex-chicago}
\addbibresource{b.bib}
\begin{document}
\nocite{*}
\printbibliography[keyword=b,heading=subbibliography]
\end{document}
\end{filecontents*}


\begin{filecontents*}{b.bib}
@book{A2015,
author = {Some Body},
year = {2015},
title = {A Book},
}

@book{B2015,
author = {Somebody Else},
year = {2015},
title = {Another Book},
}
\end{filecontents*}

\begin{filecontents*}{b.conf}
<?xml version="1.0" encoding="UTF-8"?>
<config>
  <sourcemap>
    <maps datatype="bibtex" bmap_overwrite="1">
      <map>
        <per_datasource>b.bib</per_datasource>
        <map_step map_field_set="KEYWORDS" map_field_value="b"/>
      </map>
    </maps>
  </sourcemap>
</config>
\end{filecontents*}

\begin{document}
\input{a}
\input{b}
\end{document}

答案1

如果您想要将参考文献保留在完全独立的a.tex部分b.tex(而不可能有适当的共同参考书目),那么您可以使用refsections。

您甚至不必接触原始.tex文件,只需将其包装在必须在可选参数中指定正确文件的环境\input中即可。refsection.bib

\begin{refsection}[a.bib]
\input{a}
\end{refsection}
\begin{refsection}[b.bib]
\input{b}
\end{refsection}

平均能量损失

\documentclass{memoir}
\usepackage{filecontents}
\usepackage[authordate]{biblatex-chicago}
\usepackage{docmute}

\begin{filecontents*}{a.tex}
\documentclass{memoir}
\usepackage[authordate]{biblatex-chicago}
\addbibresource{a.bib}
\begin{document}
\nocite{*}
\printbibliography[heading=subbibliography]
\end{document}
\end{filecontents*}

\begin{filecontents*}{a.bib}
@book{A2015,
author = {Some Body},
year = {2015},
title = {A book},
}
\end{filecontents*}


\begin{filecontents*}{b.tex}
\documentclass{memoir}
\usepackage[authordate]{biblatex-chicago}
\addbibresource{b.bib}
\begin{document}
\nocite{*}
\printbibliography[heading=subbibliography]
\end{document}
\end{filecontents*}

\begin{filecontents*}{b.bib}
@book{A2015,
author = {Some Body},
year = {2015},
title = {A Book},
}

@book{B2015,
author = {Somebody Else},
year = {2015},
title = {Another Book},
}
\end{filecontents*}


\begin{document}
\begin{refsection}[a.bib]
\input{a}
\end{refsection}
\begin{refsection}[b.bib]
\input{b}
\end{refsection}
\end{document}

在此处输入图片描述

由于两者refsections独立共存,因此不存在 Biber 错误。

相关内容