当多个条目交叉引用同一篇论文时,不会打印论文的详细信息,但会引用!

当多个条目交叉引用同一篇论文时,不会打印论文的详细信息,但会引用!

我实际上有完全相反的问题这里

当一个条目 ( @inproceedings) 交叉引用某个会议记录时,一切正常。只有该@inproceedings条目在参考列表中,并且它继承了会议记录的所有详细信息。

但是,当多个条目 ( @inproceedings) 交叉引用同一论文集时,两个条目加上论文集都在参考文献列表中,这两个条目都@inproceedings包含对论文集的引用,而这并不是我想要的。我希望每个条目@inproceedings都打印论文集的详细信息(编辑、年份等)。

这是 bib 文件 my.bib:

@inproceedings{inproc1,
title = {Paper 1},
author = {Authors of Paper 1},
pages = {40--46},
crossref = {Proc},
}
@inproceedings{inproc2,
author = {Paper 2},
title = {Authors of Paper 2},
pages = {47--52},
crossref = {Proc},
}
@proceedings{Proc,
editor = {Editor Name},
title = {Proceedings title},
booktitle = {Proceedings title},
year = {2015},
}

这里是加载此书目的基本乳胶文件:

\documentclass{article}

\begin{document}

\cite{inproc1,inproc2}

\bibliographystyle{plain}
\bibliography{my.bib}

\end{document}

这是我得到的输出。

在此处输入图片描述

然而,我想要删除第二个参考文献(会议录),因为我从未引用过它,并且在第一和第三个条目中打印它的详细信息(编辑、年份等)。

有什么可以做的吗之内bib 文件来修复这个问题?!

答案1

基本上,你观察到的行为是通过设计@inproceedings以及拆分和条目的实际目的@proceedings:如果您引用一篇论文(@inproceedings条目),BibTeX 会将交叉引用条目中缺失的信息导入到参考书目中的论文条目中,或者,如果引用了同一会议记录中的两篇以上论文,则将条目本身放入参考书目并从论文条目中引用它们,@proceedings以节省一些空间。@proceedings

推荐的解决方案

阈值 2 只是默认值:可以使用选项在bibtex命令行上进行配置-min-crossrefs=NUMBER。因此,如果您将bibtex命令行更改为

bibtex -min-crossrefs=99 mytex.aux

所有@inproceedings条目将在参考书目中展开。

bib 文件中的解决方案

但是,正如您要求在bib文件本身内更改此设置的选项一样:这可以通过不使用@crossref,而是将条目中的相关信息@proceedings直接写入每个@inproceedings条目来实现:

@inproceedings{inproc1,
title = {Paper 1},
author = {Authors of Paper 1},
pages = {40--46},
editor = {Editor Name},
booktitle = {Proceedings title},
year = {2015},
}
@inproceedings{inproc2,
author = {Paper 2},
title = {Authors of Paper 2},
pages = {47--52},
editor = {Editor Name},
booktitle = {Proceedings title},
year = {2015},
}
@proceedings{Proc,
editor = {Editor Name},
title = {Proceedings title},
booktitle = {Proceedings title},
year = {2015},
}

不过,我建议不是以这种方式更改主 bib 文件 – 恢复的方法要复杂得多!相反,使用一些工具,如bib2bib例如创建一个扁平变体你的 bib 文件。

相关内容