为什么我在 bibtex 中看到一个空白的作者,尽管它存在

为什么我在 bibtex 中看到一个空白的作者,尽管它存在

我的 bibtex 文件中有类似以下引用的内容。我使用的是 IEEEtranN 书目样式。

@electronic{UT,
    author = {{Test}},
    title = {{Test Code}},
    url = "http://test.com"
}

然而,由于某种原因,作者没有出现在我的参考书目中,但其他所有信息都出现了;

——. Test Code. [Online]. Available: http://test.com

谁能告诉我为什么会发生这种情况以及怎样才能阻止它?

答案1

正如 Mico 所评论的,这是 IEEEtranN(和其他 IEEEtran 样式)的预期行为,即,如果引用作者两次或更多次,则仅在第一次打印姓名,并且任何后续重复的条目都用水平线而不是作者姓名打印。

要更改此行为,您可以使用\noop方法。这是一种通常用于更改参考书目条目排序顺序的变通方法,例如根据 .bib 文件中的顺序对参考书目进行排序。但是,它也可以用于使两个作者在 Bibtex 中以不同的方式显示,但打印效果却相同。

这个想法是,您在作者姓名前面添加一个不执行任何操作的命令,即非操作或“无操作”。此命令只接受一个参数并将其丢弃,因此不会打印任何内容。但是,由于该命令是作者姓名字段的一部分,因此它用于排序,还用于确定两个作者字段是否具有相同的内容。如果一个条目有 noop 命令而另一个没有,或者它们都有命令但参数不同,则作者是“不同的”,并且第二个条目会打印全名而不是水平线。

.bib应使用条目在文件的前言中定义特殊命令@PREAMBLE

先生.bib

@PREAMBLE{"\def\authornoop#1{}"}

@electronic{testone,
    author = {{\authornoop{T}}Test},
    title = {Test Code 1},
    url = "http://test.com"
}

@electronic{testtwo,
    author = {Test},
    title = {Test Code 2},
    url = "http://test.com"
}

.tex

\documentclass{IEEEtran}
\usepackage[numbers]{natbib}
\begin{document}
\citet{testone} \citet{testtwo}
\bibliographystyle{IEEEtranN}
\bibliography{mybibfile}
\end{document}

结果:

在此处输入图片描述

请注意,这可能会改变排序顺序。您可以修改参数以\authornoop更正此问题,并\authornoop根据需要向其他条目添加另一个参数。

或者,您可以通过编辑文件尝试更强大的方法.bst,例如BibTeX 用“------”替换相似的作者姓名是否正常?

请注意,如果您计划向 IEEE 提交论文,那么他们实际上希望像这样格式化重复的作者,因此您的修改可能会在出版时被撤销。

相关内容