我想将参考书目和自己的出版物中的参考文献分开。我使用 biblatex 如下:
\usepackage[%
backend=biber, % for sorting the entries and citing information with UTF-8 support
style=numeric, % style for citation
url=false, % url-field of the bib is not printet in the references
sorting=none,
maxalphanames=1, %
maxcitenames=1, %
isbn=false,
url=false,
doi=true,
abbreviate=false,
]%
{biblatex} %
\addbibresource{bib/references.bib} % Adding the bib-file to reference, if need more copy this command
\addbibresource{bib/publications.bib}
进而:
\printbibliography[title={Bibliography}, heading=bibintoc, keyword={primary}, resetnumbers]%
\printbibliography[title={Publications}, heading=bibintoc, keyword={secondary}, resetnumbers]%
其中 references.bib 如下所示:
@inproceedings{ref1,
title={{Title 1}},
author={{Authos list}},
booktitle={Conf},
year={2021},
keywords={primary}
}
@inproceedings{ref2,
title={{Title 2}},
author={{Authos list}},
booktitle={Conf},
year={2021},
keywords={primary}
}
publications.bib 如下所示:
@inproceedings{Pub1,
title={{Title 1}},
author={{Authos list}},
booktitle={Conf},
year={2021},
keywords={secondary}
}
@inproceedings{Pub2,
title={{Title 2}},
author={{Authos list}},
booktitle={Conf},
year={2021},
keywords={secondary}
}
我已经打印了两个不同的部分。但是,我希望它们彼此独立编号。对于参考文献,按出现顺序编号(就像它们一样)。对于出版物,也按出现顺序编号,但重新排列并在其前面加上我的文本:
Bibliography:
[1] Authors,...
[2] Authors,...
Publications:
[MyText1] Authors,...
[MyText2] Authors,...
在正文中,条目的引用顺序如下:\cite{Pub1}, \cite{ref1}, \cite{ref2}, \cite{Pub2}
。然而,在参考书目列表中,ref1 以 [2] 开头,而 Pub1 以 [1] 开头,即使它们位于不同的 .bib 文件中。因此,
- 如何为每个 .bib 文件保留单独的计数器?
resetnumbers
选项\printbibliography
不起作用。 - 我如何添加我的文本到出版物部分,以便它们在引用 [MyText1]、[MyText2] 时出现在文中?
- 是否可以避免在每个条目中使用关键字 primary 和 secondary,而让每个 .bib 文件都使用“general”?
感谢您的帮助。
答案1
对于通过文件拆分的一般书目设置,请查看我最近的回答使用 biblatex 分离多个 bib 文件引用(基于 PLK 对biblatex:按不同的 .bib 文件分类的多个参考书目,但使用了新功能)。您可以使用 Biber sourcemap 自动分配关键字进行过滤。
采用数字样式时,分割书目几乎总是受益于设置defernumbers=true,
,并且这对于resetnumbers
工作来说是必需的。
labelprefix
您可以通过选项将“MyText”添加到其中一个书目的数字标签中\newrefcontext
。(例如参见如何在乳胶中为引用和参考文献编号添加前缀?,将 labelprefix 替换为 newrefcontext 中的 prefixnumbers 以打印书目,但不起作用)。
您可能需要使用locallabelwidth
选项来避免在没有标签前缀的参考书目中出现较大的标签宽度。
您可以使用类似
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber, style=numeric, sorting=none, defernumbers, locallabelwidth]{biblatex}
\DeclareSourcemap{
\maps[datatype=bibtex, overwrite]{
\map{
\perdatasource{references.bib}
\step[fieldset=keywords, fieldvalue={, }, appendstrict]
\step[fieldset=keywords, fieldvalue=references, append]
}
\map{
\perdatasource{publications.bib}
\step[fieldset=keywords, fieldvalue={, }, appendstrict]
\step[fieldset=keywords, fieldvalue=publications, append]
}
}
}
\begin{filecontents}{references.bib}
@inproceedings{ref1,
title = {Title 1},
author = {{Author list}},
booktitle = {Conf},
year = {2021},
}
@inproceedings{ref2,
title = {Title 2},
author = {{Author list}},
booktitle = {Conf},
year = {2021},
}
\end{filecontents}
\addbibresource{references.bib}
\begin{filecontents}{publications.bib}
@inproceedings{Pub1,
title = {Title 1},
author = {{Author list}},
booktitle = {Conf},
year = {2021},
}
@inproceedings{Pub2,
title = {Title 2},
author = {{Author list}},
booktitle = {Conf},
year = {2021},
}
\end{filecontents}
\addbibresource{publications.bib}
\begin{document}
Lorem \autocite{Pub1}
ipsum \autocite{ref1}
dolor \autocite{ref2}
sit \autocite{Pub2}
\printbibliography[title={Bibliography}, heading=bibintoc, keyword={references}, resetnumbers]
\newrefcontext[labelprefix=MyText]
\printbibliography[title={Publications}, heading=bibintoc, keyword={publications}, resetnumbers]
\end{document}