我使用数字引用。在 LaTeX 中(实际上在 LyX 中更是如此),希望将多参考引用按出版年份排序 [1,2,3]。也就是说,3 是在 2 和 1 之后出版的。
而在文档后面如果我引用 [8,3,24],则应该是 24 在 3 之后发布,而 3 在 8 之后发布。
但是,在参考书目中,我希望这些数字项按数字 1、2、3 排序......
有很多具有类似组合的问题,但我找不到这个。
这是我使用 biber 的尝试
\documentclass[]{article}
\begin{filecontents*}{references.bib}
@misc{first,
title={Reference A},
author={Alice},
year={1980},
}
@misc{second,
title={Reference B},
author={Bob},
year={2000},
}
@misc{third,
title={Reference C},
author={Caleb},
year={1970},
}
\end{filecontents*}
\usepackage[
sortcites=ynt,
sorting=none,
backend=biber,
hyperref=true,
firstinits=true,
maxbibnames=99,
]{biblatex}
\addbibresource{references.bib}
\begin{document}
First: \cite{third,first,second}
Second: \cite{second,first}
\printbibliography
\end{document}
第二次引用应该是 2,3,因为参考文献 A 已经更早发表。
答案1
为了完全控制单独调用的排序\cite
,您可能需要定义一个考虑引用顺序和出版日期的新排序方案。
\documentclass[]{article}
\usepackage[
backend=biber,
sortcites=true,
sorting=noney,
giveninits=true,
maxbibnames=99,
]{biblatex}
\DeclareSortingTemplate{noney}{
\sort{\citeorder}
\sort{
\field{sortyear}
\field{year}
}
\sort{\intciteorder}
}
\begin{filecontents*}{\jobname.bib}
@misc{first,
title={Reference A},
author={Alice},
year={1980},
}
@misc{second,
title={Reference B},
author={Bob},
year={2000},
}
@misc{third,
title={Reference C},
author={Caleb},
year={1970},
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
First: \cite{third,second,first}
Second: \cite{second,first}
\printbibliography
\end{document}
请注意,该sortcites
选项需要一个布尔值(但任何非true
值都被视为 false)。因此sortcites=ynt,
被视为sortcites=false,
。
\inciteorder
已在 v3.18(2022-06-22)中添加biblatex
,因此将在所有最新的 TeX 系统上可用。如果您无法更新,可以尝试\sort{\intciteorder}
从上面的定义中删除该行\DeclareSortingTemplate{noney}
。(这似乎在 Overleaf 的 TeX Live 2021 的 v3.16 版 MWE 中有效。但它可能无法按预期在旧系统中工作,因为不久前biblatex
Biber 的处理方式发生了变化sorting=none,
https://github.com/plk/biber/issues/404。)