使用关键词字段对 biblatex 书目进行排序

使用关键词字段对 biblatex 书目进行排序

我想创建一个将参考文献分组在一起的参考书目。我想我可以添加关键字,然后使用\printbibliography[keyword=a]。要使用style=numeric,我还想按关键字排序。

我知道,我可以添加keywords分组并另外添加presort以便排序相应地进行。但我认为最好将其放在一个键中,所以我编写了一个排序方案,结果如下 MWE:

\documentclass[11pt,a4paper]{article}
\usepackage[
    backend=biber,
    sorting=sample
]{biblatex}
\DeclareSortingScheme{sample}{
    \sort{
        \field{keywords}
    }
}
\addbibresource{mybib.bib}

\begin{document}
Filler text \autocite{b}, filler text \autocite{a}.

\printbibliography[keyword=a]
\printbibliography[keyword=b]
\end{document}

mybib.bib 如下所示:

@misc{a,
    keywords = {a},
    title = {{Keyword A}},
    author = {Myself},
    year = {2000}
}

@misc{b,
    keywords = {b},
    title = {{Keyword B}},
    author = {Myself},
    year = {2000}
}

不幸的是,'b' 被赋值为 [1],而 'a' 被赋值为 [2]。现在我猜这是因为它keywords是一个“分隔值字段”,并且没有为这些类型的字段定义排序?但我找不到任何相关信息,所以我的问题是:为什么它不起作用,biblatex 文档中哪里写着关键字不能用于排序?

答案1

一种可能的解决方法是将列表\DeclareSourcemap的值复制keywords到不同的字段(比如说usera),然后使用该字段对条目进行排序。

以下是源图的定义

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map[overwrite]{
      \step[fieldsource=keywords]
      \step[fieldset=usera, origfieldval, final]
    }
  }
}

\DeclareSortingScheme{sample}{
    \sort{
        \field{usera}
    }
}

通过这些修改,MWE 生成:

在此处输入图片描述

相关内容