在以下 MWE 中,我希望参考文献“B”出现在参考文献列表中的“A”之前,因为sortyear
应该优先于year
。但经过多次修改后,我还是无法做到这一点……我读过这和这问题和 biblatex 手册的相应部分没有太多帮助。
\documentclass{article}
\usepackage[
backend=bibtex,
defernumbers=true,
sorting=xxx,
]{biblatex}
\begin{filecontents}[overwrite]{mwe.bib}
@article{A,
title = {A},
year = {1111},
sortyear = {2222}
}
@article{B,
title = {B},
year = {2222},
sortyear = {1111}
}
\end{filecontents}
\addbibresource{mwe}\nocite{*}
\DeclareSortingTemplate{xxx}{
\sort{
\field{sortyear}
\field{year}
}
}
\begin{document}
\printbibliography[resetnumbers=true]
\end{document}
答案1
正如评论中所讨论的,您只能使用受限backend=bibtex
的排序方案列表(none
,,,,,,,,,),并且nty
BibTeX根本无法使用。nyt
nyvt
anyt
anyvt
ynt
ydnt
debug
\DeclareSortingTemplate
您将需要使用 Biber 来处理您的文档。(无论如何,这是一个好主意,因为 的许多biblatex
高级功能都需要 Biber。文档曾经解释过哪些部分是 Biber 独有的,但几年前,我们决定将 BibTeX 设为“遗留后端”,并假设普通用户使用 Biber。)
https://github.com/plk/biblatex/commit/0c21cd8c142d1a2f0c2d1e4810890388fa82551e如果 BibTeX 使用不受支持的排序模板,将会发出警告。