如何在 biblatex 中使用特定条目类型中的特定字段进行排序

如何在 biblatex 中使用特定条目类型中的特定字段进行排序

在回答这个问题时:在 Bibtex 中创建行政命令条目我给出了一个biblatex解决方案,它使用了一种新的行政命令条目类型。这种特定的条目类型没有作者,但在某些情况下,可能(事实上很有可能)在单个文档中引用同一年份的多个条目。在这种情况下,需要有某种方法来决定该条目的排序顺序。在这种特殊情况下,按数字字段排序是最有意义的。

该条目具有以下字段:

@executiveorder{Executive-Order2007,
        Number = {13423},
        Pages = {919},
        Volume = {3},
        Year = {2007}}

所以问题是这样的:我如何为像这样的没有正常排序元素的奇数条目添加排序信息?

答案1

\sort{}您应该在其自己的子句中添加数字排序:

\sort{
    \field{sortyear}
}
\sort{
    \field{number}
}

将它们放在同一\sort{}个子句中不会达到您想要的效果。您希望先按 sortyear 排序,然后按数字排序。将它们放在同一\sort{}个子句中将按\sort{}子句中找到的第一个字段排序,因此如果始终有一个 year 字段:

\sort{
    \field{year}
    \field{number}
}

相当于

\sort{
    \field{year}
}

因为\field{number}从未使用过。通常,条目会按每个子句依次排序\sort{},并且在每个子句中,找到的第一个字段将由该子句使用。

另外,您可以根据需要定义任意数量的排序方案,并通过\printbibliographysorting选项单独使用它们(biblatex 2.0+ 仅适用于 biber)。但是,这听起来不像是您需要的。

答案2

biblatex已经内置了presort根据手册的字段

用于修改参考书目的排序顺序的特殊字段。此字段是排序程序在对参考书目进行排序时考虑的第一项,因此可用于按组排列条目。

year然后可以使用和扩展排序模式number;例如,ynt模式的变体可以是:

\DeclareSortingScheme{executiveorder}{
  \sort{
    \field{presort}
  }
  \sort{
    \field{sortkey}
  }
  \sort{
    \field{sortyear}
  }
  \sort{
    \field{number}
  }
  \sort{
     \field{sortname}
     \field{author}
     \field{editor}
  }
  \sort{
    \field{title}
  }
}

编辑:修改了架构,并加入了自己的子句number\sort

相关内容