我在处理一本书中某一章的参考文献时遇到了麻烦,这本书有很多作者。我的参考文献(以类似 APA 的格式)呈现如下:
章节作者(2017)。章节标题。第 2 章。图书出版商。
那里缺少的是对该书的参考。
最后我发现我需要在章节条目中添加书名:
\begin{filecontents}{hh.bib}
@incollection{achapter,
Title = {Chapter Title},
Author = {{Chapter Author}},
Booktitle = {{Wrong Book Title}},
Chapter = {2},
Year = {2077},
Crossref = {abook},
}
@book{abook,
Title = {Book Title},
Editor = {{Book Editor}},
Author = {{Book Author}},
Publisher = {{Book Publisher}},
Year = {2017},
}
\end{filecontents}
\documentclass{report}
\usepackage{natbib}
\begin{document}
Hey \citep{achapter}
\bibliographystyle{apalike}
\bibliography{hh}
\end{document}
这让我很困惑。我以为交叉引用是让我的生活更轻松的工具——例如,减少插入冲突信息的风险,就像我在两个不同书名的例子中所做的那样。Crossref
如果我的@incollection
条目需要Booktitle
和,那有什么意义呢Year
?
答案1
假设您有 Knuth 教授的《计算机编程艺术》几本书。对于所有书籍,您都可以使用 bib 条目
@BOOK{TAOCP,
author = {Donald E. Knuth},
publisher = {Addison-Wesley},
title = {The Art of Computer Programming},
series = {7 B\"ande},
year = 1968,
}
为了能够引用第二本书,你需要编写 bib 条目
@BOOK{TAOCP2,
crossref = {TAOCP},
title = {Seminumerical Algorithms},
volume = 2,
series = {The Art of Computer Programming},
edition = {Second},
year = 1981,
}
交叉引用TOACP
。此条目缺少有效的作者和出版商bibtex
。通过crossref
字段 BiBTeX 能够获取缺失的信息...
在您的情况下,您需要编写以下条目来incollection
省略有关空字段的警告:
@incollection{achapter,
Crossref = {acollection},
Author = {{Chapter Author}},
Title = {Chapter Title},
Editor = {{Chapter Editor}},
booktitle = {{Collection Title incollection}},
Chapter = {2},
Year = {2077},
}
通过交叉引用,您可以从条目中获取缺少的发布者
acollection
。您需要写入字段,booktitle
因为它在同名的交叉引用中不存在。由于您的样式apalike
不知道collection
您需要使用book
:
@book{acollection,
Title = {Collection Title},
Editor = {{Collection Editor}},
Year = {2017},
Publisher = {{Collection Publisher}},
}
使用以下 MWE
\RequirePackage{filecontents}
\begin{filecontents}{\jobname.bib}
@BOOK{TAOCP2,
crossref = {TAOCP},
title = {Seminumerical Algorithms},
volume = 2,
series = {The Art of Computer Programming},
edition = {Second},
year = 1981,
}
@BOOK{TAOCP,
author = {Donald E. Knuth},
publisher = {Addison-Wesley},
title = {The Art of Computer Programming},
series = {7 B\"ande},
year = 1968,
}
@incollection{achapter,
Crossref = {acollection},
Author = {{Chapter Author}},
Title = {Chapter Title},
Editor = {{Chapter Editor}},
booktitle = {{Collection Title incollection}},
Chapter = {2},
Year = {2077},
}
@book{acollection,
Title = {Collection Title},
Editor = {{Collection Editor}},
Year = {2017},
Publisher = {{Collection Publisher}},
}
\end{filecontents}
\documentclass{article}
\usepackage{natbib}
\begin{document}
Citing \citep{TAOCP2} please see the author and publisher comes
from entry \texttt{TAOCP}!
Citing \citep{achapter} please see the publisher comes from entry
\texttt{acollection}.
\bibliographystyle{apalike} % apalike plain
\bibliography{\jobname}
\end{document}
得到结果(见红色标记):