bibtex с inbook и book crossref: почему отсутствует crossref$ = True, хотя crossref распознается?

bibtex с inbook и book crossref: почему отсутствует crossref$ = True, хотя crossref распознается?

Я использую 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}

Связанный контент