我正在寻找一种方法来编辑/重新排序条目在 .bib 文件中以匹配为参考书目定义的顺序。这里有几个关于对参考书目进行排序的问题,但我没有找到任何关于对 .bib 文件本身进行排序的信息……也许是因为这是不可能的!例如,根据 .bib 文件中的顺序对参考书目进行排序与我要查找的相反。我想根据参考书目中的顺序对 .bib 文件进行排序。
原因是我有多个按主题组织的 .bib 文件,每个主题文件都按我阅读来源的时间组织。如果能将这些条目组织起来,我就能节省不少时间,例如,我可以删除某个作者的整段来源,而不必逐一搜索。
%LuaLaTeX
\documentclass{report}
\usepackage[authordate,backend=biber,sorting=nyt]{biblatex-chicago}
\begin{filecontents}{bib.bib}
@book{bcd,
author = {Mike Man},
title = {Title},
year = {2016},
publisher = {Books},
}
@book{cde,
author = {Bill Ban},
title = {Name},
year = {2009},
publisher = {Publisher},
}
@book{abc,
author = {Bill Ban},
title = {Something},
year = {2014},
publisher = {Somewhere},
}
\end{filecontents}
\addbibresource{bib.bib}
\nocite{*}
\begin{document}
Text.
\printbibliography
\end{document}
理想情况下,可以有一种方法可以重新排序 bib.bib,使其与参考书目中定义的顺序相匹配(因此,authordate,sorting=nyt
)。在这种情况下,预期的排序应该是cde
, abc
, bcd
。
答案1
使用 的工具模式可以实现这一点biber
。假设您的 .bib 是“test.bib”,并且您在“test.conf”中有以下内容(这只是“nyt”排序方案的配置文件版本 - 请参阅 biblatex/biber PDF 文档了解此内容)。
<config>
<!-- nyt SORTING -->
<sorting>
<presort>mm</presort>
<sort order="1">
<sortitem order="1">presort</sortitem>
</sort>
<sort order="2" final="1">
<sortitem order="1">sortkey</sortitem>
</sort>
<sort order="3">
<sortitem order="1">sortname</sortitem>
<sortitem order="2">author</sortitem>
<sortitem order="3">editor</sortitem>
<sortitem order="4">translator</sortitem>
<sortitem order="5">sorttitle</sortitem>
<sortitem order="6">title</sortitem>
</sort>
<sort order="4">
<sortitem order="1">sortyear</sortitem>
<sortitem order="2">year</sortitem>
</sort>
<sort order="5">
<sortitem order="1">sorttitle</sortitem>
<sortitem order="2">title</sortitem>
</sort>
<sort order="6">
<sortitem order="1">volume</sortitem>
<sortitem order="2">0</sortitem>
</sort>
</sorting>
</config>
然后只需运行此命令:
biber --tool --configfile=test.conf test.bib
并且您排序后的 .bib 将在 中test_bibertool.bib
。
biber
在工具模式下使用默认配置文件,您可以通过运行找到它:
biber --tool-config
然后,您可以复制此文件并根据需要进行编辑。您可以使用工具模式对 .bib 文件进行许多操作,例如重新格式化、排序、使用源映射更改数据、实现继承规则等。请参阅 PDF 文档biber
。
PDF手册biber
(当前为第 3.1.7 节)详细介绍了配置文件中接受的排序规范的格式。