交叉引用的书籍参考资料没有标题

交叉引用的书籍参考资料没有标题

我的文件中有许多项目.bib都按预期工作,包括交叉引用的项目。但是,我最新添加的项目(指向同一本书的 2 个链接)出现“空标题”错误,并将该书作为单独的条目包含在内。参考资料有什么不同liu2009

我尝试删除两个引用中的一个,liu2009但得到了相同的结果。同样,从 切换到 也是如此@inproceedings@incollection我在 Mac 上使用 TeXShop,带有Natbib。这是一个 MWE:

TeX文件:

\documentclass{article}
\usepackage[authoryear]{natbib}
\begin{document}
\section{Introduction}
Two references crossref'd to one book  \citep{gruber2009, stevens2009}, 
and one to another \citep{tangi1998}. \\
Error message ``BibTeX empty title in liu2009''.
\medskip
\addcontentsline{toc}{section}{References }
\bibliography{tempref}
\bibliographystyle{authordate1}
\end{document}

Bib文件:

@incollection{tangi1998,
   author = {Tangi, Randee I},
   title = {Design and ...},
   chapter = {4},
   pages = {105-127},
   crossref = {fellbaum1998}
}
@inproceedings{gruber2009,
   author = {Gruber, Tom},
   title = {Ontology},
   pages = {1963-1965},
   crossref = {liu2009}
}
@inproceedings{stevens2009,
   author = {Stevens, Robert and Lord, Phillip},
   title = {Ontologies and Life Science...},
   pages = {1960-1963},
   crossref = {liu2009}
}
// -----------------------
@book{fellbaum1998,
   editor = {Fellbaum, Christiane},
   booktitle = {{WordNet}: an Electronic Lexical Database},
   publisher = {MIT Press},
   year = {1998}
}
@book{liu2009,
   editor = {Liu, Ling and {\"O}zsu, M Tamer},
   booktitle = {Encyclopedia of Database Systems},
   publisher = {Springer},
   year = {2009}
}

制作文件

答案1

首先,您使用了错误的字段类型book,请参见BibTeX 文档,第 8 页

有明确出版商的书籍。必填字段:authoreditortitle
publisher,。year可选字段:volumenumberseriesaddresseditionmonthnote

进一步请参阅第 6 页有关交叉引用的部分:

  1. 标准样式使用了 BibTEX 新的交叉引用功能,它给出了\cite交叉引用条目的 ,并从交叉引用条目中省略了交叉引用条目中出现的(大部分)信息。当一个标题事物(交叉引用条目)是更大的标题事物(被交叉引用条目)的一部分时,这些样式会这样做。有五种这样的情况:当 (1) 一个INPROCEEDINGS(或 CONFERENCE,相同)交叉引用 一个 时PROCEEDINGS;当 (2) 一个BOOK、(3) 一个INBOOK或 (4) 一个INCOLLECTION交叉引用 一个 时 BOOK(在这些情况下,交叉引用条目是多卷著作中的单卷);以及当 (5) 一个ARTICLE交叉引用 一个 时ARTICLE (在这种情况下,交叉引用条目实际上是一个期刊,但没有 JOURNAL条目类型;这将导致出现关于期刊作者和标题为空的警告消息——您应该忽略这些警告)。

对于两者的交叉引用,inproceedings您必须将其更改@book{liu2009}@proceedings{liu2009}或者将两者更改inproceedingsinbookincollection

有一个运行 BibTeX 的选项已发布这里,但我无法产生所需的输出。


我能够使用biblatex/生成所需的输出biber,从而可以更好地控制参考书目条目的外观。

您需要将主文件更改为

\documentclass{article}
\usepackage[
    backend=biber,
    citestyle=authoryear,
    bibstyle=authoryear,
    natbib=true,
    mincrossrefs=3,
  ]{biblatex}
\addbibresource{tempref.bib}
\begin{document}
\section{Introduction}
Two references crossref'd to one book  \citep{gruber2009, stevens2009}, 
and one to another \citep{tangi1998}. \\
Error message ``BibTeX empty title in liu2009''.
\medskip
\addcontentsline{toc}{section}{References }
\printbibliography
\end{document}

将数字输入mincrossrefs=3,到您希望主条目出现的值中。我在这里将其设置为 3,这是您的示例适用的最低值。通过将其设置为 2,liu2009出现的条目fellbaum1998将不包含在内。

相关内容