使用 natbib 从参考文献列表中删除引用的参考文献

使用 natbib 从参考文献列表中删除引用的参考文献

当使用bibtex并说时natbib,我正在寻找与命令相反的东西\nocite,即从参考文献列表中删除引用的参考文献。

\documentclass[12pt]{article}
\usepackage{natbib}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{gnus,
  author      = "John, D.",
  title       = "Gnus of the World",
  publisher   = "DEK Publishing",
  year        = 2019,
}

@book{gnats,
  author      = "Doe, J.",
  title       = "Gnats of the World",
  publisher   = "DEK Publishing",
  year        = 2020,
}
\end{filecontents}
\begin{document}
I make the following citations
\citet{gnats} and \citet{gnus}

But I only want the reference \verb+gnus+ to appear in the reference section.
I am looking for something that would be the inverse of the \verb+\nocite+ command, i.e., suppress a cited reference from the 
list of references. 

Something like \verb+ \supressfromlist{gnats}+
\bibliographystyle{plainnat}
\bibliography{\jobname}
\end{document}

答案1

正如评论中所讨论的,使用标准 BibTeX 时,这非常棘手,因为只有将相关条目添加到参考书目中,引文数据才可用且可用。BibTeX 没有内置方法将某些条目与“正常”引文区别对待。因此,您必须绕过 BibTeX 并通过其他方式获取引文数据,但这意味着使用 LaTeX 解析文件.bib(并非完全不可能,请参阅软件包usebib,但您还需要名称解析,但usebib由于某种原因,它没有实现)。

我同意 Ulrike 的观点,最好的办法就是完全手动输入虚假引文。

可以biblatex从参考书目中删除某些条目。这可能对数字样式不太适用,并且在消除歧义时可能会产生一些奇怪的副作用。你已被警告。

这个想法是使用书目分类并将您想要从参考书目中删除的所有条目添加到该类别。然后,您可以轻松过滤参考书目并仅打印不属于该类别的条目。

\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}

\usepackage[style=authoryear, backend=biber]{biblatex}

\DeclareBibliographyCategory{dropbib}

\addtocategory{dropbib}{geer}
% \addtocategory can take a comma-separated list of keys, so
% \addtocategory{dropbib}{geer,worman}
% would add both 'geer' and 'worman' to the drop category

\addbibresource{biblatex-examples.bib}

\begin{document}
Lorem \autocite{sigfridsson,worman,geer}
\printbibliography[notcategory=dropbib]
\end{document}

引文“(Sigfridsson and Ryde 1998; Worman 2002; Geer 1985)”书目不包含“Geer 1985”

相关内容