![在参考书目中使用 crossref,但仅显示完整的主条目](https://linux22.com/image/280481/%E5%9C%A8%E5%8F%82%E8%80%83%E4%B9%A6%E7%9B%AE%E4%B8%AD%E4%BD%BF%E7%94%A8%20crossref%EF%BC%8C%E4%BD%86%E4%BB%85%E6%98%BE%E7%A4%BA%E5%AE%8C%E6%95%B4%E7%9A%84%E4%B8%BB%E6%9D%A1%E7%9B%AE.png)
考虑以下参考书目和 MWE:
\documentclass{article}
\usepackage{natbib}
\begin{filecontents*}{bibliography.bib}
@proceedings{conf:2006,
editor = {Star, Patrick and Tentacles, Squidward},
title = {Proceedings of the 1st Conference on Marine Biology},
booktitle = {Proceedings of the 1st Conference on Marine Biology},
year = 2006,
month = jan,
}
@inproceedings{proc:2006:01,
title = {How To Live Underwater},
author = {Squarepants, SpongeBob},
pages = {1--8},
crossref = {conf:2006}
}
@inproceedings{proc:2006:02,
editor = {Star, Patrick and Tentacles, Squidward},
booktitle = {Proceedings of the 1st Conference on Marine Biology},
year = 2006,
month = jan,
title = {How To Live Underwater},
author = {Squarepants, SpongeBob},
pages = {1--8},
}
\end{filecontents*}
\begin{document}
\nocite{*}
\bibliographystyle{plain}
\bibliography{bibliography}
\end{document}
由此得出以下参考书目:
我想要的输出是获取 item [2]
(而不是[1]
和[3]
),同时引用proc:2006:01
使用 crossref
到conf:2006
。
我主要想使用该crossref
字段来更轻松地管理我的.bib
文件,而我对在参考文献中显示文章条目和会议条目并不特别感兴趣。我猜,从某种意义上说,这意味着在处理之前conf:2006
会复制条目proc:2006:01
。有什么办法可以做到这一点吗?最好解决方案允许我在必要时恢复到正常输出。
我已经尝试过答案这里,但这只显示主条目的字段,而不继承crossref
条目。这不是我想要的。
答案1
被其他条目交叉引用的条目应在文件中.bib
比任何交叉引用它们的条目更靠后的位置出现。实际上,这意味着将交叉引用的条目放在在最后文件的.bib
。
您的 MWE.bib
文件中交叉引用的条目 (key: conf:2006
) 位于最前面而不是最后面,这可能是您遇到问题行为的原因。如果我重新排列您的.bib
文件,使带有 key 的条目conf:2006
位于最后,则在文档正文中执行 just \cite{proc:2006:01}
(which cross-references conf:2006
) 或\cite{proc:2006:02}
(which does not) 会在参考书目中产生相同的条目。
确保交叉引用的条目最后的在.bib
文件中进行排序可能很繁琐,尤其是当文件包含大量条目并且您想要维护某种系统的排序方案时。幸运的是,相当多的 LaTeX 感知编辑器都具有简化漂亮打印书目条目并根据各种标准对其进行排序的例程。一个特别有用的排序标准是将所有与其他条目交叉引用的条目放在一起最后的在文件中。