inbook 및 book crossref가 있는 bibtex: crossref가 인식되지 않지만 $ = True인 이유는 무엇입니까?

inbook 및 book crossref가 있는 bibtex: crossref가 인식되지 않지만 $ = True인 이유는 무엇입니까?

저는 참고문헌을 정리하기 위해 bibtex를 사용하고 있습니다. 책의 한 장을 인용하고 싶습니다. 저자와 편집자가 모두 있을 때 내가 읽는 가장 좋은 방법은 상호 참조와 inbook 및 도서 항목을 사용하는 것입니다. 예: (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를 실행하면

\documentclass{scrartcl}

\begin{document}
\cite{inbook}
\bibliographystyle{style}
\bibliography{bib_test}
\end{document}

그것은 항상 나에게 경고를 줍니다:

Warning--can't use both author and editor fields in inbook

이것이 제가 그것을 인북과 북으로 분리한 이유이기 때문에 이것이 이해가 되지 않습니다. 그러나 여전히 이 오류가 발생합니다. 내가 찾은 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
} 

몇 가지를 테스트해 본 결과 crossrefmissing$이 항상 True라는 대답을 제공하는 것 같습니다. 상호 참조가 제공되면 존재하는 작성자 및 편집자 필드 모두에 대해 테스트해서는 안 됩니다. 이것은 이상합니다. 왜냐하면 그는 확실히 상호 참조를 인식하고 있기 때문입니다. 그렇지 않으면 오류가 표시될 것입니다...

답변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}

관련 정보