如何强制将特定条目置于参考书目中的第一个位置?

如何强制将特定条目置于参考书目中的第一个位置?

我正在写一篇论文,我需要将参考书目中的特定条目放在列表的首位。其余条目应按常规排序。我使用plain参考书目样式和外部.bib文件。

例如:有三位作者:Jack Alien、John Bravo 和 Ally Complex,他们的论文将按参考文献排序为 [1] Alien、[2] Bravo、[3] Complex。但我希望排序为:[1] Complex、[2] Alien、[3] Bravo。

我知道,我可以做类似的事情如何手动更改参考书目样式的顺序(双语参考书目)但许多项目都使用单个.bib文件,并且这些项目中的引用应该以标准方式排序。

那么,如何才能使特定的参考文献位于参考书目中的第一位呢?

答案1

对于一次性文档,如果只有一个(或很少)条目需要特殊排序处理,则创建一个“特殊”条目并使用该条目并不是不合理的。

\documentclass[12pt]{article}
\usepackage{natbib}
\newcommand{\noop}[1]{}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@Article{adams1986,
  author =   {Adams, Anthony},
  title =    {Article Title},
  journal =  {Journal},
  year =     1986,
  volume =   46,
  pages =    {1--35},
}
@Article{zedson2013,
  author =   {Zedson, John},
  title =    {Zarticle title},
  journal =      {Journal},
  year =     2013,
  volume =   22,
  pages =    {141--181},
}
@Article{zedson2013-special,
  author =   {{\noop{AAA}}Zedson, John},
  title =    {Zarticle title},
  journal =      {Journal},
  year =     2013,
  volume =   22,
  pages =    {141--181},
  annote =       {NOTE: use for special sorting},
}
\end{filecontents}
\begin{document}

\cite{adams1986}
\cite{zedson2013}
\cite{zedson2013-special}

\bibliographystyle{plain}
\bibliography{\jobname}
\end{document}

如果您使用biber,实现非正统/特殊排序的一个简单方法是将 添加sortkey = {<sortkey>}到相关条目中。摘自biblatex手册(§2.2.3):

用于修改书目排序顺序的字段。将此字段视为主排序键。如果存在,biblatex 将在排序期间使用此字段,并忽略除预排序字段之外的所有其他字段。有关更多详细信息,请参阅 § 3.5。此字段由后端处理使用,不会出现在 .bbl 中。

如果仅使用(字母)biblatex(样式)作为BibTeX后端,您可以利用该sortname字段做类似的事情。

答案2

一个非常简单的解决方案:

只需添加

\begin{document}
\nocite{refName}

并且它将强制该参考文献成为 bib 中的第一个条目,假设您使用按出现顺序排序的 bib 样式,如 IEEE(对于其他样式,您可以通过 等命令禁用字母顺序usepackage[sorting=none]{biblatex})。

相关内容