按时间倒序对 bibtex 中的出版物进行排序以显示在网页上

按时间倒序对 bibtex 中的出版物进行排序以显示在网页上

我正在使用此程序在我的网页上显示出版物。实施完所有步骤后,我发现当我填充文件时.bib,结果显示会按随机年份顺序对所有内容进行排序。此外,有些条目的年份相同,但仍有自己的类别,这意味着人们不会看到 2011 年的所有出版物都列在 2011 年下,而是会看到 2011 年下的一些条目,然后是另一个 2011 年下的其他条目,位置随机。由于我尝试了一段时间后仍无法修复该代码,因此我现在正在寻找可以按.bib年份反向排序文件中条目的方法,以便我可以在我的网页上显示出版物。

我曾见过其他解决方案,它们讨论了在 LaTeX 文档中对引用进行反向排序,但在这种情况下,我没有引用任何内容,所以我不想创建文档.tex然后创建\cite我所有的出版物,只是为了能看到它们。

如何对.bib文件中的出版物进行反向排序以显示在我的网页上?

答案1

.bib您可以使用 Biber 按年份降序对现有文件进行排序。

创建一个名为的文件,ydsort.conf其内容如下。

<?xml version="1.0" encoding="UTF-8"?>
<config>
  <output_align>true</output_align>
  <output_fieldcase>lower</output_fieldcase>
  <sortingtemplate name="tool">
    <sort order="1" sort_direction="descending">
      <sortitem order="1">year</sortitem>
    </sort>
  </sortingtemplate>
</config>

然后在工具模式下调用Biber

biber --tool --configfile=ydsort.conf <yourbibfile>.bib

这将生成一个名为<yourbibfile>_bibertool.bib

标准 Biber--tool模式注意事项适用:防止 `biber --tool` 删除 .bib 文件中的非标准字段. 只有数据模型中已知的字段才能在工具模式下生存(因此,如果您使用标准数据模型无法识别的字段,则必须在自定义数据模型中让 Biber 知道它们,请参阅gusbrs 的回答)。


您还可以尝试BibTool程序。我没有在我的系统上安装它,但我相信

bibtool -S --sort.format='{%4d($year)}' -i <yourbibfile>.bib -o <yourbibfile>_sorted.bib

可能就是你想要的。

根据您的操作系统,您可能需要在此处使用双引号(")而不是单引号(')。

相关内容