1

I was having trouble with my references for a chapter of a book that has many authors. My reference was being (in APA-like style) rendered like this:

Chapter Author (2017). Chapter title. chapter 2. Book Publisher.

What's missing there is the refenrece to the book.

Eventually I found that I need the book title in the chapter entry:

\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}

Which leaves me puzzled. I assumed cross-references were tools to make my life easier—less risk of inserting conflicting information, for instance, like I did in the example with two different book titles. What is the point of Crossref if my @incollection entry requires Booktitle and Year?

1

Let us say you have some of the books of Prof. Knuth "The Art of Computer Programming". For all books you can use the bib entry

@BOOK{TAOCP,
  author    = {Donald E. Knuth},
  publisher = {Addison-Wesley},
  title     = {The Art of Computer Programming},
  series    = {7 B\"ande},
  year      = 1968,
}

To be able to cite book 2 you write the bib entry

@BOOK{TAOCP2,
  crossref = {TAOCP},
  title    = {Seminumerical Algorithms},
  volume   = 2,
  series   = {The Art of Computer Programming},
  edition  = {Second},
  year     = 1981,
}

with the cross reference to TOACP. This entry misses an author and the publisher to be valid for bibtex. Via crossref field BiBTeX is able to fetch the missing informations ...

In your case you need to write the following entry for your incollection to omit warnings about empty fields:

@incollection{achapter,
  Crossref  = {acollection},
  Author    = {{Chapter Author}},
  Title     = {Chapter Title},
  Editor    = {{Chapter Editor}},
  booktitle = {{Collection Title incollection}},
  Chapter   = {2},
  Year      = {2077},
}

With the cross reference you can get the missing publisher from entry acollection. You need to write field booktitle because it does not exist in the cross reference with the same name. Because your style apalike does not know collection you need to use book:

@book{acollection,
  Title     = {Collection Title},
  Editor    = {{Collection Editor}},
  Year      = {2017},
  Publisher = {{Collection Publisher}},
}

With the following 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}

you get the result (see the red markings):

resulting pdf

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.