Я использую bibtex для организации своей библиографии. Я хочу процитировать главу из книги. Лучший способ читать, когда есть и автор, и редакторы, — использовать crossref и запись в книге и книге, например: (bib_test.bib)
@inbook{inbook,
author = {A. Inbook-Author},
title = {The title of the inbook entry},
pages = {1--5},
chapter = {1},
crossref = "book",
}
@book{book,
title = {A title of the book entry},
booktitle = {A title of the book entry},
year = 2013,
editor = {E. Book-Editor},
publisher = {Book Publishing Inc.},
}
Однако, если я запускаю bibtex на файле latex
\documentclass{scrartcl}
\begin{document}
\cite{inbook}
\bibliographystyle{style}
\bibliography{bib_test}
\end{document}
он всегда выдает мне предупреждение:
Warning--can't use both author and editor fields in inbook
Я не понимаю этого, так как это было причиной, по которой я разделил его на inbook и book, но я все еще получаю эту ошибку. В файле bibstyle я нашел
FUNCTION {inbook}
{ output.bibitem
author empty$
{ format.editors "author and editor" output.check
}
{ format.authors output.nonnull
crossref missing$
{ "author and editor" editor either.or.check }
'skip$
if$
}
if$
title empty$ 'skip$ 'setup.inlinelink if$ % urlbst
format.btitle "title" output.check
format.edition output
crossref missing$
{
format.publisher.address output
format.bvolume output
format.chapter.pages "chapter and pages" output.check
format.number.series output
}
{
format.chapter.pages "chapter and pages" output.check
format.book.crossref output.nonnull
}
if$
format.date "year" output.check
date.block
format.pages "pages" output.check
format.doi output
format.note output
fin.entry
}
Я проверил несколько вещей, и похоже, что crossref missing$ всегда дает True в качестве ответа. Он НЕ должен проверять наличие полей автора и редактора, если задана crossref. Это странно, так как он определенно распознает crossref, иначе он бы выдал ошибку...
решение1
Решение состоит в том, чтобы изменить тип первой записи с @inbook
на @inproceedings
.
\RequirePackage{filecontents}
\begin{filecontents}{mybib.bib}
@inproceedings{inbook,
author = {A. Inbook-Author},
title = {The title of the inbook entry},
pages = {1--5},
chapter = {1},
crossref = "book",
}
@book{book,
title = {A title of the book entry},
booktitle = {A title of the book entry},
year = 2013,
editor = {E. Book-Editor},
publisher = {Book Publishing Inc.},
address = "Anytown",
}
\end{filecontents}
\documentclass{article}
\bibliographystyle{style} % downloaded from site indicated by OP
\begin{document}
\cite{inbook}
\bibliography{mybib}
\end{document}