我正在编辑一本书籍,到目前为止,我主要在分别编辑不同的章节,每个章节都有(一个或)两个参考书目。我为每一章都准备了一个 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
(而不可能有适当的共同参考书目),那么您可以使用refsection
s。
您甚至不必接触原始.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 错误。