在 biblatex 2.7 中按括号年份对参考文献进行排序

在 biblatex 2.7 中按括号年份对参考文献进行排序

在2.5 版中,来源中带有括号字段biblatex的书目条目在书目中仍按字段不带括号的方式排序。参见以下示例:YEAR.bib

\documentclass{article}
\usepackage{filecontents}
\usepackage[style=authoryear]{biblatex}
\begin{filecontents}{\jobname.bib}
@BOOK{lennon1972,
    AUTHOR = "John Lennon",
    TITLE = "Peace on earth",
    YEAR = "1972",
    LOCATION = "London",
    PUBLISHER = "Music Press"}
@BOOK{lennon1974,
    AUTHOR = "John Lennon",
    TITLE = "More peace on earth",
    YEAR = "[1974]",
    LOCATION = "London",
    PUBLISHER = "Music Press"}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\nocite{lennon1972}\nocite{lennon1974}
\printbibliography
\end{document}

在此处输入图片描述

在 2.7 版中不再出现这种情况biblatex。我不知道是什么决定了它们的排序,但似乎带有YEAR括号字段的条目始终位于该作者下的排序列表的首位。

在此处输入图片描述

我该怎么做才能恢复 2.5 版本的排序行为biblatex

答案1

它将根据字段的值进行排序,因此 biblatex 2.5 在这种情况下是不正确的。将括号放在字段中相当奇怪 - 这是一个样式问题,最好由其他字段来处理,这表明年份需要特殊格式。如果您确实必须这样做,请使用以下方法自动执行:

\DeclareSourcemap{
  \maps[datatype=bibtex]{
    \map{
      \step[fieldsource=year,
            match=\regexp{\A\[(.+)\]\z},
            final]
      \step[fieldset=sortyear, fieldvalue={$1}]
    }
  }
}

如果年份字段在 .bib 中有文字括号,则会自动添加一个sortyear仅由字段的数字内容组成的字段。由于在默认的 biblatex 排序方案中,使用 而不是进行排序,因此这将在不更改字段的情况下获得正确的排序。yearsortyearyearyear

相关内容