使用 @book 和 .bib 时参考文献中未显示页码

使用 @book 和 .bib 时参考文献中未显示页码

我有以下参考

@book{2,
author    = "Sebastian Thrun and Wolfram Burgard and Dieter Fox",
title     = "Probabilistic Robotics",
publisher = "The MIT Press",
year      = "2006",
pages     = "309"
}

此引文的输出为

Sebastian Thrun、Wolfram Burgard 和 Dieter Fox。概率机器人。麻省理工学院出版社,2006 年。

问题是这些页面没有出现在引用中。

我使用.bib纯文本保存以下参考资料

main.tex

\documentclass[12p]{article}
\usepackage{hyperref}

\begin{document}


hhhhhh \cite{2}. 

\bibliography{references}{}
\bibliographystyle{plain}


\end{document}

references.bib

@book{2,
author    = "Sebastian Thrun and Wolfram Burgard and Dieter Fox",
title     = "Probabilistic Robotics",
publisher = "The MIT Press",
year      = "2006",
pages     = "309"
}

答案1

这是设计使然。如果我们查看plain.bst\bibliographystyle您正在使用的),并找到以下部分FUNCTION {book}

FUNCTION {book}
{ 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$
  new.block
  format.btitle "title" output.check
  crossref missing$
    { format.bvolume output
      new.block
      format.number.series output
      new.sentence
      publisher "publisher" output.check
      address output
    }
    { new.block
      format.book.crossref output.nonnull
    }
  if$
  format.edition output
  format.date "year" output.check
  new.block
  note output
  fin.entry
}

pages此函数中没有任何地方提及。使用的其他条目类型pages(例如articleinproceedings等)都有一些类似于的行format.pages output,用于输出页码。

pages参数仍然允许且有效,因为虽然样式plain不使用它,但其他样式可以并且确实使用它。因此,给定.bib文件可用于多种不同的输出样式。

答案2

我建议您使用@inbook条目类型,它适合这类参考。

相关内容