bibtex 和 beamer 中奇怪的 \nocite{*} 行为

bibtex 和 beamer 中奇怪的 \nocite{*} 行为

我正在将 BibTeX 与 Latex Beamer 一起使用,遇到了一个奇怪的问题:

我的 BibTeX 文件的条目如下所示:

    @inproceedings{DBLP:conf/latin/BenderF00,
      author    = {Michael A. Bender and
           Martin Farach-Colton},
      title     = {The {LCA} Problem Revisited},
      booktitle = {LATIN},
      year      = {2000},
      pages     = {88-94},
      ee        = {http://dx.doi.org/10.1007/10719839_9},
      crossref  = {DBLP:conf/latin/2000},
      bibsource = {DBLP, http://dblp.uni-trier.de}
    } 
    @proceedings{DBLP:conf/latin/2000,
     editor    = {Gaston H. Gonnet and
                  Daniel Panario and
                  Alfredo Viola},
     title     = {LATIN 2000: Theoretical Informatics, 4th Latin American
                  Symposium, Punta del Este, Uruguay, April 10-14, 2000,            Proceedings},
     booktitle = {LATIN},
     publisher = {Springer},
     series    = {Lecture Notes in Computer Science},
     volume    = {1776},
     year      = {2000},
     isbn      = {3-540-67306-7},
     bibsource = {DBLP, http://dblp.uni-trier.de}
     }

\cite{DBLP:conf/latin/BenderF00}一起使用

    \begin{frame}[allowframebreaks]{Bibliography}
    \begin{scriptsize}
     %\nocite{*}  // commented out!!!!!!!!
     \setbeamertemplate{bibliography item}[text]
     \bibliographystyle{alpha}
     \bibliography{literatur}
    \end{scriptsize}
    \end{frame}

给我:

[BFC00] Michael A. Bender 和 Martin Farach-Colton。重新审视 LCA 问题。Gaston H. Gonnet、Daniel Panario 和 Alfredo Viola 编辑,LATIN,计算机科学讲义第 1776 卷,第 88-94 页。Springer,2000 年。

这是完美的。

但是当我没有\cite{DBLP:conf/latin/BenderF00}明确引用而是使用\nocite{*}时,我得到以下结果:

[BFC00] Michael A. Bender 和 Martin Farach-Colton。重新审视 LCA 问题。在 Gonnet 等人的文章中。[GPV00],第 88-94 页。

对 [GPV00] 有新的引用等等...

我该如何避免这种行为?我很高兴收到每一条建议

答案1

使用\nocite{*}基本上就是\nocite为参考书目数据库中的每个条目添加一个命令。当 BibTeX 找到\nocite(或\cite)与某个@inproceedings项目及其交叉引用项目相关的@proceedings内容时,它会将这两个条目添加到参考书目中,并在项目中添加一个引用(在您的例子中为“[GPV00]”)@inproceedings

因此,无论\cite{DBLP:conf/latin/BenderF00}有没有\nocite{*},该@proceedings条目都用于填充该项目中的数据。但是,如果有另一个项目交叉引用DBLP:conf/latin/2000,则该条目无论如何都会单独出现(请参阅驯服野兽,第 12 节)。

没有任何\nocite命令可以避免仅交叉引用的项目。

如果要显示庞大的数据库,我会采用这种默认方法。另一种方法是获取所有键,删除字段中出现的键,然后使用显式键列表crossref执行操作。\nocite

相关内容