在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 排序方案中,使用 而不是进行排序,因此这将在不更改字段的情况下获得正确的排序。year
sortyear
year
year