Biblatex:当参考书目按引用顺序排序(sorting=none)时,如何按年份自动对数字引用进行排序(sortcites=ynt)

Biblatex:当参考书目按引用顺序排序(sorting=none)时,如何按年份自动对数字引用进行排序(sortcites=ynt)

我使用数字引用。在 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}

第一:[1, 2, 3] 第二:[2, 3] [1] Caleb。参考文献 C. 1970。 [2] Alice。参考文献 A. 1980。 [3] Bob。参考文献 B. 2000。

请注意,该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 中有效。但它可能无法按预期在旧系统中工作,因为不久前biblatexBiber 的处理方式发生了变化sorting=none,https://github.com/plk/biber/issues/404。

相关内容